全部產品
Search
文件中心

Data Lake Formation:EMR+DLF資料湖解決方案

更新時間:Dec 18, 2024

通過EMR+DLF資料湖方案,可以為企業提供資料湖內的統一的中繼資料管理,統一的許可權管理,支援資料湖的多種管理如資料生命週期、湖格式自動最佳化、儲存分析等。同時支援多來源資料入湖以及一站式資料探索的能力。本文為您介紹EMR+DLF資料湖方案具體實踐步驟。

背景資訊

採用EMR+DLF資料湖解決方案,相對傳統EMR資料湖方案有下列優點:

  • DLF提供資料湖跨引擎的統一的,全託管免營運的中繼資料服務。

    • 支援可視化的中繼資料管理,以及多版本管理和回退。

    • 支援可視化一鍵中繼資料遷移。

    • 支援中繼資料全文檢索索引。

    • 支援中繼資料DataProfile,如檔案大小、行數、訪問頻次、小檔案數量、檔案冷熱度、有效檔案數等。

    • 支援除EMR開源引擎外的更多計算引擎,如MaxCompute、Flink、Hologres等多種引擎。

  • DLF提供豐富的細粒度資料許可權控制。

    • 支援按照資料目錄、資料庫、資料列、函數等資源的各種細粒度許可權點的可視化配置。

    • 支援與EMR中多種計算引擎整合,包括Spark、Hive、Presto、Impala多種計算引擎。

  • 提供豐富的資料湖管理能力。

    • 支援多種維度資料生命週期管理,可以對資料按照冷熱、更新時間等自動化歸檔,節省儲存成本。

    • 支援針對Delta資料湖格式的自動化儲存最佳化策略,節省儲存成本。

其他說明

操作流程

步驟一:建立DLF統一中繼資料的EMR DataLake叢集

建立EMR叢集,並使用DLF作為中繼資料。

  1. 登入E-MapReduce控制台

  2. 建立E-MapReduce叢集,輸入選項如下:

    • 業務情境:選擇資料湖

    • 可選服務:需要至少選中Hive組件,其他組件根據業務需要選擇。

    • 中繼資料:選擇DLF 統一中繼資料。

    • DLF資料目錄:選擇預設的DLF Catalog,或者建立一個資料目錄(Catalog)。如果您沒有開通DLF,會提醒您先開通DLF產品。

  3. 繼續其他配置完成EMR叢集建立。詳情請參見建立叢集

步驟二:初始化中繼資料

初始化中繼資料分為以下三種情況:

  • 原有EMR叢集(內建MySQL或自建RDS做中繼資料),需要將原叢集的中繼資料遷移到DLF中。相關內容請參見EMR中繼資料遷移DLF最佳實務

  • 建立EMR叢集,沒有歷史中繼資料。您可以通過DLF來可視化建立中繼資料,或者使用Hive、Spark SQL來建立資料庫和資料表等。

    1. 登入資料湖構建控制台,選擇與OSS相同的地區,例如華東1(杭州)。

    2. 在左側導覽列,選擇中繼資料 > 中繼資料管理

    3. 單擊資料庫頁簽,單擊建立資料庫

    4. 建立資料庫頁面,配置中繼資料庫參數,單擊確定

  • 建立EMR叢集,已有資料存在OSS中,但沒有中繼資料資訊。可以使用中繼資料抽取來識別OSS上資料的中繼資料資訊,並儲存在DLF中。最佳實務,請參見DLF資料探索快速入門-淘寶使用者行為分析

步驟三:初始化資料

初始化資料一般常見的幾種情況如下:

  1. 原有EMR叢集,需要進行資料移轉。此時可以考慮通過JindoDistCp工具將原叢集的資料移轉到OSS中。

  2. 從RDS、MySQL、Kafka等業務系統接入資料。此時可以考慮通過Realtime ComputeFlink實現資料入湖到DLF中。可參考如何在Flink中管理DLF Catalog

步驟四:通過Spark/Presto引擎查詢DLF表

通過SSH方式登入到EMR叢集的Master-1-1節點,詳情請參見登入叢集

  1. 通過spark-sql查詢表。

    1. 執行以下命令,啟動spark-sql。

      spark-sql
    2. 輸入SQL,查詢表資料。

      SELECT * FROM <database>.<table>;
  2. 通過presto查詢表。

    1. 執行以下命令,進入Presto命令列。

      presto --server master-1-1:8889
    2. 輸入SQL,查詢表資料。

      SELECT * FROM <catalog>.<database>.<table>;

      命令中的參數說明如下:

      參數名稱

      說明

      <catalog>

      待串連的資料來源的名稱。

      您可以通過show catalogs;命令查看所有的Catalog;或者在EMR控制台Presto服務的配置頁簽,查看所有的Catalog。

      <database>

      待查詢的資料庫的名稱。

      <table>

      待查詢的資料表。

      例如,如果要查看Hive資料來源中預設資料庫中的test表的資料,您可以使用SELECT * FROM hive.default.test;命令。

步驟五(可選):開啟資料許可權控制

有些業務情境對資料安全要求較高,需要對資料湖內的資料許可權進行合理控制。此時您需要以下兩步來完成資料許可權的開啟:

  1. EMR叢集開啟DLF許可權控制,操作步驟可參考DLF-Auth開啟EMR叢集許可權控制。

  2. 在DLF中按照使用權限設定為您的相應Catalog開啟許可權控制。

以上兩個步驟完成後,您的整個EMR叢集的資料訪問將會受到資料許可權控制,如果沒有許可權的使用者訪問叢集資料,將會被拒絕。

此時可以參考DLF的資料授權,為相應使用者配置合理的資料許可權。相關內容請參見DLF+EMR之統一許可權最佳實務

步驟六(可選):生命週期管理

您可以通過生命週期管理對資料湖中的資料庫、資料表配置資料管理規則,可以基於分區/表建立時間、分區/表最近修改時間、分區值三種規則類型,對資料定期進行OSS儲存類型轉換,從而節省資料存放區成本。具體操作和說明請參考生命週期管理