使用 Azure Databricks 和 Delta Lake 擷取、ETL 和串流處理管線

Azure Databricks
Azure Data Lake 儲存體
Azure IoT 中樞
Azure Data Factory
Azure 事件中樞

解決方案構想

本文是解決方案概念。 如果您想要使用詳細資訊來擴充內容,例如潛在的使用案例、替代服務、實作考慮或定價指引,請提供 GitHub 意見反應讓我們知道。

您的組織需要以一致的方式內嵌任何格式、大小和速度的數據到雲端。 本文中的解決方案符合需要實作從數據源擷取、轉換和載入 (ETL) 到 Data Lake 的架構。 Data Lake 可以保存所有數據,包括各種規模的已轉換和策劃版本。 數據可用於數據分析、商業智慧(BI)、報告、數據科學和機器學習。

Apache 和 Apache® Spark™ 是 美國 和/或其他國家/地區的 Apache Software Foundation 註冊商標或商標。 Apache Software Foundation 不會隱含使用這些標記。

架構

Diagram that shows the architecture and data flow for ETL and stream processing with Azure Databricks.

下載此架構的 Visio 檔案

資料流程

  1. 資料會以下欄取方式內嵌:

    • 事件佇列,例如事件中樞、IoT 中樞 或 Kafka 會將串流數據傳送至 Azure Databricks,其會使用優化的 Delta Engine 來讀取數據。
    • 排程或觸發的 Data Factory 管線會以原始格式從不同的數據源複製數據。 Azure Databricks 中的自動載入器會在數據送達時處理數據。
  2. Azure Databricks 會將數據載入 Data Lake 儲存體 銅層中優化、壓縮的 Delta Lake 數據表或資料夾。

  3. 串流、排程或觸發的 Azure Databricks 作業會從 Data Lake 儲存體 銅層讀取新的交易。 作業會先聯結、清除、轉換和匯總數據,再使用 ACID 交易將其載入 Data Lake 儲存體 Silver 和 Gold 層中策劃的數據集。

  4. 數據集會儲存在 Data Lake 儲存體 的 Delta Lake 中。

每個服務都會將數據擷取成一般格式,以確保一致性。 此架構會使用以開放式 Delta Lake 格式為基礎的共享數據湖。 原始數據會從不同的批次和串流來源擷取,以形成統一的數據平臺。 平臺可用於下游使用案例,例如分析、BI 報告、數據科學、AI 和機器學習。

銅級、銀級和金級儲存層

透過獎牌模式,由銅牌、銀級和金級儲存層組成,客戶具有彈性的存取權和可延伸的數據處理。

  • 當銅牌數據表位於 Data Lake 儲存體 時,會提供原始數據的進入點。 數據會採用其原始來源格式,並轉換成開放式交易式 Delta Lake 格式進行處理。 解決方案會使用下列方法將數據內嵌至銅層:
    • Azure Databricks 中的 Apache Spark API。 API 會從事件中樞或 IoT 中樞 讀取串流事件,然後將這些事件或源檔轉換成 Delta Lake 格式。
    • COPY INTO 命令。 使用 命令,將數據直接從來源檔案或目錄複製到 Delta Lake。
    • Azure Databricks 自動載入器。 自動載入器會在到達數據湖時擷取檔案,並將其寫入 Delta Lake 格式。
    • Data Factory 複製活動。 客戶可以使用此選項,將數據從任何支援的格式轉換成 Delta Lake 格式。
  • 表在針對 BI 和數據科學使用案例進行優化時,會儲存數據。 銅層會擷取原始數據,然後執行更多 ETL 和串流處理工作,以篩選、清除、轉換、聯結和匯總數據到 Silver 策劃的數據集。 當使用 Azure Databricks 做為這些工作的初始服務時,公司可以使用一致的計算引擎,例如開放式標準 Delta Engine。 然後,他們可以使用熟悉的程序設計語言,例如 SQL、Python、R 或 Scala。 公司也可以使用可重複的 DevOps 程式和暫時計算叢集來調整為其個別工作負載。
  • 黃金 數據表包含擴充的數據,可供分析和報告使用。 分析師可以使用其選擇方法,例如 PySpark、Koalas、SQL、Power BI 和 Excel 來取得新的見解並制定查詢。

元件

  • 事件中樞會 剖析和評分來自各種來源的串流訊息,包括內部部署系統,並提供實時資訊。
  • Data Factory 會協調數據管線,以在任何規模擷取、準備和轉換所有數據。
  • Data Lake 儲存體 整合串流和批處理數據,包括結構化、非結構化和半結構化數據,例如記錄、檔案和媒體。
  • Azure Databricks 會清理和轉換無結構化數據集,並將其與操作資料庫或數據倉儲中的結構化數據結合。
  • IoT 中樞 可讓您在IoT應用程式和裝置之間進行高度安全且可靠的通訊。
  • Data Lake 上的 Delta Lake 儲存體 支援 ACID 交易的可靠性,並已針對有效率的擷取、處理和查詢進行優化。

案例詳細資料

使用 Azure Databricks 進行擷取、ETL 和串流處理很簡單、開放且共同作業:

  • 簡單:開放原始碼格式具有策劃層的開放數據湖可簡化數據架構。 Delta Lake 是開放原始碼工具,可提供 Azure Data Lake 儲存體 Data Lake 的存取權。 Data Lake 上的 Delta Lake 儲存體 支援可靠性的不可部分完成性、一致性、隔離和持久性 (ACID) 交易。 Delta Lake 已針對有效率的擷取、處理和查詢進行優化。
  • Open:解決方案支援開放原始碼程式代碼、開放標準和開放架構。 它也適用於熱門的整合開發環境 (IDE)、連結庫和程式設計語言。 透過原生連接器和 API,解決方案也適用於各種其他服務。
  • 共同作業:數據工程師、數據科學家和分析師會與此解決方案合作。 他們可以使用共同作業筆記本、IDE、儀錶板和其他工具來存取和分析一般基礎數據。

Azure Databricks 可順暢地與其他 Azure 服務整合,例如 Data Lake 儲存體、Azure Data Factory、Azure 事件中樞 和 Azure IoT 中樞。

潛在的使用案例

此解決方案受到為即時分析所建置的 Providence Health Care 系統所啟發。 擷取批次或串流數據的任何產業也可以考慮此解決方案。 範例包含:

  • 零售和電子商務
  • Finance
  • 醫療保健與生命科學
  • 能源供應商

下一步

  • 西班牙點技術 會使用 Azure Databricks 和 Azure Data Factory 來建置其比對引擎,大規模內嵌數據,以協助音樂家獲得公平報酬。

指南和完整可部署的架構: