MaxCompute支援使用外部表格功能查詢和分析儲存於OSS等外部儲存系統的資料。該機制使得使用者可以無需將資料匯入到MaxCompute內部儲存,直接對外部資料進行操作,從而提供了資料處理的靈活性和方便性。
背景資訊
MaxCompute SQL作為分布式資料處理的主要入口,可實現EB層級離線資料的快速處理和儲存。隨著巨量資料業務的不斷擴充,新的資料使用情境在不斷產生,MaxCompute計算架構也在不斷演化。MaxCompute原來主要面對內部特殊格式資料的強大計算能力,正一步步地開放給不同的外部資料。
現階段MaxCompute SQL處理的主要是以cfile列格式儲存在內部MaxCompute表格中的結構化資料。對於MaxCompute表外的各種使用者資料(包括文本以及各種非結構化的資料),您需要通過不同工具匯入MaxCompute表再進行計算。以OSS為例,如果您需要在MaxCompute中處理OSS上的資料,通常有以下兩種方式:
通過OSS SDK或者其他工具從OSS下載資料,然後再通過MaxCompute Tunnel將資料匯入表裡。
編寫UDF,在UDF裡直接調用OSS SDK訪問OSS資料。
但這兩種方法都有不足之處:
第一種方法需要在MaxCompute系統外部做一次中轉,如果OSS資料量太大,還需要考慮如何並發來加速,無法充分利用MaxCompute的大規模計算能力。
第二種方法通常需要申請UDF網路存取權限,還需要開發人員自己控製作業並發數,解決資料如何分區的問題。
因此,MaxCompute提供了外部表格來解決上述問題。外部表格的功能旨在提供除MaxCompute內部表以外的其他資料的處理能力。通過一條簡單的DDL語句,即可在MaxCompute上建立一張外部表格,建立MaxCompute表與外部資料源的關聯,提供各種資料的接入和輸出能力。建立好的外部表格可以像普通的MaxCompute表一樣使用(大部分情境),充分利用MaxCompute SQL的強大計算功能。
使用外部表格功能時,外部表格的資料不會複製一份存在MaxCompute上併產生儲存費用。
外部表格支援全量搜尋。
Tunnel功能及Tunnel SDK當前不支援外部表格操作。您可以通過Tunnel直接上傳資料到MaxCompute內部表,或者是通過OSS Python SDK上傳到OSS後,在MaxCompute使用外部表格做映射。
您可以通過DataWorks配合MaxCompute對外部表格進行可視化的建立、搜尋、查詢、配置、加工和分析。詳情請參見外部表格。
外部表格在MaxCompute側只會產生計算費用,遵循MaxCompute計算資源計費規則。外部表格的資料不會儲存在MaxCompute,所以在MaxCompute不會有儲存費用,儲存費用請關注資料來源儲存側計費規則。在使用公網MaxCompute Endpoint串連外部表格時,會產生公網流量費和下載費用。MaxCompute費用詳情請參見計費項目與計費方式概述。
使用MaxCompute外部表格訪問外部資料源時,外部資料源可能會產生計算、訪問、資料轉送等費用,具體以外部資料源計費方式為準,請關注相應產品的說明。
外部表格樣本
您可以通過以下樣本,深入瞭解通過MaxCompute外部表格功能處理各種非結構化資料的方法:
訪問OSS和TableStore(OTS)非結構化資料,請參見訪問OSS非結構化資料和訪問OTS非結構化資料。
外部表格訪問OSS的帳號,在RAM中自訂授權MaxCompute訪問OSS的許可權,請參見STS模式授權。
MaxCompute的非結構化架構支援通過INSERT方式將MaxCompute的資料直接輸出到OSS,請參見將資料寫入OSS。
處理各種開源格式資料,請參見支援開源格式資料。
相關文檔
MaxCompute支援OSS、Hologres及RDS等多種外部表格,具體請參見OSS外部表格、Tablestore外部表格、Hologres外部表格、Paimon外部表格。