全部產品
Search
文件中心

AnalyticDB:通過中繼資料發現匯入資料

更新時間:Jul 30, 2025

企業的商務服務所產生的一些標準化表單、日誌等資料檔案,會被周期性地上傳至OSS。但是這些資料缺少中繼資料管理,導致資料難以分析和計算。AnalyticDB for MySQL中繼資料發現任務支援自動對應OSS路徑、智能分組檔案、動態探索欄位及變化感知,實現資料湖中繼資料的自動建立與更新。您可通過建立OSS中繼資料發現任務,自動探索同地區下OSS的Bucket和資料檔案,並將OSS中的資料匯入至AnalyticDB for MySQL

前提條件

  • AnalyticDB for MySQL叢集的產品系列為企業版、基礎版或湖倉版

  • 已建立AnalyticDB for MySQL叢集的資料庫帳號。

  • AnalyticDB for MySQL叢集與OSS儲存空間位於相同地區。

  • 已上傳檔案到OSS的Bucket中,且OSS路徑格式滿足如下條件:

    • OSS路徑需為<BucketName>/目錄/.../目錄/表/檔案或者<BucketName>/目錄/.../目錄/表/分區/.../分區/檔案的格式。

    • Bucket層級下至少有一層目錄。

    • OSS路徑的同一表或分區中的檔案類型必須一致。

    • OSS路徑的同一表或分區中檔案的欄位類型和欄位數量必須一致。

使用限制

同一個OSS路徑,在一個叢集中只能建立一個中繼資料任務。

操作步驟

  1. 登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,然後單擊目的地組群ID。

  2. 在左側導覽列,單擊資料接入 > 元數據發現

  3. 元數據發現頁面的OSS資料來源地區,單擊進入向導

    說明

    若控制台上的進入向導按鈕為置灰狀態,您需要先建立高許可權帳號

    1. OSS資料來源頁簽,根據頁面提示進行參數配置,配置說明如下:

      配置項

      參數

      說明

      資料來源配置

      數倉模式

      為“基於OSS而構建的標準資料倉儲”的情境構建自動化中繼資料發現,識別精度高。

      說明

      自由模式暫不支援。

      OSS目錄位置

      • 普通檔案:檔案所在OSS中的儲存路徑,以/結尾。

        選擇不同的OSS目錄位置會得到不同的映射結果

        重要

        選擇OSS目錄位置時,請確保OSS目錄位置後至少有一層目錄,不能選擇到檔案的上一層目錄。

      • 資料湖表:資料湖表在OSS中儲存路徑的上級目錄,以/結尾。例如:假設Iceberg表對應目錄為:oss://adb/testdb/iceberg_table/,則應選擇的OSS目錄位置為:oss://adb/testdb/

      路徑過濾規則(可選)

      填寫需要映射到AnalyticDB for MySQL檔案的儲存路徑。

      • 包含:填寫的儲存路徑中所有檔案都會映射到AnalyticDB for MySQL

        重要

        當所選儲存路徑中有多個檔案時,檔案類型需要相同,且檔案中列的類型和列的數量一致,才能進行映射。

      • 排除:填寫的儲存路徑中所有檔案不會映射到AnalyticDB for MySQL

      格式解析器

      根據檔案格式,選擇對應的格式解析器。針對普通檔案格式,格式解析器還提供自動解析能力,即順序調用普通檔案格式的解析器來解析檔案。

      重要

      選擇的格式解析器類型和檔案格式不一致時,會映射失敗。

      支援的解析器類型:

      • 普通檔案csvjsonparquetavroorc自動解析

      • 資料湖表iceberg

        說明

        資料湖表功能目前處於公測階段,如需使用請提交工單聯絡支援人員。

      配置選項(可選)

      進階自訂設定項。當格式解析器選擇CSV時,您可以設定如下參數:

      • 欄位分隔符號:指定CSV資料檔案的資料行分隔符號。

      • 引用標識:指定解析後AnalyticDB for MySQL表的引用標識符。

      • 表頭模式:識別CSV的表頭,從而確定表的列名稱。

      • 允許單個欄欄位:是否允許CSV資料檔案的一行記錄只有一列。

        • false:不允許。

        • true:允許。

      • 其他配置:通過參數配置指定是否使用CSV檔案第一行作為列名。若有需求請聯絡支援人員。

      調度配置

      調度頻率

      如果想要定期擷取資料檔案中列或資料的變更,可以通過設定調度頻率,定期執行中繼資料發現任務。

      OSS檔案資料變更,重新對應到AnalyticDB for MySQL的表資料會根據目標中繼資料配置規則更新。

      目標中繼資料配置

      Schema名稱

      設定Schema名稱,映射到AnalyticDB for MySQL的資料庫名稱(預設每個發現任務會建立一個新的Schema)。

      資料庫名稱填寫,需要注意如下兩點:

      • 不能是AnalyticDB for MySQL中已有的庫名。

      • 不能與其他中繼資料任務的庫名相同。

      配置選項(可選)

      OSS檔案欄位變更或OSS檔案刪除時,如何更新映射到AnalyticDB for MySQL的表。

      • 檔案欄位變更規則

        • 只增加列:OSS檔案增加列時,再次執行中繼資料發現任務,映射到AnalyticDB for MySQL的表也會增加列。

        • 忽略表更新:OSS檔案的列或分區變更時,再次執行中繼資料發現任務,映射到AnalyticDB for MySQL的表僅同步分區,不會增加或刪除列。

      • 對象刪除變更規則:僅支援忽略刪除更新,即OSS檔案刪除時,再次執行中繼資料發現任務,映射到AnalyticDB for MySQL的表仍然存在。

      重要

      您可以對映射到AnalyticDB for MySQL的表進行DDL和DML操作。

      • 如果您在AnalyticDB for MySQL表中新增了列,再次執行中繼資料發現任務,該列不會被覆蓋,仍然存在。

      • 若刪除了映射到AnalyticDB for MySQL表的某列,再次執行中繼資料發現任務,被刪除的列會被再次映射到AnalyticDB for MySQL

  4. 完成上述參數配置後,單擊建立,開始建立中繼資料發現任務。

    說明

    中繼資料發現任務建立完成後,自動在您設定的時間周期運行發現任務。如果您想立即同步資料,可以在工作清單的操作欄中單擊執行

  5. 任務開始運行後,可以在工作清單介面管理工作的運行情況,支援查看任務的運行狀態、配置的修改等。

    說明

    任務運行成功後,可以在作業開發 > SQL開發頁面,查看映射到AnalyticDB for MySQL的庫、表、分區等。

