全部產品
Search
文件中心

Data Lake Analytics - Deprecated:OSS資料來源

更新時間:Jul 06, 2024

企業的商務服務所產生的一些標準化表單、日誌等資料檔案,會被周期性的直接上傳到OSS。但是這些儲存在OSS的檔案缺少中繼資料管理,導致難以分析和計算。中繼資料發現任務可以在單次運行中自動為OSS上面的資料檔案建立和更新資料湖中繼資料(一張或多張表),具有自動探索檔案資料欄位及類型、自動對應目錄和分區、自動感知新增列及分區、自動對檔案進行分組建表的能力。

OSS資料來源配置模式

OSS資料來源配置支援數倉模式自由模式,兩種模式差異如下:
OSS資料來源配置使用情境OSS路徑格式要求識別精度效能
數倉模式使用者直接上傳資料到OSS,並期望構建可分析與計算的標準資料倉儲。庫/表/檔案”或者“庫/表/分區/.../分區/檔案
自由模式已存在OSS資料,但OSS的路徑不清晰。期望通過元資訊發現,構建可分析的庫表分區。無要求一般一般

數倉模式的OSS路徑格式要求

OSS是一個開放的檔案系統,為了高效的在OSS上面構建資料倉儲,資料來源路徑格式需要有一定的規範性。OSS資料來源數倉模式的元資訊發現只支援庫/表/檔案或者庫/表/分區/.../分區/檔案的路徑格式(根目錄對應schema;第二級子目錄對應Table,且子目錄名需要映射到表名;第三級以上如果還有目錄,就對應為分區)。
上述數倉模式的OSS資料來源進行元資訊發現後,在DLA中自動對應的表如下所述:
OSS資料來源目錄名稱DLA中自動對應的表名稱映射說明
Table1不建立表Table1目錄下的檔案類型為csv和json,不一致,故而不能進行映射建立表。同一目錄下的檔案類型必須一致才能進行映射。
說明 如果檔案類型相同,但是檔案裡面的欄位不是同一種類型也不能進行映射。
Table2建立表Table2Table2目錄下的檔案類型都為csv,可以進行映射。
Table3建立分區表Table3分區格式為year=xx/month=xx/day=xx/。自動對應了以下分區:
  • year=2020/month=03/day=01
  • year=2020/month=03/day=02
  • year=2020/month=04/day=29
  • year=2020/month=04/day=30
Table4建立分區表Table4分區格式為age=xx。自動對應了age=20分區。
Table5建立分區表Table5分區格式為partition_0=xx/partition_1=xx/partition_2=xx/。自動對應了以下分區:
  • 2020/03/29
  • 2020/03/30
說明 由於沒有分區鍵,這裡使用partition_num來補充。

操作步驟

  1. 登入Data Lake Analytics管理主控台
  2. 在左側導覽列,單擊資料湖管理 > 元資訊發現
  3. 元資訊發現頁面的OSS資料來源地區,單擊進入嚮導元資訊發現
  4. OSS資料來源頁簽,根據頁面提示進行參數配置,配置說明如下:
    參數說明
    數倉模式和自由模式您可以選擇數倉模式或自由模式:
    • 數倉模式:為“基於OSS而構建的標準資料倉儲”的情境構建自動化元資訊發現,識別精度高。OSS路徑資料布局要求為“庫/表/檔案”或者“庫/表/分區/.../分區/檔案”。
    • 自由模式:為“探索OSS上的資料進行分析”的情境構建自動化元資訊發現。對OSS資料布局沒有要求,可能會產生差異化的表。
    OSS目錄位置檔案在OSS中的儲存地址,以/結尾。系統會根據您選擇的檔案夾路徑,自動化佈建OSS路徑。
    說明 系統會自動拉取與DLA同地區的OSS Bucket,您可以根據業務需要從下拉式清單中選擇Bucket。選擇Bucket後,系統會自動列出該Bucket下所有的Object和檔案;選中目標Object和檔案後,系統會自動將其添加到右側的OSS路徑處。
    格式解析器格式解析器會讀取資料檔案內容,從而確定檔案的資料格式。預設自動解析,即按照順序調用所有內建解析器,也可指定特定檔案類型的格式解析器,比如json、parquet、avro、orc、csv。
    • json:需要讀取檔案開頭以確定檔案格式。
    • parquet:需要讀取檔案結尾處的schema以確定檔案格式。
    • avro:需要讀取檔案開頭處的shema以確定檔案格式。
    • orc:要讀取檔案中繼資料以確定檔案格式。
    • csv:檢查以下分隔字元:逗號(,)、豎線(|)、定位字元(\t)、分號(;)、空格( )、(\u0001)。
    配置選項進階自訂設定項,如更新,刪除規則等。
    調度頻率您可以根據需要定期計劃運行元資訊發現任務。
    Schema名稱設定Schema名稱,即映射到DLA中的資料庫名稱(預設每個發現任務會新建立一個獨立的Schema)。
  5. 完成上述參數配置後,單擊建立,開始建立元資訊發現任務。
    說明 元資訊發現任務建立完成後,DLA自動在您設定的時間周期運行發現任務,如果您想立即同步資料,也可以在工作清單選擇立即執行。
  6. 任務開始運行後,會在執行個體列表顯示任務執行個體的當前運行狀態。也可以在工作清單介面管理工作的運行情況,支援查看任務的運行狀態、配置的修改、跳轉到DLA的SQL視窗進行快速的資料查詢。圖片

