在 Azure 中選擇批處理技術

巨量數據解決方案通常會使用長時間執行的批次作業來篩選、匯總,以及準備數據以供分析。 這些作業通常涉及從可調整的記憶體讀取來源檔案(例如 HDFS、Azure Data Lake Store 和 Azure 儲存體),處理它們,並將輸出寫入可調整記憶體中的新檔案。

這類批處理引擎的基本需求是相應放大計算來處理大量數據。 與實時處理不同,批處理預期會有延遲(數據擷取與計算結果之間的時間),以分鐘到小時為單位。

批處理的技術選擇

Azure Synapse Analytics

Azure Synapse 是一種分散式系統,其設計目的是要對大型數據執行分析。 其支援大量平行處理 (MPP),因此適用於執行高效能分析。 當您擁有大量數據(超過 1 TB)且執行分析工作負載時,請考慮使用 Azure Synapse,以受益於平行處理原則。

Azure Data Lake Analytics

Data Lake Analytics 是隨選分析作業服務。 其已針對儲存在 Azure Data Lake Store 中的大型數據集進行分散式處理優化。

  • 語言: U-SQL (包括 Python、R 和 C# 延伸模組)。
  • 與 Azure Data Lake Store、Azure 儲存體 Blob、Azure SQL 資料庫 和 Azure Synapse 整合。
  • 定價模式是個別作業。

HDInsight

HDInsight 是受控 Hadoop 服務。 使用它在 Azure 中部署和管理 Hadoop 叢集。 針對批處理,您可以使用SparkHive、Hive LLAP、MapReduce

  • 語言:R、Python、Java、Scala、SQL
  • 使用 Active Directory、Apache Ranger 型訪問控制進行 Kerberos 驗證
  • 讓您完全控制Hadoop叢集

Azure Databricks

Azure Databricks 是以 Apache Spark 為基礎的分析平臺。 您可以將它視為「Spark 即服務」。這是在 Azure 平臺上使用 Spark 最簡單的方式。

  • 語言:R、Python、Java、Scala、Spark SQL
  • 快速叢集開始時間、自動決定、自動調整。
  • 為您管理 Spark 叢集。
  • 內建與 Azure Blob 儲存體、Azure Data Lake 儲存體 (ADLS)、Azure Synapse 和其他服務整合。 請參閱 數據源
  • 使用 Microsoft Entra 識別碼進行用戶驗證。
  • 用於共同作業和數據探索的 Web 型 筆記本
  • 支援 已啟用 GPU 的叢集

索引鍵選取準則

若要縮小選擇範圍,請從回答下列問題開始:

  • 您要受控服務,而不是管理自己的伺服器嗎?

  • 您要以宣告方式或命令方式撰寫批處理邏輯嗎?

  • 您是否會在高載中執行批處理? 如果是,請考慮可讓您自動終止叢集的選項,或其定價模式是每個批次作業。

  • 您需要查詢關係型數據存放區以及批處理,例如查詢參考數據嗎? 如果是,請考慮啟用外部關係存放區查詢的選項。

功能矩陣

下表摘要說明功能的主要差異。

一般功能

功能 Azure Data Lake Analytics Azure Synapse HDInsight Azure Databricks
是受控服務 Yes 1 Yes
關係型數據存放區 Yes .是 Yes
計價模式 每個批次作業 依叢集時數 依叢集時數 Databricks Unit2 + cluster hour

[1] 使用手動設定。

[2] Databricks 單位 (DBU) 是每小時的處理能力單位。

功能

功能 Azure Data Lake Analytics Azure Synapse HDInsight 與Spark HDInsight 包含 Hive HDInsight 包含 Hive LLAP Azure Databricks
自動調整規模 No .是 .是 .是 Yes
向外延展數據粒度 每個作業 每個叢集 每個叢集 每個叢集 每個叢集 每個叢集
數據的記憶體內部快取 No .是 .是 .是 Yes
從外部關係型存放區查詢 .是 Yes
驗證 Microsoft Entra ID SQL / Microsoft Entra ID No Microsoft Entra ID1 Microsoft Entra ID1 Microsoft Entra ID
稽核 .是 No 1 1 Yes
資料列層級安全性 No 2 No 1 1 Yes
支援防火牆 Yes .是 3 3 Yes
動態資料遮罩 No .是 No 1 1 Yes

[1] 需要使用 已加入網域的 HDInsight 叢集

[2] 僅篩選述詞。 請參閱 數據列層級安全性

[3] 在 Azure 虛擬網絡 內使用時支援。

參與者

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

主體作者:

下一步