Databricks アセット バンドルで Infrastructure as Code (IaC) の実践

176 Views

October 06, 25

スライド概要

Microsoft Data Analytics Day(Online) 勉強会_20251006発表資料
勉強会: https://sqlserver.connpass.com/event/364307/
Qiita: https://qiita.com/satoshi_enomoto

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

Microsoft Data Analytics Day(Online) 勉強会 Databricks アセット バンドルで Infrastructure as Code (IaC) の実践 発表者:Satoshi Enomoto 2024/10/06

2.

概要 • Databricks アセットバンドル とは? ✓ Databricks のアセットをバンドル(束)にして開発・デプロイ・管理できる仕組み ➢ コード類(ノートブック、Python) ➢ リソース(Lakeflow ジョブ、Lakeflow 宣言パイプライン、モデル サービス エンドポイント、MLflow 実験) ➢ 実行環境(ワークスペース構成、コンピュート構成) ✓ サポートされているリソース 引用元:https://learn.microsoft.com/ja-jp/azure/databricks/dev-tools/bundles/resources#resource-types 2

3.

概要 • Databricks アセットバンドル とは? ✓ バンドルを含む開発および CI/CD のイメージ図 ➢ ローカルの開発環境(Databricks CLI)もしくはワークスペース UI で実行可能 引用元:https://learn.microsoft.com/ja-jp/azure/databricks/dev-tools/bundles/ 3

4.

ワークスペース UI でのデモ • 事前準備:Gitフォルダの作成 引用元:https://learn.microsoft.com/ja-jp/azure/databricks/dev-tools/bundles/workspace#requirements 4

5.

ワークスペース UI でのデモ • 事前準備:設定値のベースとなるパイプラインの作成 パイプラインを作成すると、 設定値をYAMLで取得可能 →バンドルの構成ファイルの ベースとして使用 上記の py ファイルを ソースとしたパイプラインを UI で作成 5

6.

ワークスペース UI でのデモ • バンドル(databricks.yml)の作成 resources マッピング ここではパイプラインを定義 ベースのパイプラインの設定値 を元に、一部を変数化 databricks.yml という名前の構成ファイルが 1 つだけ含まれている必要がある 他の構成ファイルを作成して参照することも 可能 6

7.

ワークスペース UI でのデモ • バンドル(databricks.yml)の作成 bundle マッピング バンドルの論理名を定義 variables マッピング 構成ファイル内で使用できる変数を 定義 7

8.

ワークスペース UI でのデモ • バンドル(databricks.yml)の作成 targets マッピング バンドルをデプロイするワークスペースの設定を 定義 8

9.

ワークスペース UI でのデモ • バンドル(databricks.yml)の作成 targets マッピング バンドルをデプロイするワークスペースの設定を 定義 ※ワークスペース UI でデプロイする場合、 異なるワークスペース間でのデプロイはサポート されないため、ここではカタログ・スキーマのみを 環境ごとに設定 9

10.

ワークスペース UI でのデモ • バンドルのデプロイ 10

11.

ワークスペース UI でのデモ • バンドルのデプロイ ターゲットでデプロイするワークスペースを選択 バンドルリソースにはデプロイされるリソースの 一覧が表示される デプロイをクリックすると、バンドルが検証される 11

12.

ワークスペース UI でのデモ • バンドルのデプロイ 12

13.

ワークスペース UI でのデモ • バンドルのデプロイ 13

14.

ワークスペース UI でのデモ • バンドルのデプロイ 14

15.

ワークスペース UI でのデモ • バンドルのデプロイ ✓ Dev パイプラインの設定値 ✓ Stg パイプラインの設定値 ✓ Prd パイプラインの設定値 15

16.

ワークスペース UI でのデモ • バンドルのデプロイ ✓ files ローカルファイル群(ノートブックやコード)が同期される場所。sync マッピン グで同期対象を制御することが可能。 ✓ artifacts artifacts マッピングで定義したビルド成果物(WHL/JAR 等)。ジョブやパイプ ラインで参照されるファイル群(ライブラリ)が配置される場所。 ✓ state Terraform の状態(=前回デプロイの実体を追跡)を保存。差分デプロイや destroy の正確な後始末に必要となる。 16

17.

Databricks アセットバンドルのメリット・デメリット • メリット ✓ 再現性 YAMLに「ありたい姿」を定義して、差分を適用でき、環境ごとの差異もtargetsで管理可能。 ✓ 一括デプロイ パイプライン、ジョブ、権限、レポート等をまとめてプロビジョニング。人手作業のばらつきを排除。 ✓ パラメータのテンプレート化 variablesやincludesでカタログ/スキーマ/接続先/権限などを切り替え可能。マルチワークスペース運用に強い。 ✓ CI/CD との相性 GitHub Actions や Azure DevOps と接続して、テスト・デプロイの自動化が可能。 • デメリット ✓ 学習コスト databricks.yml の構造や作法の理解が大変。慣れていないと、ローカル環境(vs code 等)の準備が難しい。 ✓ 手動編集との競合 バンドル管理下のリソースを手動で編集してしまうと、バンドルの定義との不整合が発生する(手動編集の内容は反映されない)。 17

18.

ご清聴ありがとうございました!