注意事項

數倉模式的注意事項如下:
  • 如果OSS資料來源路徑沒有被DLA識別出來,您需要查看路徑下的檔案類型是否相同。如果是CSV檔案,您可以在解析器CSV中配置具體的參數比如分隔字元、逸出字元、是否有表頭等。
  • 由於元資訊發現通過採樣的方式並不能覆蓋所有的記錄,如果不同行的欄位變化很大,會出現產生的表欄位減少的情況。
  • 在識別分區及表的時候,只支援子目錄下只有檔案的情境。如果目錄下既有子目錄又有檔案,則該目錄會被忽略掉,從而導致分區沒有產生。
自由模式的注意事項如下:
  • 元資訊發現會如何產生表名

    元資訊發現會自動為它建立的表產生名稱。儲存在中繼資料管理schema目錄中的表的名稱遵循以下規則:

    • 預設使用最後一級目錄名作為表名(針對OSS資料檔案)。
    • 僅允許使用字母、數字、字元和底線(_)。
    • 表名的最大長度不能超過 128 個字元。發現程式會截斷產生的名稱以適應限制範圍。
    • 如果遇到重複的表名,則元資訊發現會在表名後添加MD5字串尾碼。
  • 元資訊發現如何建立分區

    當元資訊發現掃描OSS目錄檔案並檢測到多個檔案時,它會在目錄結構中確定表的根目錄,以及哪些目錄是表的分區。

    表的名稱基於OSS目錄首碼或目錄名,當某個目錄層級下大部分的目錄結構和檔案格式都相同時,發現程式會建立一張分區表。例如,對於以下OSS目錄結構:
    oss://bucket01/folder1/table1/partition1/fiile.txt
    oss://bucket01/folder1/table1/partition2/fiile.txt
    oss://bucket01/folder1/table2/partition3/fiile.txt
    oss://bucket01/folder1/table2/partition4/fiile.txt

    因為table1和table2下的目錄和檔案內容都是相似的,所以發現程式將建立一個具有兩個分區列的表。分區列分別為partition_0(table這一級目錄)、partition_1(partition這一級目錄)。

    對於以下OSS目錄結構:
    oss://bucket01/folder1/table1/partition1/fiile.csv
    oss://bucket01/folder1/table1/partition2/fiile.csv
    oss://bucket01/folder1/table2/partition3/fiile.json
    oss://bucket01/folder1/table2/partition4/fiile.json

    因為table1和table2下的檔案格式不同,所以發現程式將建立兩張具有一個分區列的表。table1分區列包含partition1和partition2,table2分區列包含partition3和partition4。

    對於採用key=value樣式的Hive風格分區路徑,發現程式會使用鍵名自動填滿列名稱。否則,它使用預設名稱,如partition_0、partition_1 等。