適用於:SQL Server 2019 (15.x)
這很重要
Microsoft SQL Server 2019 巨量資料叢集附加元件將會淘汰。 SQL Server 2019 巨量資料叢集的支援將於 2025 年 2 月 28 日結束。 平台上將完全支援含軟體保證 SQL Server 2019 的所有現有使用者,而且軟體將會持續透過 SQL Server 累積更新來維護,直到該時間為止。 如需詳細資訊,請參閱公告部落格文章與 Microsoft SQL Server 平台上的巨量資料選項。
在本指南中,您將瞭解:
- SQL Server 巨量數據叢集上 Delta Lake 的必要條件和功能。
- 如何在 CU12 叢集上載入 Delta Lake 函式庫,以搭配 Spark 2.4 的會話和作業使用。
簡介
Linux Foundation Delta Lake 是一個開放原始碼的儲存層,它將 ACID(原子性、一致性、隔離性和持久性)事務帶入 Apache Spark 和大型數據工作負載中。 若要深入瞭解 Delta Lake,請參閱:
在更新至 CU13 及以上版本的 SQL Server 巨量資料叢集上使用 Delta Lake(Spark 3)
Delta Lake 預設會在 SQL Server 巨量數據叢集 CU13 和更新版本上安裝及設定。 不需要採取進一步的動作。
本文涵蓋 SQL Server 巨量數據叢集 CU12 和以下 Delta Lake 的設定。
在 SQL Server 大數據叢集 CU12 及以下版本中設定 Delta Lake(Spark 2.4)
在 SQL Server 巨量數據叢集 CU12 或更新版本上,可以使用 Spark 連結庫管理功能 載入 Delta Lake 連結庫。
備註
一般情況下,請使用最新的相容程式庫。 本指南中的程式代碼是使用 SQL Server 巨量數據叢集 CU12 上的 Delta Lake 0.6.1 進行測試。 Delta Lake 0.6.1 與 Apache Spark 2.4.x 相容,較新版本則不是。 範例 as-is是提供的示例,而不是支援性陳述。
設定 Delta Lake 函式庫和 Spark 組態選項
在提交作業之前,請先將 Delta Lake 庫與您的應用程式設定好。 需要下列函式庫
- delta-core - 此核心連結庫可啟用 Delta Lake 支援。
程式庫必須設定為 Scala 2.11 和 Spark 2.4.7。 此 SQL Server 巨量數據叢集需求適用於 SQL Server 2019 累積更新 9 (CU9) 或更新版本。
也需要設定 Spark,以啟用 Delta Lake 特定的 Spark SQL 命令和元數據存儲整合。 下列範例說明 Azure Data Studio 筆記本如何設定 Delta Lake 支援:
%%configure -f \
{
"conf": {
"spark.jars.packages": "io.delta:delta-core_2.11:0.6.1",
"spark.sql.extensions":"io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog":"org.apache.spark.sql.delta.catalog.DeltaCatalog"
}
}
HDFS 上作業共享程式庫的位置
如果多個應用程式將使用 Delta Lake 連結庫,請將適當的連結庫 JAR 檔案複製到 HDFS 上的共用位置。 然後所有作業都應該參考相同的庫檔案。
將函式庫複製到通用位置:
azdata bdc hdfs cp --from-path delta-core_2.11-0.6.1.jar --to-path "hdfs:/apps/jars/delta-core_2.11-0.6.1.jar"
動態安裝程式庫
您可以使用巨量數據叢集的 套件管理功能 ,在提交作業時動態安裝套件。 作業啟動時間會受到影響,因為在每次作業提交時都必須重複下載程式庫檔案。
使用 azdata 提交 Spark 作業
下列範例使用 HDFS 上的共享連結庫 JAR 檔案:
azdata bdc spark batch create -f hdfs:/apps/ETL-Pipelines/my-delta-lake-python-job.py \
-j '["/apps/jars/delta-core_2.11-0.6.1.jar"]' \
--config '{"spark.sql.extensions":"io.delta.sql.DeltaSparkSessionExtension","spark.sql.catalog.spark_catalog":"org.apache.spark.sql.delta.catalog.DeltaCatalog"}' \
-n MyETLPipelinePySpark --executor-count 2 --executor-cores 2 --executor-memory 1664m
此範例會使用動態套件管理來安裝相依性:
azdata bdc spark batch create -f hdfs:/apps/ETL-Pipelines/my-delta-lake-python-job.py \
--config '{"spark.jars.packages":"io.delta:delta-core_2.11:0.6.1","spark.sql.extensions":"io.delta.sql.DeltaSparkSessionExtension","spark.sql.catalog.spark_catalog":"org.apache.spark.sql.delta.catalog.DeltaCatalog"' \
-n MyETLPipelinePySpark --executor-count 2 --executor-cores 2 --executor-memory 1664m
後續步驟
若要瞭解如何有效地使用 Delta Lake,請參閱下列文章。
若要使用 azdata
或 Livy 端點將 Spark 作業提交至 SQL Server 巨量數據叢集,請參閱 使用命令行工具來提交 Spark 作業。
如需 SQL Server 巨量數據叢集和相關案例的詳細資訊,請參閱 SQL Server 巨量數據叢集簡介。