OSS路徑映射到AnalyticDB for MySQL的樣本

OSS路徑映射到AnalyticDB for MySQL的結果,與以下兩個因素有關。

  • OSS檔案及其所在路徑。

  • 中繼資料發現任務中選擇的OSS目錄位置

系統會根據您選擇的OSS目錄位置自動將OSS目錄位置後的第一層目錄名映射為表名,OSS目錄位置後的第二層至最後一層目錄名映射為分區,樣本如下。

OSS路徑

OSS目錄位置

映射到AnalyticDB for MySQL的表

oss://adb/Table1/file1.csv

oss://adb/Table1/file2.json

oss://adb/

不能映射表。

原因:Table1目錄下的檔案類型為CSV和JSON,檔案類型不一致,故而不能映射表。

重要

如果檔案類型相同,但檔案中欄位的資料類型不一致,也不能進行映射。

oss://adb/Table2/year/month/day/file3.json

oss://adb/Table2/year/month/day/file4.json

oss://adb/

映射到AnalyticDB for MySQL的表為分區表,表名為Table2,分區欄位為partition_0partition_1partition_2

說明

由於沒有分區鍵,這裡使用partition_num來補充。

oss://adb/Table2/

映射到AnalyticDB for MySQL的表為分區表,表名為year,分區欄位為partition_0partition_1

oss://adb/Table2/year/month/

映射到AnalyticDB for MySQL的表為非分區表,表名為day

oss://adb/Table2/year/month/day/

不能映射表。

原因:選擇的OSS目錄位置後無其他層目錄。

oss://adb/Table3/year=2022/month=03/day=01/file5.csv

oss://adb/Table3/year=2022/month=03/day=01/file6.csv

oss://adb/

映射到AnalyticDB for MySQL的表為分區表,表名為Table3,分區欄位為yearmonthday

  • oss://adb/Table3/

  • oss://adb/Table3/year=2022/

不能映射表。

原因:year=2022或month=03不符合AnalyticDB for MySQL表的命名規則

oss://adb/Table4/2020/03/30/file7.csv

oss://adb/Table3/2020/03/30/file8.csv

oss://adb/

映射到AnalyticDB for MySQL的表為分區表,表名為Table4,分區欄位為partition_0partition_1partition_2

說明

由於沒有分區鍵,這裡使用partition_num來補充。

  • oss://adb/Table3/

  • oss://adb/Table3/2020/

不能映射表。

原因:2020或03不符合AnalyticDB for MySQL表的命名規則