全部產品
Search
文件中心

:基於DLF資料入湖的MaxCompute湖倉一體實踐

更新時間:Jun 16, 2026

由於DLF中資料入湖功能已經停止更新,本文採用DataWorksData Integration的入湖方式,以MySQL資料入湖為例,為您介紹在MaxCompute中如何建立外部項目,並查詢DLF中的表資料。

使用限制

  • 僅華東1(杭州)、華東2(上海)、華北2(北京)、華北3(張家口)、華南1(深圳)、中國香港、新加坡和德國(法蘭克福)地區支援構建湖倉一體能力。

  • MaxCompute、OSS、RDS和DLF必須部署在同一地區。

MySQL資料入湖

DLF入湖詳情請參見快速入門

步驟一:建立資料湖的中繼資料庫

登入資料湖管理主控台,在頁面上方選擇地區,在元数据 > 元数据管理頁面建立中繼資料庫。具體操作請參見資料庫表及函數

步驟二:DataWorksData Integration匯入資料至OSS

  1. 準備入湖資料。

    1. 登入RDS管理主控台,選擇地區,並單擊左側導覽列的實例列表

    2. 選擇目標RDS執行個體,登入資料庫。

    3. 為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`;
  2. 準備RDS MySQL資料來源。

    在DataWorks中配置MySQL資料來源,具體操作請參見配置MySQL資料來源

  3. 準備OSS資料來源。

    在DataWorks中配置OSS資料來源,具體操作請參見配置OSS資料來源

  4. 建立並執行資料同步任務。

    在DataWorks的資料開發模組中建立離線同步任務,詳情請參見嚮導模式配置。關鍵配置如下:

    1. 網路與資源配置。

      參數

      說明

      來源

      資料來源

      MySQL。

      資料來源名稱

      已建立的MySQL資料來源。

      資源群組

      我的資源群組

      已建立的Data Integration獨享資源群組。

      去向

      資料去向

      OSS。

      資料來源名稱

      已建立的OSS資料來源。

    2. 配置任務。

      配置任務頁簽填寫表和檔案名稱。

      參數

      說明

      RDS資料庫中已建立的表名。

      檔案名稱(含路徑)

      格式:<OSS中已建立的檔案目錄名稱>/<待匯出至OSS的資料檔案>。

      例如doc-test-01/datalake/anti.csv

    3. 單擊離線同步任務配置頁面左上方的image..png表徵圖儲存配置,然後單擊image..png表徵圖運行任務。

    4. DataWorks中任務運行成功後,可在OSS資料來源配置路徑下查看資料是否匯入成功。

步驟三:DLF進行中繼資料抽取入湖

資料湖管理主控台以中繼資料抽取的方式進行資料入湖。具體操作請參見中繼資料抽取

步驟四:查看資料湖的中繼資料

資料湖管理主控台單擊元数据 > 元数据管理,進入目標資料庫,在表列表頁簽查看資料表資訊。

重要

如果通過中繼資料抽取後的表的序列化方式為:org.apache.hadoop.hive.serde2.OpenCSVSerde,會導致MaxCompute識別DLF的中繼資料中欄位類型為 opencsv的string ,而引發查詢失敗報錯,需手動將DLF的識別欄位類型都改成string類型。

訪問授權

當通過MaxCompute與DLF和OSS構建湖倉一體時,由於MaxCompute專案的帳號未經授權無法訪問DLF或OSS,需要執行授權操作。授權方式包含以下兩種:

  • 一鍵授權:當建立MaxCompute專案的帳號和部署DLF、OSS的帳號相同時。推薦直接單擊授權DLF和OSS進行一鍵授權。

  • 自訂授權:當建立MaxCompute專案的帳號和部署DLF、OSS的帳號相同或不相同,都可以使用該方式。詳情請參見自訂授權

MaxCompute建立外部項目

在DataWorks控制台建立External Project。

  1. 登入DataWorks控制台,選擇地區為華東2(上海)。

  2. 在DataWorks控制台頁面左側導覽列,選擇更多 > 資料湖整合(湖倉一體)

  3. 資料湖整合(湖倉一體)頁面,單擊現在開始建立

  4. 新建資料湖集成頁面,按照介面指引進行操作。

    表 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

  5. 單擊创建後單擊預覽

    如果能預覽DLF庫中表的資訊,則表示操作成功。

MaxCompute查詢外部項目資料

在DataWorks臨時查詢頁面,查看External Project下的表資料。

說明

DataWorks臨時查詢操作,詳情請參見DataWorks臨時查詢

  • 命令樣本:

    select * from ext_dlf_delta.rds_mc;
  • 返回結果:執行該命令後,查詢結果返回 rds_mc 表中 idname 兩列的資料記錄,確認資料湖中繼資料已成功同步。