由於DLF中資料入湖功能已經停止更新,本文採用DataWorksData Integration的入湖方式,以MySQL資料入湖為例,為您介紹在MaxCompute中如何建立外部項目,並查詢DLF中的表資料。
使用限制
僅華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華南1(深圳)、中國香港、新加坡和德國(法蘭克福)地區支援構建湖倉一體能力。
MaxCompute、OSS、RDS和DLF必須部署在同一地區。
MySQL資料入湖
DLF入湖詳情請參見快速入門。
步驟一:建立資料湖的中繼資料庫
登入資料湖管理主控台,在頁面上方選擇地區,在頁面建立中繼資料庫。具體操作請參見資料庫表及函數。
步驟二:DataWorksData Integration匯入資料至OSS
準備入湖資料。
登入RDS管理主控台,選擇地區,並單擊左側導覽列的實例列表。
選擇目標RDS執行個體,登入資料庫。
為RDS資料庫建立表並插入少量測試資料,詳情請參見(廢棄,重新導向至“第二步”)通過DMS登入RDS MySQL。例如表名為rds_mc,命令樣本如下:
CREATE TABLE `rds_mc` ( `id` varchar(32) , `name` varchar(32) , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `rds_mc`(`id` ,`name` ) VALUES(1,"張三"); INSERT INTO `rds_mc`(`id` ,`name` ) VALUES(2,"zhangsan"); INSERT INTO `rds_mc`(`id` ,`name` ) VALUES(3,"zhaosi"); INSERT INTO `rds_mc`(`id` ,`name` ) VALUES(4,"wangwu"); INSERT INTO `rds_mc`(`id` ,`name` ) VALUES(5,"55555"); INSERT INTO `rds_mc`(`id` ,`name` ) VALUES(8,"6666"); SELECT * FROM `rds_mc`;
準備RDS MySQL資料來源。
在DataWorks中配置MySQL資料來源,具體操作請參見配置MySQL資料來源。
準備OSS資料來源。
在DataWorks中配置OSS資料來源,具體操作請參見配置OSS資料來源。
建立並執行資料同步任務。
在DataWorks的資料開發模組中建立離線同步任務,詳情請參見嚮導模式配置。關鍵配置如下:
網路與資源配置。
參數
說明
來源
資料來源
MySQL。
資料來源名稱
已建立的MySQL資料來源。
資源群組
我的資源群組
已建立的Data Integration獨享資源群組。
去向
資料去向
OSS。
資料來源名稱
已建立的OSS資料來源。
配置任務。
在配置任務頁簽填寫表和檔案名稱。
參數
說明
表
RDS資料庫中已建立的表名。
檔案名稱(含路徑)
格式:<OSS中已建立的檔案目錄名稱>/<待匯出至OSS的資料檔案>。
例如
doc-test-01/datalake/anti.csv。單擊離線同步任務配置頁面左上方的
表徵圖儲存配置,然後單擊
表徵圖運行任務。DataWorks中任務運行成功後,可在OSS資料來源配置路徑下查看資料是否匯入成功。
步驟三:DLF進行中繼資料抽取入湖
在資料湖管理主控台以中繼資料抽取的方式進行資料入湖。具體操作請參見中繼資料抽取。
步驟四:查看資料湖的中繼資料
在資料湖管理主控台單擊元数据 > 元数据管理,進入目標資料庫,在表列表頁簽查看資料表資訊。
如果通過中繼資料抽取後的表的序列化方式為:org.apache.hadoop.hive.serde2.OpenCSVSerde,會導致MaxCompute識別DLF的中繼資料中欄位類型為 opencsv的string ,而引發查詢失敗報錯,需手動將DLF的識別欄位類型都改成string類型。
訪問授權
當通過MaxCompute與DLF和OSS構建湖倉一體時,由於MaxCompute專案的帳號未經授權無法訪問DLF或OSS,需要執行授權操作。授權方式包含以下兩種:
MaxCompute建立外部項目
在DataWorks控制台建立External Project。
登入DataWorks控制台,選擇地區為華東2(上海)。
在DataWorks控制台頁面左側導覽列,選擇。
在資料湖整合(湖倉一體)頁面,單擊現在開始建立。
在新建資料湖集成頁面,按照介面指引進行操作。
表 1. 建立資料倉儲
參數
說明
外部項目名稱
ext_dlf_delta
MaxCompute項目
ms_proj1
表 2. 建立外部資料湖串連
參數
說明
異構數據平台類型
選擇阿里雲DLF+OSS資料湖串連
無
阿里雲DLF+OSS資料湖串連
外部專案描述
無
DLF所在區
cn-shanghai
DLF Endpoint
dlf-share.cn-shanghai.aliyuncs.com
DLF資料庫名稱
datalake
DLF RoleARN
無
單擊创建後單擊預覽。
如果能預覽DLF庫中表的資訊,則表示操作成功。
MaxCompute查詢外部項目資料
在DataWorks臨時查詢頁面,查看External Project下的表資料。
DataWorks臨時查詢操作,詳情請參見DataWorks臨時查詢。
命令樣本:
select * from ext_dlf_delta.rds_mc;返回結果:執行該命令後,查詢結果返回
rds_mc表中id和name兩列的資料記錄,確認資料湖中繼資料已成功同步。