編輯

共用方式為


近乎即時的 Lakehouse 數據處理

Azure AI 搜尋
Azure Cosmos DB
Azure Data Lake
Azure 事件中樞
Azure Synapse Analytics

數據驅動企業必須讓後端和分析系統與面向客戶的應用程式進行近乎即時的同步處理。 交易、更新和變更的影響必須透過端對端程式、相關應用程式和在線事務處理 (OLTP) 系統正確反映。 OLTP 應用程式中變更的可容忍延遲,以反映在使用數據的下游系統中,可能只有幾分鐘的時間。

本文說明近乎實時數據處理的端對端解決方案,可讓 Lakehouse 數據保持同步。此解決方案會使用 Azure 事件中樞、Azure Synapse Analytics 和 Azure Data Lake Storage 來進行數據處理和分析。

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

架構

顯示端對端數據處理解決方案數據流的圖表。

下載此架構的 Visio 檔案

資料流程

  1. 異動數據擷取是來源系統接聽變更的必要條件。 Debezium 連接器 可以連線到不同的來源系統,並在變更發生時加以利用。 連接器可以擷取變更,並從各種關係資料庫管理系統 (RDBMS) 產生事件。 安裝 Debezium 連接器需要 Kafka 連線系統。

  2. 連接器會擷取變更數據,並將擷取的事件傳送至 Azure 事件中樞。 事件中樞可以從多個來源接收大量數據。

  3. 事件中樞會直接將數據串流至 Azure Synapse Analytics Spark 集區,或以原始格式將數據傳送至 Azure Data Lake Storage 登陸區域。

  4. 其他批次數據源可以使用 Azure Synapse 管線將數據複製到 Data Lake Storage,並讓它可供處理。 端對端擷取、轉換和載入 (ETL) 工作流程可能需要鏈結不同的步驟,或新增步驟之間的相依性。 Azure Synapse 管線可以在整體處理架構內協調工作流程相依性。

  5. Azure Synapse Spark 集區使用完全支援的 Apache Spark 結構化串流 API 來處理 Spark 串流架構中的數據。 數據處理步驟會納入數據質量檢查和高階商務規則驗證。

  6. Data Lake Storage 會以開放式 Delta Lake 格式儲存已驗證的數據。 Delta Lake 提供不可部分完成性、一致性、隔離和持久性 (ACID) 語意和交易、可調整的元數據處理,以及現有 Data Lake 的統一串流和批次數據處理。

    使用索引進行查詢加速可增強差異,並進一步增強效能。 來自 Data Lake Storage 已驗證區域的數據也可以是進一步進階分析和機器學習的來源。

  7. Data Lake Storage 已驗證區域的數據、使用更多規則轉換和擴充到其最終處理狀態,載入專用 SQL 集區以執行大規模分析查詢。

  8. Power BI 會使用透過專用 SQL 集區公開的數據來建置企業級儀錶板和報表。

  9. 您也可以在 Data Lake Store 登陸區域中使用擷取的原始數據,並以 Delta 格式驗證的數據:

    • 透過 Azure Synapse SQL 無伺服器集區進行進一步臨機操作和探勘分析。
    • 透過 Azure 機器學習 進行機器學習。
  10. 對於某些低延遲介面,數據必須反正規化,才能讓單一數字伺服器延遲。 此使用案例主要適用於 API 回應。 此案例會查詢 NoSQL 數據存放區中的檔,例如 Azure Cosmos DB 中的單一位數毫秒回應。

  11. Azure Cosmos DB 資料分割策略可能不適合所有查詢模式。 如果是這種情況,您可以藉由編製 API 需要存取的數據編製索引,以 Azure 認知搜尋 來增強解決方案。 Azure Cosmos DB 和認知搜尋可以滿足大部分需要低延遲查詢回應的案例。

元件

