支援通過外部表關聯OSS,進行資料輸出。然而,由于MaxCompute外部表的目錄結構比較特殊,無法使用MaxCompute以外的工具對OSS上的檔案做進一步的分析,限制了外部表的使用場景。是以,DLA最近支援了分析MaxCompute外部表資料檔案的功能,借助DLA強大的生态,可以友善地對MaxCompute外部表進行分析,并能夠和其他資料源做聯合查詢。
本文通過一個簡單的例子介紹如何使用這個功能。
準備工作:建立MaxCompute外部表并寫入資料
進入MaxCompute工作空間,建立一個
ODPS SQL節點,在其中執行如下語句建立OSS外表:
CREATE EXTERNAL TABLE parquet
(
a int,
b int
)
STORED AS PARQUET
LOCATION 'oss://${accessKeyId}:${accessKeySecret}@${endpoint}/${bucket}/${userPath}/';
關于建立外部表文法的更多資訊可參考
MaxCompute文檔。
建表之後,我們可以執行如下語句向其中寫入幾條測試資料:
insert into parquet values(1,1);
insert into parquet values(2,2);
執行查詢,我們可以看到資料已經寫入到外表中了:

使用DLA分析MaxCompute外部表
首先建立一個OSS Schema:
CREATE SCHEMA dla_oss_db with DBPROPERTIES(
catalog='oss',
location 'oss://${bucket}/${userPath}/'
)
建立表:
CREATE EXTERNAL TABLE odps_parquet (
`a` int,
`b` int
)
STORED AS PARQUET
LOCATION 'oss://${bucket}/${userPath}/'
TBLPROPERTIES (
'directory.odps' = 'true'
);
在讀取MaxCompute外部表時,和其他OSS檔案不同的是多了一個表屬性'directory.odps' = 'true',這表示表的目錄是按照MaxCompute外部表的格式來組織的。
執行查詢:
關于我們
資料湖分析Data Lake Analytics簡介
歡迎大家使用資料湖分析(DLA),DLA不僅僅便宜,且快,且友善,專為阿裡雲資料湖分析方案而生
- 支援自建、托管RDS、NoSQL、OSS(JSON、CSV、Parquet等格式)多種資料源分析
- 支援按量 按照掃描量 的計費方式,準入門檻0元,提供的Serverless的彈性服務為按需收費,不需要購買固定的資源,完全契合業務潮汐帶來的資源波動,滿足彈性的分析需求,同時極大地降低了運維成本和使用成本
- 平台底層托管大叢集且自動彈性,在一定資料量情況下,分析性能比自建小叢集高出400%
- 支援一鍵 把 MySQL、PG、SqlServer、PolarDb資料庫 拖到DLA,再分析,解決原MySQL不敢分析的問題。 DLA 分析性能TPC-H 10G情況 比原MySQL 8c16g 等高出10倍,資料量越大,MySQL性能越差,在1TB資料量下,原MySQL基本跑不出來
- 産品文檔: https://www.aliyun.com/product/datalakeanalytics
- 幫助文檔: https://help.aliyun.com/document_detail/70378.html
- MySQL&PG&SqlServer一鍵同步資料到DLA: https://help.aliyun.com/document_detail/126559.html
- 新客戶1元試用: https://common-buy.aliyun.com/?commodityCode=openanalytics_post