Share via


.NET 用の Spark クライアント ライブラリのAzure Synapse - バージョン 1.0.0-preview.8

このディレクトリには、.NET SDK のオープンソースサブセットが含まれています。 完全な Azure SDK のドキュメントについては、 Microsoft Azure .NET デベロッパー センターを参照してください。

Synapse 用のクライアント ライブラリを使用して、次の手順を実行します。

  • Spark Batch ジョブと Spark セッション ジョブを送信する

Azure Synapse は、エンタープライズ データ ウェアハウスとビッグ データ分析がまとめられた無制限の分析サービスです。 サーバーレスのオンデマンド リソースまたはプロビジョニング済みのリソースを使用しながら大規模に、各自の条件で自由にデータを照会することができます。 Azure Synapse では、これら 2 つの環境を 1 つにした統合エクスペリエンスを使用して、データの取り込み、準備、管理、提供を行い、BI と機械学習の差し迫ったニーズに対応できます。

作業の開始

完全な Microsoft Azure SDK は Microsoft Azure ダウンロード ページ からダウンロードでき、デプロイ パッケージの構築、ツールとの統合、豊富なコマンド ライン ツールなどのサポートが付属しています。

最適な開発エクスペリエンスを実現するために、開発者はライブラリ用の公式の Microsoft NuGet パッケージを使用する必要があります。 NuGet パッケージは、新しい機能と修正プログラムで定期的に更新されます。

パッケージをインストールする

NuGet を使用して Azure Synapse Analytics for .NET 用の Spark クライアント ライブラリをインストールします。

dotnet add package Azure.Analytics.Synapse.Spark --version 0.1.0-preview.1

前提条件

  • Azure サブスクリプション:Azure Synapseを含む Azure サービスを使用するには、サブスクリプションが必要です。 既存の Azure アカウントをお持ちでない場合は、無料試用版にサインアップするか、アカウントの作成時Visual Studio サブスクリプション特典を使用できます。
  • 既存のAzure Synapse ワークスペース。 Azure Synapse ワークスペースを作成する必要がある場合は、Azure Portal または Azure CLI を使用できます。

Azure CLI を使用する場合、コマンドは次のようになります。

az synapse workspace create \
    --name <your-workspace-name> \
    --resource-group <your-resource-group-name> \
    --storage-account <your-storage-account-name> \
    --file-system <your-storage-file-system-name> \
    --sql-admin-login-user <your-sql-admin-user-name> \
    --sql-admin-login-password <your-sql-admin-user-password> \
    --location <your-workspace-location>

クライアントを認証する

Azure Synapse Analytics サービスと対話するには、SparkBatchClient クラスまたは SparkSessionClient クラスのインスタンスを作成する必要があります。 ポータルで "開発エンドポイント" と表示される ワークスペース エンドポイントと、クライアント オブジェクトをインスタンス化するための クライアント シークレット資格情報 (クライアント ID、クライアント シークレット、テナント ID) が 必要です。

クライアント シークレット資格情報認証は、この作業の開始セクションで使用されていますが、 Azure ID で認証するその他の方法を見つけることができます。 次に示す DefaultAzureCredential プロバイダー、または Azure SDK で提供されているその他の資格情報プロバイダーを使用するには、Azure.Identity パッケージをインストールする必要があります。

Install-Package Azure.Identity

Microsoft.Azure.Synapse では、Spark バッチ ジョブの CRUD がサポートされています。

Spark Batch ジョブの例

Spark バッチ ジョブを一覧表示する

特定の synapse ワークスペースの特定の Spark プールの下に Spark バッチ ジョブを一覧表示する

Response<SparkBatchJobCollection> jobs = client.GetSparkBatchJobs();
foreach (SparkBatchJob job in jobs.Value.Sessions)
{
    Console.WriteLine(job.Name);
}

Spark バッチ ジョブを作成する

特定のワークスペースと Spark プールの下に Spark バッチ ジョブを作成します。

string name = $"batch-{Guid.NewGuid()}";
string file = string.Format("abfss://{0}@{1}.dfs.core.windows.net/samples/net/wordcount/wordcount.zip", fileSystem, storageAccount);
SparkBatchJobOptions request = new SparkBatchJobOptions(name, file)
{
    ClassName = "WordCount",
    Arguments =
    {
        string.Format("abfss://{0}@{1}.dfs.core.windows.net/samples/net/wordcount/shakespeare.txt", fileSystem, storageAccount),
        string.Format("abfss://{0}@{1}.dfs.core.windows.net/samples/net/wordcount/result/", fileSystem, storageAccount),
    },
    DriverMemory = "28g",
    DriverCores = 4,
    ExecutorMemory = "28g",
    ExecutorCores = 4,
    ExecutorCount = 2
};

SparkBatchOperation createOperation = client.StartCreateSparkBatchJob(request);
while (!createOperation.HasCompleted)
{
    System.Threading.Thread.Sleep(2000);
    createOperation.UpdateStatus();
}
SparkBatchJob jobCreated = createOperation.Value;

Spark バッチ ジョブを取り消す

特定のワークスペースと Spark プールの Spark バッチ ID を使用して Spark バッチ ジョブを取り消します。

Response operation = client.CancelSparkBatchJob(jobCreated.Id);

ビルドするには

Azure Synapse クライアント ライブラリの構築については、「Microsoft Azure SDK for .NETのビルド」を参照してください。

ターゲット フレームワーク

Azure Synapse クライアント ライブラリのターゲット フレームワークについては、Microsoft Azure SDK for .NETのターゲット フレームワークに関するページを参照してください。

主要な概念

Spark ジョブを送信します。

スレッド セーフ

すべてのクライアント インスタンス メソッドがスレッド セーフであり、相互に独立していることを保証します (ガイドライン)。 これにより、スレッド間であっても、クライアント インスタンスの再利用に関する推奨事項が常に安全になります。

その他の概念

クライアント オプション | 応答 | へのアクセス実行時間の長い操作 | エラーの | 処理診断 | あざける | クライアントの有効期間

トラブルシューティング

github で issue を開いてください。

次のステップ

次の手順では、さらに例を追加します

共同作成

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。