此解決方案使用下列 Azure 元件:

  • 事件中 樞是受控分散式擷取服務,可調整為擷取大量數據。 使用事件中樞訂閱者-發行者機制,不同的應用程式可以將訊息傳送至事件中樞的主題,而下游取用者可以連線並處理訊息。 事件中樞擷取功能可以在訊息送達時,以AVRO格式將訊息寫入Data Lake Storage。 這項功能可讓您輕鬆進行微批處理和長期保留案例。 事件中樞也提供與 Kafka 相容的 API,並支援架構登錄。

  • Data Lake Storage 會形成儲存所有數據的原始和已驗證格式的記憶體子系統。 Data Lake Storage 可以大規模處理交易,並支援不同的檔案格式和大小。 階層命名空間可協助將數據組織成熟悉的資料夾結構,並支援 UniX 的可攜式作業系統介面 (POSIX) 許可權。 Azure Blob 檔案系統 (ABFS) 驅動程式提供 Hadoop 相容的 API。

  • Azure Synapse Analytics 是一項無限制的分析服務,可將資料整合、企業資料倉儲和巨量資料分析整合在一起。 此解決方案使用 Azure Synapse Analytics 生態系統的下列功能:

    • Azure Synapse Spark 集 區提供隨選 Spark 運行時間,可將內建的效能增強功能新增至開放原始碼 Spark。 客戶可以設定彈性的自動調整設定、透過Apache Livy端點從遠端提交作業,以及使用Synapse Studio筆記本介面進行互動式體驗。

    • Azure Synapse SQL 無伺服器集區 會使用熟悉的 T-SQL 語法,提供介面來查詢 Lakehouse 數據。 沒有可設定的基礎結構,且 Azure Synapse 工作區部署會自動建立端點。 Azure Synapse SQL 無伺服器集區可讓您就地進行數據的基本探索和探索,而且是使用者臨機操作查詢分析的絕佳選項。

    • Azure Synapse 專用 SQL 集區 會將資料儲存在具有單欄記憶體的關係型數據表中。 專用 SQL 集區會使用向外延展架構,將數據處理分散到多個節點。 PolyBase 查詢會將數據帶入 SQL 集區數據表。 數據表可以連線到Power BI進行分析和報告。

  • Power BI 提供可視化介面來建立及存取報表和儀錶板。 Power BI Desktop 可以連線到各種數據源、將來源合併成數據模型,以及建置報表或儀錶板。 透過Power BI,您可以根據商務需求轉換資料,並透過 Power BI 服務與其他人共用視覺效果和報表。

  • Azure Cosmos DB 是受控、多模式的 NoSQL 資料庫,可支持開放 API,例如 MongoDB 和 Cassandra。 此解決方案會針對需要單一位數毫秒響應時間和高可用性的應用程式使用 Azure Cosmos DB。 Azure Cosmos DB 提供跨所有 Azure 區域的多區域寫入。 您可以使用 適用於 Azure Cosmos DB 的 Azure Synapse Link 來衍生深入解析,並即時執行數據分析。

  • Azure 認知搜尋 是雲端搜尋服務,可編製應用程式和 API 所需數據的索引。 認知搜尋具有選擇性的 AI 擴充功能,可協助從非文本檔擷取和推斷文字。 認知搜尋會與 Azure Data Lake Storage 和 Azure Cosmos DB 等服務整合,以輕鬆存取和編製數據索引。 您可以使用 REST API 或 .NET SDK 來查詢已編制索引的數據。 若要從兩個不同的索引取得數據,您可以將它們合併成單一索引,或使用 複雜的數據類型

案例詳細資料

以近乎即時的方式處理變更的端對端工作流程需要:

  • 異動數據擷取 (CDC) 技術。 OLTP 應用程式可能會有不同的後端資料存放區,例如 SQL Server、MySQL 和 Oracle。 第一個步驟是接聽變更發生時,並向前傳播變更。
  • 擷取緩衝區,以大規模發佈變更事件。 此服務應該能夠在訊息送達時處理大量數據。 個別訂閱者可以連線到此系統並處理數據。
  • 依原狀格式針對數據的分散式和可調整記憶體。
  • 分散式且有效率的串流處理系統,可讓使用者重新啟動和管理狀態。
  • 大規模執行的分析系統,可決定商務決策。
  • 自助分析介面。
  • 若為低延遲 API 回應,則為 NoSQL 資料庫儲存數據反正規化表示法。
  • 在某些情況下,系統要編製數據索引、定期重新整理索引,並讓最新的數據可供下游取用。

