雲計算

使用DLA分析MaxCompute外部表數據

MaxCompute支持通過外部表關聯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);

執行查詢,我們可以看到數據已經寫入到外表中了:

odps.png

使用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外部表的格式來組織的。
執行查詢:
dla.png

關於我們

數據湖分析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

歡迎大家群內諮詢

Leave a Reply

Your email address will not be published. Required fields are marked *