176 Views
October 06, 25
スライド概要
Microsoft Data Analytics Day(Online) 勉強会_20251006発表資料
勉強会: https://sqlserver.connpass.com/event/364307/
Qiita: https://qiita.com/satoshi_enomoto
株式会社ジール所属
Microsoft Data Analytics Day(Online) 勉強会 Databricks アセット バンドルで Infrastructure as Code (IaC) の実践 発表者:Satoshi Enomoto 2024/10/06
概要 • Databricks アセットバンドル とは? ✓ Databricks のアセットをバンドル(束)にして開発・デプロイ・管理できる仕組み ➢ コード類(ノートブック、Python) ➢ リソース(Lakeflow ジョブ、Lakeflow 宣言パイプライン、モデル サービス エンドポイント、MLflow 実験) ➢ 実行環境(ワークスペース構成、コンピュート構成) ✓ サポートされているリソース 引用元:https://learn.microsoft.com/ja-jp/azure/databricks/dev-tools/bundles/resources#resource-types 2
概要 • Databricks アセットバンドル とは? ✓ バンドルを含む開発および CI/CD のイメージ図 ➢ ローカルの開発環境(Databricks CLI)もしくはワークスペース UI で実行可能 引用元:https://learn.microsoft.com/ja-jp/azure/databricks/dev-tools/bundles/ 3
ワークスペース UI でのデモ • 事前準備:Gitフォルダの作成 引用元:https://learn.microsoft.com/ja-jp/azure/databricks/dev-tools/bundles/workspace#requirements 4
ワークスペース UI でのデモ • 事前準備:設定値のベースとなるパイプラインの作成 パイプラインを作成すると、 設定値をYAMLで取得可能 →バンドルの構成ファイルの ベースとして使用 上記の py ファイルを ソースとしたパイプラインを UI で作成 5
ワークスペース UI でのデモ • バンドル(databricks.yml)の作成 resources マッピング ここではパイプラインを定義 ベースのパイプラインの設定値 を元に、一部を変数化 databricks.yml という名前の構成ファイルが 1 つだけ含まれている必要がある 他の構成ファイルを作成して参照することも 可能 6
ワークスペース UI でのデモ • バンドル(databricks.yml)の作成 bundle マッピング バンドルの論理名を定義 variables マッピング 構成ファイル内で使用できる変数を 定義 7
ワークスペース UI でのデモ • バンドル(databricks.yml)の作成 targets マッピング バンドルをデプロイするワークスペースの設定を 定義 8
ワークスペース UI でのデモ • バンドル(databricks.yml)の作成 targets マッピング バンドルをデプロイするワークスペースの設定を 定義 ※ワークスペース UI でデプロイする場合、 異なるワークスペース間でのデプロイはサポート されないため、ここではカタログ・スキーマのみを 環境ごとに設定 9
ワークスペース UI でのデモ • バンドルのデプロイ 10
ワークスペース UI でのデモ • バンドルのデプロイ ターゲットでデプロイするワークスペースを選択 バンドルリソースにはデプロイされるリソースの 一覧が表示される デプロイをクリックすると、バンドルが検証される 11
ワークスペース UI でのデモ • バンドルのデプロイ 12
ワークスペース UI でのデモ • バンドルのデプロイ 13
ワークスペース UI でのデモ • バンドルのデプロイ 14
ワークスペース UI でのデモ • バンドルのデプロイ ✓ Dev パイプラインの設定値 ✓ Stg パイプラインの設定値 ✓ Prd パイプラインの設定値 15
ワークスペース UI でのデモ • バンドルのデプロイ ✓ files ローカルファイル群(ノートブックやコード)が同期される場所。sync マッピン グで同期対象を制御することが可能。 ✓ artifacts artifacts マッピングで定義したビルド成果物(WHL/JAR 等)。ジョブやパイプ ラインで参照されるファイル群(ライブラリ)が配置される場所。 ✓ state Terraform の状態(=前回デプロイの実体を追跡)を保存。差分デプロイや destroy の正確な後始末に必要となる。 16
Databricks アセットバンドルのメリット・デメリット • メリット ✓ 再現性 YAMLに「ありたい姿」を定義して、差分を適用でき、環境ごとの差異もtargetsで管理可能。 ✓ 一括デプロイ パイプライン、ジョブ、権限、レポート等をまとめてプロビジョニング。人手作業のばらつきを排除。 ✓ パラメータのテンプレート化 variablesやincludesでカタログ/スキーマ/接続先/権限などを切り替え可能。マルチワークスペース運用に強い。 ✓ CI/CD との相性 GitHub Actions や Azure DevOps と接続して、テスト・デプロイの自動化が可能。 • デメリット ✓ 学習コスト databricks.yml の構造や作法の理解が大変。慣れていないと、ローカル環境(vs code 等)の準備が難しい。 ✓ 手動編集との競合 バンドル管理下のリソースを手動で編集してしまうと、バンドルの定義との不整合が発生する(手動編集の内容は反映されない)。 17
ご清聴ありがとうございました!