上述所有技術都應該針對周邊安全性、驗證、授權和數據加密使用相關的安全性建構。

潛在使用案例

此解決方案非常適合:

  • 需要將變更從 OLTP 傳播到在線分析處理 (OLAP) 的產業。
  • 需要資料轉換或擴充的應用程式。

實時數據處理案例對於金融服務產業尤其重要。 例如,如果保險、信用卡或銀行客戶進行付款,然後立即連絡客戶服務,客戶支援專員必須擁有最新資訊。

類似的案例適用於零售、商業和醫療保健部門。 啟用這些案例可簡化作業,進而提升組織生產力並提升客戶滿意度。

考量

這些考量能實作 Azure Well-Architected Framework 的支柱,其為一組指導原則,可以用來改善工作負載的品質。 如需更多資訊,請參閱 Microsoft Azure 結構完善的架構

可靠性

可靠性可確保您的應用程式符合您對客戶的承諾。 如需詳細資訊,請參閱可靠性支柱的概觀 (部分機器翻譯)。

  • 事件中樞會在進階層和專用層上提供90天的數據保留期。 針對故障轉移案例,您可以在配對區域中設定次要命名空間,並在故障轉移期間加以啟用。

  • Azure Synapse Spark 集區作業會每隔七天回收一次,因為節點已關閉以進行維護。 當您透過系結至系統的服務等級協定 (SLA) 時,請考慮此活動。 對於復原時間目標 (RTO) 大約 15 分鐘的情況,這項限制並不是問題。

成本最佳化

成本最佳化是關於考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱成本最佳化支柱的概觀

  • 您可以根據工作負載特性,從不同的事件中樞層中選取。 事件中樞會根據儲存在 Data Lake Storage 上的資料量,分別收取擷取記憶體的費用。

  • 請考慮透過 Azure Data Lake Storage 上的層進行物件生命週期管理。 隨著數據老化,您可以將數據從經常性層移動,而您需要存取最近的分析數據,移至價格較低之冷儲存層。 冷儲存層是長期保留的符合成本效益的選項。

  • 當您未在開發或測試環境中使用它時,您可以暫停專用 SQL 集區。 您可以視需要排程腳本來暫停集區,也可以透過入口網站手動暫停集區。

  • Azure Cosmos DB 提供不同的佈建模型,例如無伺服器、手動布建的輸送量和自動調整。 請考慮針對開發和測試工作負載使用無伺服器布建。 您也可以使用自動調整,您可以在容器上設定每秒要求單位上限(RU/秒)。 容器上的輸送量會自動在最大 RU/秒的 10% 之間調整為較低的閾值,以及設定的最大 RU/秒。

效能效益

效能效率可讓您的工作負載進行調整,以有效率的方式符合使用者對其放置的需求。 如需詳細資訊,請參閱效能效率支柱概觀

  • 您可以透過資料分割調整事件中樞。 請考慮分割您的數據,以透過認可記錄來保留事件的順序。 數據分割可讓您藉由最大化可用的輸送量容量來建立多個平行記錄。

  • 您可以根據工作負載,設定具有小型、中型或大型虛擬機 (VM) SKU 的 Azure Synapse Spark 集區。 您也可以在 Azure Synapse Spark 集區上設定自動調整,以考慮尖刻的工作負載。 如果您需要更多計算資源,叢集會自動相應增加以符合需求,並在處理完成後相應減少。

  • 使用最佳做法在專用 SQL 集區中設計數據表。 相關聯的效能和延展性限制會根據 SQL 集區正在執行的層級套用。

  • Azure Cosmos DB 會使用分割區來根據分割區索引鍵調整容器。 以數據分割索引鍵為基礎的所有數據都會形成邏輯分割區。 請務必根據工作負載需求選擇正確的分割策略。 您也可以使用索引來加快數據擷取的速度。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主要作者:

其他投稿人:

若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。

下一步