LoginSignup
1
1

More than 1 year has passed since last update.

Azure Data Factory から Synapse Spark Notebook 実行する機能を試す

Last updated at Posted at 2023-01-27

はじめに

Orchestrate and operationalize Synapse Notebooks and Spark Job Definitions from Azure Data Factory

ということでData Factory から Synapse Spark Notebook の実行ができるようになったそうなので試してみます。
これができると、Data Factory を起点にSynapse 上のSpark処理も回せます。これまでは、Data Factory からSynapse PipelineをAPIでトリガーする必要がありました。

準備

synapse側の準備をしておきます。

サーバーレス Apache Spark プールを作成する を参考にSpark Poolを作成しておきます。

2023-01-27-08-30-25.png

notebookを作成します。どんな内容でもいいですが、今回はナレッジセンターから Azure Open Datasets を利用するサンプルを使います。

2023-01-27-08-26-43.png

2023-01-27-08-27-41.png

2023-01-27-08-27-55.png

2023-01-27-08-28-08.png

2023-01-27-08-28-46.png

今回は Data Factory からnotebookを実行するわけですが、その際にdata lakeへの読み書きはData Factory の権限で実行されます。
必要に応じて、利用するストレージにData Factory に ストレージ Blob データ共同作成者などの権限を振ります。

2023-01-27-09-28-03.png

Synapse Workspace の権限で実行したい場合はマネージドIDを利用したSpark Session 構成をするのですが、ADF からの実行ではうまくいきませんでした。

2023-01-27-09-19-41.png

手順

Data Factory からの接続の構成

冒頭のURLの手順に従います。

1.Synapse Studio 上で Data Factory を Synapse コンピューティングオペレーター、および、成果物ユーザーロールに追加します。

2023-01-27-09-04-59.png

2.Data Factory Studio上でリンクサービスを作成します。

リンクサービスのタブをコンピューティングに変更すると Azure Synapse Analytics が表示されます。

2023-01-27-08-31-42.png

ワークスペースを選択して作成します。

2023-01-27-08-34-48.png

作成完了したら発行しておきます。

2023-01-27-08-35-38.png

Synapse Workspace が パブリックの場合(Azure サービスを許可する状態も含む)

このように、 Synapse Workspace にファイアウォールがかかっていないような状況でのテストからはじめてみます。

2023-01-27-09-12-52.png

1.パイプラインを構成します。

ノートブックアクティビティを配置します。

2023-01-27-08-36-03.png

配置後、対象ノートブックのあるワークスペースを設定し、

2023-01-27-08-36-35.png

現時点だと一覧がうまく読み込めませんでしたが、動的なコンテンツの追加から直接入力することにします

2023-01-27-08-57-59.png

ノートブック名を入力し、あとは省略してしまいます。ちなみに開くをクリックすると Synapse Studio 別タブで開きました

2023-01-27-08-59-19.png

2.実行確認します。

デバッグ実行してみます。Spark Pool の起動に数分かかるはずです。

2023-01-27-09-56-54.png

Synapse Studio からはApache Spark アプリケーションの実行が確認できます。

2023-01-27-09-57-36.png

成功しました。

2023-01-27-10-10-40.png

Synapse Workspace が ファイアウォール設定済

ここから少し実践的に Synapse Workspace にファイアウォール設定をします。私のクライアントIPからしか接続できなくしました。

2023-01-27-09-58-39.png

そのまま実行するとエラーになります。Data Factory が接続に利用するAzure統合ランタイムはIPが特定できないためです。

2023-01-27-10-04-35.png

結論から言うと、現時点では、セルフホステッド統合ランタイムおよびManaged Vnetの利用はできませんでした。

セルフホステッド統合ランタイムはリンクサービス内で候補になりません。

2023-01-27-10-38-36.png

後者のManaged Vnet の利用を試してみます。

1.Managed Vnet Azure IRを構成する

Data Factory 上で 新しい統合ランタイムをセットアップします。

2023-01-27-10-00-04.png

Azureを選択

2023-01-27-10-00-19.png

仮想ネットワークを有効化

2023-01-27-10-00-37.png

作成

2023-01-27-10-00-54.png

2.マネージドプライベートエンドポイントを作成します。

2023-01-27-10-01-49.png

Synapse Analytics を選択後、サブリソースをdevで作成します。

2023-01-27-10-02-33.png

Azure Portal 上で Synapse Workspace からプライベートエンドポイント接続セクションにて承認します。

2023-01-27-10-03-30.png

コメントはなんでもよし

2023-01-27-10-03-46.png

Data Factory 上からも承認状態の更新が確認できるまで待ちます。

2023-01-27-10-09-54.png

3.Data Factoryのリンクサービスで統合ランタイムを先ほど作成したものに変更します。

2023-01-27-10-05-49.png

4.実行します。

が、失敗します。

2023-01-27-10-20-09.png

現時点では Azure Synapse Analytics (Artifacts)のリンクサービスはManaged Private Endpointに対応していないようでした。(対応していれば、マネージドプライベートエンドポイントの情報が出ます。)

2023-01-27-10-19-36.png

所感

プライベートな Synapse Workspace への対応がまだっぽいじょうたいであることがちょっと扱いづらいので今後の更新に期待するやつですね。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1