共用方式為


SQL Server 巨量資料叢集上的 Delta Lake

適用於: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,請參閱:

SQL Server 巨量資料叢集 CU13 和更新版本上的 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 相容,但更新版本並不相容。 這些範例會依原樣提供,但並不是支援聲明。

設定 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 巨量資料叢集簡介