企業的商務服務所產生的一些標準化表單、日誌等資料檔案,會被周期性地上傳到OSS。但是這些儲存在OSS的資料檔案缺少中繼資料管理,導致資料難以分析和計算。AnalyticDB for MySQL中繼資料發現任務具備自動對應OSS路徑、自動對OSS檔案分組、自動探索OSS檔案欄位、自動感知欄位變化的能力,能夠自動建立和更新資料湖中繼資料。您可以通過建立OSS中繼資料發現任務,自動探索同地區下OSS的Bucket和資料檔案,將OSS中的資料匯入至AnalyticDB for MySQL。
前提條件
AnalyticDB for MySQL叢集的產品系列為湖倉版。
AnalyticDB for MySQL叢集與OSS儲存空間位於相同地區。
已上傳檔案到OSS的Bucket中,且OSS路徑格式滿足如下條件:
OSS路徑需為
<BucketName>/目錄/.../目錄/表/檔案
或者<BucketName>/目錄/.../目錄/表/分區/.../分區/檔案
的格式。Bucket層級下至少有一層目錄。
OSS路徑的同一表或分區中的檔案類型必須一致。
OSS路徑的同一表或分區中檔案的欄位類型和欄位數量必須一致。
使用限制
同一個OSS路徑,在一個叢集中只能建立一個中繼資料任務。
操作步驟
登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版頁簽下,單擊目的地組群ID。
在左側導覽列,單擊
。在元數據發現頁面的OSS資料來源地區,單擊進入向導。
在OSS資料來源頁簽,根據頁面提示進行參數配置,配置說明如下:
配置項
參數
說明
資料來源配置
數倉模式
為“基於OSS而構建的標準資料倉儲”的情境構建自動化中繼資料發現,識別精度高。
說明自由模式暫不支援。
OSS目錄位置
檔案所在OSS中的儲存路徑,以/結尾。
選擇不同的OSS目錄位置會得到不同的映射結果,詳情請參見OSS路徑映射到AnalyticDB for MySQL的樣本。
重要選擇OSS目錄位置時,請確保OSS目錄位置後至少有一層目錄,不能選擇到檔案的上一層目錄。
路徑過濾規則(可選)
填寫需要映射到AnalyticDB for MySQL檔案的儲存路徑。
包含:填寫的儲存路徑中所有檔案都會映射到AnalyticDB for MySQL。
重要當所選儲存路徑中有多個檔案時,檔案類型需要相同,且檔案中列的類型和列的數量一致,才能進行映射。
排除:填寫的儲存路徑中所有檔案不會映射到AnalyticDB for MySQL。
格式解析器
格式解析器會讀取資料檔案內容,從而確定檔案的資料格式。預設為自動解析,即按照順序調用所有內建解析器。
您可以根據OSS路徑中檔案的格式,選擇與檔案格式相同的格式解析器。
重要選擇的格式解析器類型和檔案格式不一致時,會映射失敗。
配置選項(可選)
進階自訂設定項。當格式解析器選擇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。
完成上述參數配置後,單擊建立,開始建立中繼資料發現任務。
說明中繼資料發現任務建立完成後,自動在您設定的時間周期運行發現任務。如果您想立即同步資料,可以在工作清單的操作欄中單擊執行。
任務開始運行後,可以在工作清單介面管理工作的運行情況,支援查看任務的運行狀態、配置的修改等。
說明任務運行成功後,可以在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的表為分區表,表名為 說明 由於沒有分區鍵,這裡使用partition_num來補充。 |
oss://adb/Table2/ | 映射到AnalyticDB for MySQL的表為分區表,表名為 | |
oss://adb/Table2/year/month/ | 映射到AnalyticDB for MySQL的表為非分區表,表名為 | |
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的表為分區表,表名為 |
| 不能映射表。 原因: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的表為分區表,表名為 說明 由於沒有分區鍵,這裡使用partition_num來補充。 |
| 不能映射表。 原因:2020或03不符合AnalyticDB for MySQL表的命名規則。表命名規則的詳細資料,請參見使用限制。 |