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 ライブラリを読み込むことができます。
Note
原則として、最新の互換性のあるライブラリを使用します。 このガイドに含まれているコードは、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) 以降に関するものです。
また、Delta Lake 固有の Spark SQL コマンドとメタストア統合を有効にするように、Spark を構成する必要もあります。 次に示すのは、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 エンドポイントを使用して SQL Server ビッグ データ クラスター に Spark ジョブを送信するには、コマンドライン ツールを使用して Spark ジョブを送信に関するページを参照してください。
SQL Server ビッグ データ クラスター と関連するシナリオの詳細については、「SQL Server ビッグ データ クラスター とは」を参照してください。