基于DLF數(shù)據(jù)入湖的MaxCompute湖倉(cāng)一體實(shí)踐
由于DLF中數(shù)據(jù)入湖功能已經(jīng)停止更新,本文采用DataWorks數(shù)據(jù)集成的入湖方式,以MySQL數(shù)據(jù)入湖為例,為您介紹在MaxCompute中如何創(chuàng)建外部項(xiàng)目,并查詢DLF中的表數(shù)據(jù)。
使用限制
僅華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華南1(深圳)、中國(guó)香港、新加坡和德國(guó)(法蘭克福)地域支持構(gòu)建湖倉(cāng)一體能力。
MaxCompute、OSS、RDS和DLF必須部署在同一地域。
MySQL數(shù)據(jù)入湖
DLF入湖詳情請(qǐng)參見快速入門。
步驟一:創(chuàng)建數(shù)據(jù)湖的元數(shù)據(jù)庫(kù)
登錄數(shù)據(jù)湖管理控制臺(tái),在頁面上方選擇地域,在 頁面創(chuàng)建元數(shù)據(jù)庫(kù)。具體操作請(qǐng)參見創(chuàng)建元數(shù)據(jù)庫(kù)。
步驟二:DataWorks數(shù)據(jù)集成導(dǎo)入數(shù)據(jù)至OSS
準(zhǔn)備入湖數(shù)據(jù)。
登錄RDS管理控制臺(tái),選擇地域,并單擊左側(cè)導(dǎo)航欄的實(shí)例列表。
選擇目標(biāo)RDS實(shí)例,登錄數(shù)據(jù)庫(kù)。
為RDS數(shù)據(jù)庫(kù)創(chuàng)建表并插入少量測(cè)試數(shù)據(jù),詳情請(qǐng)參見通過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`;
準(zhǔn)備RDS MySQL數(shù)據(jù)源。
在DataWorks中配置MySQL數(shù)據(jù)源,具體操作請(qǐng)參見配置MySQL數(shù)據(jù)源。
準(zhǔn)備OSS數(shù)據(jù)源。
在DataWorks中配置OSS數(shù)據(jù)源,具體操作請(qǐng)參見配置OSS數(shù)據(jù)源。
創(chuàng)建并執(zhí)行數(shù)據(jù)同步任務(wù)。
在DataWorks的數(shù)據(jù)開發(fā)模塊中創(chuàng)建離線同步任務(wù),詳情請(qǐng)參見通過向?qū)J脚渲秒x線同步任務(wù)。關(guān)鍵配置如下:
網(wǎng)絡(luò)與資源配置。
參數(shù)
說明
來源
數(shù)據(jù)來源
MySQL。
數(shù)據(jù)源名稱
已創(chuàng)建的MySQL數(shù)據(jù)源。
資源組
我的資源組
已創(chuàng)建的數(shù)據(jù)集成獨(dú)享資源組。
去向
數(shù)據(jù)去向
OSS。
數(shù)據(jù)源名稱
已創(chuàng)建的OSS數(shù)據(jù)源。
配置任務(wù)。
在配置任務(wù)頁簽填寫表和文件名。
參數(shù)
說明
表
RDS數(shù)據(jù)庫(kù)中已創(chuàng)建的表名。
文件名(含路徑)
格式:<OSS中已創(chuàng)建的文件目錄名稱>/<待導(dǎo)出至OSS的數(shù)據(jù)文件>。
例如
doc-test-01/datalake/anti.csv
。單擊離線同步任務(wù)配置頁面左上角的圖標(biāo)保存配置,然后單擊圖標(biāo)運(yùn)行任務(wù)。
DataWorks中任務(wù)運(yùn)行成功后,可在OSS數(shù)據(jù)源配置路徑下查看數(shù)據(jù)是否導(dǎo)入成功。
步驟三:DLF進(jìn)行元數(shù)據(jù)抽取入湖
在數(shù)據(jù)湖管理控制臺(tái)以元數(shù)據(jù)抽取的方式進(jìn)行數(shù)據(jù)入湖。具體操作請(qǐng)參見元數(shù)據(jù)抽取。
步驟四:查看數(shù)據(jù)湖的元數(shù)據(jù)
在數(shù)據(jù)湖管理控制臺(tái)單擊元數(shù)據(jù) > 元數(shù)據(jù)管理,進(jìn)入目標(biāo)數(shù)據(jù)庫(kù),在表列表頁簽查看數(shù)據(jù)表信息。
如果通過元數(shù)據(jù)抽取后的表的序列化方式為:org.apache.hadoop.hive.serde2.OpenCSVSerde
,會(huì)導(dǎo)致MaxCompute識(shí)別DLF的元數(shù)據(jù)中字段類型為 opencsv的string ,而引發(fā)查詢失敗報(bào)錯(cuò),需手動(dòng)將DLF的識(shí)別字段類型都改成string類型。
訪問授權(quán)
當(dāng)您通過MaxCompute與DLF和OSS構(gòu)建湖倉(cāng)一體時(shí),授權(quán)方法如下。MaxCompute項(xiàng)目的賬號(hào)未經(jīng)授權(quán)無法訪問DLF,您需要執(zhí)行授權(quán)操作。授權(quán)方式包含以下兩種:
一鍵授權(quán):當(dāng)創(chuàng)建MaxCompute項(xiàng)目的賬號(hào)和部署DLF的賬號(hào)相同時(shí)。推薦您直接單擊授權(quán)DLF進(jìn)行一鍵授權(quán)。
自定義授權(quán):當(dāng)創(chuàng)建MaxCompute項(xiàng)目的賬號(hào)和部署DLF的賬號(hào)相同或不相同,都可以使用該方式。詳情請(qǐng)參見自定義授權(quán)DLF。
MaxCompute創(chuàng)建外部項(xiàng)目
在DataWorks控制臺(tái)創(chuàng)建External Project。
登錄DataWorks控制臺(tái),選擇地域?yàn)槿A東2(上海)。
在DataWorks控制臺(tái)頁面左側(cè)導(dǎo)航欄,選擇 。
在數(shù)據(jù)湖集成(湖倉(cāng)一體)頁面,單擊現(xiàn)在開始創(chuàng)建。
在新建數(shù)據(jù)湖集成頁面,按照界面指引進(jìn)行操作。參數(shù)示例如下所示。
表 1. 創(chuàng)建數(shù)據(jù)倉(cāng)庫(kù) 參數(shù)
說明
外部項(xiàng)目名稱
ext_dlf_delta
MaxCompute項(xiàng)目
ms_proj1
表 2. 創(chuàng)建外部數(shù)據(jù)湖連接 參數(shù)
說明
異構(gòu)數(shù)據(jù)平臺(tái)類型
選擇阿里云DLF+OSS數(shù)據(jù)湖連接
無
阿里云DLF+OSS數(shù)據(jù)湖連接
External Project描述
無
DLF所在區(qū)
cn-shanghai
DLF Endpoint
dlf-share.cn-shanghai.aliyuncs.com
DLF數(shù)據(jù)庫(kù)名稱
datalake
DLF RoleARN
無
單擊創(chuàng)建后單擊預(yù)覽。
如果能預(yù)覽DLF庫(kù)中表的信息,則表示操作成功。
MaxCompute查詢外部項(xiàng)目數(shù)據(jù)
在DataWorks臨時(shí)查詢頁面,查看External Project下的表數(shù)據(jù)。
DataWorks臨時(shí)查詢操作,詳情請(qǐng)參見DataWorks臨時(shí)查詢。
命令示例:
select * from ext_dlf_delta.rds_mc;
返回結(jié)果: