0
0

More than 1 year has passed since last update.

Databricks JobsからDelta Live Tablesパイプラインを呼び出す

Last updated at Posted at 2022-02-19

Delta Live Tables(DLT)を用いることで、複雑なデータパイプラインであっても簡単かつ、信頼性高く構築、運用が行えるようになります。

DLT単体でもパイプラインを実行できますが、これとDatabricks Jobsとを組み合わせると、さらに複雑な処理を自動化することができます。

本書では、Databricks JobsからどのようにDLTを呼び出すのか、また、その際の注意点を説明します。

Delta Live Tablesでパイプラインを定義する

プレビュー
この機能はパブリックプレビューです。アクセスする際にはDatabricks担当者にお問い合わせください。

JSONを読み込むシンプルなパイプラインを定義します。

Python
import dlt
from pyspark.sql.functions import *
from pyspark.sql.types import *

json_path = "/databricks-datasets/wikipedia-datasets/data-001/clickstream/raw-uncompressed-json/2015_2_clickstream.json"

@dlt.table(
  comment="Jobsテスト用DLT"
)
def bronze():
  return (spark.read.json(json_path))

サイドバーからJobs > Delta Live Tablesにアクセスし、Create Pipelineをクリックします。上記パイプラインを定義したノートブックを選択し、パイプラインの名前をつけてCreateをクリックしてパイプラインを作成します。
Screen Shot 2022-02-19 at 9.49.51.png

パイプラインの詳細画面が表示されます。ジョブから呼び出すので、ここでパイプラインの実行はしません。ただ、一点注意が必要です。画面右上にあるDevelopment/Productionでパイプラインのモードを指定できるのですが、ジョブから実行する際にはProductionモードにすることを忘れないでください。ジョブからDLTパイプラインを呼び出した際、このモードによってDLTクラスターの挙動が変わります。

  • Developmentモード: ジョブ終了後、2時間クラスターが稼働し続けます。
  • Productionモード: ジョブ終了後、即座に(約5分後)クラスターが終了します。

Developmentモードは名前の通り、パイプライン開発時に選択するモードで試行錯誤、デバッグを行うため、パイプラインの処理が終了しても即座にDLTクラスターは停止しません。
Screen Shot 2022-02-19 at 9.56.30.png

ジョブからパイプラインを実行する

  1. サイドバーからJobsにアクセスします。
  2. Create Jobをクリックします。
  3. ジョブは複数のタスクから構成することができます。ここでは1つのみのタスクを作成します。タスクのTypeではDelta Live Tables pipelineを選択し、Pipelineでは上で作成したDLTパイプラインを選択します。 Screen Shot 2022-02-19 at 9.57.31.png
  4. これでDLTパイプラインを呼び出すジョブを定義することができました。 Screen Shot 2022-02-19 at 9.57.43.png
  5. 右上のRun nowで即時実行することもできますし、右側のScheduleを指定してスケジュール実行することもできます。

なお、ジョブの実行中にDLTのパイプラインにアクセスすると、処理状況をリアルタイムで確認できます。
Screen Shot 2022-02-19 at 10.03.20.png

Databricks 無料トライアル

Databricks 無料トライアル

0
0
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
0
0