2
1

Delta Live Tablesノートブックにおける開発体験の改善

Posted at

こちらのアップデートです。

Delta Live Tables notebook developer experience improvements (Public Preview)

Delta Live Tablesコードの開発とデバッグをアシストするDatabricksノートブックの一連のパブリックプレビュー機能をリリースしました。Delta Live Tables開発のためのプログラマティック エクスペリエンス (パブリック プレビュー)をご覧ください。

ということで、ウォークスルーします。

プレビュー
本機能はパブリックプレビューです。

Delta Live Tablesノートブックの作成

まず、パイプラインのロジックを記述するノートブックを作成します。今回はSQLで作成します。

CREATE OR REFRESH LIVE TABLE covid_sql_raw
COMMENT "日本のCOVID感染者数データ"
AS SELECT * FROM read_files(
  '/Volumes/takaakiyayoi_catalog/japan_covid_analysis/covid_data/newly_confirmed_cases_daily.csv',
  format => 'csv',
  header => true,
  mode => 'FAILFAST')

Delta Live Tablesパイプラインの作成

サイドメニューのDelta Live Tablesにアクセスして、パイプラインを作成します。上のノートブックを指定し、データを公開するUnity Catalogのカタログ、スキーマを指定します。
Screenshot 2024-04-06 at 7.08.23.png
Screenshot 2024-04-06 at 7.08.30.png
Screenshot 2024-04-06 at 7.08.39.png

Databricksノートブックからのデバッグ

これでノートブックがパイプラインに登録されたので、ソースコードのリンクをクリックしてノートブックに戻ります。

右上にダイアログが表示されるので、接続をクリックします。これで各種機能を利用できるようになります。
Screenshot 2024-04-06 at 7.09.17.png

検証ボタンを押すことで、パイプラインのロジックを検証します。
Screenshot 2024-04-06 at 7.09.37.png

検証は問題ありませんでした。
Screenshot 2024-04-06 at 7.15.18.png

Databricksノートブックからのパイプライン実行

これは嬉しい。これまではノートブックで開発、DLTパイプラインから実行という形で行ったり来たりがありましたが、ノートブックからクイックにパイプラインを実行できます。右上の起動をクリックするとパイプラインが実行されます。
Screenshot 2024-04-06 at 7.16.11.png

テーブルも作成されています。
Screenshot 2024-04-06 at 7.16.29.png

このようにして、徐々にロジックを拡張していきます。次はUNPIVOTします。というか、いつの間にかアンピボット(melt)もSQLでサポートされてました。

CREATE
OR REFRESH LIVE TABLE covid_sql_unpivoted COMMENT "都道府県別COVID感染者数の時系列データ" AS
SELECT
  *
FROM
  live.covid_sql_raw UNPIVOT INCLUDE NULLS (
    cases FOR prefecture IN (
      ALL,
      Hokkaido,
      Aomori,
      Iwate,
      Miyagi,
      Akita,
      Yamagata,
      Fukushima,
      Ibaraki,
      Tochigi,
      Gunma,
      Saitama,
      Chiba,
      Tokyo,
      Kanagawa,
      Niigata,
      Toyama,
      Ishikawa,
      Fukui,
      Yamanashi,
      Nagano,
      Gifu,
      Shizuoka,
      Aichi,
      Mie,
      Shiga,
      Kyoto,
      Osaka,
      Hyogo,
      Nara,
      Wakayama,
      Tottori,
      Shimane,
      Okayama,
      Hiroshima,
      Yamaguchi,
      Tokushima,
      Kagawa,
      Ehime,
      Kochi,
      Fukuoka,
      Saga,
      Nagasaki,
      Kumamoto,
      Oita,
      Miyazaki,
      Kagoshima,
      Okinawa
    )
  )

効率よくステップバイステップでロジックを構築していくことができます。
Screenshot 2024-04-06 at 7.28.18.png

最後に集計ロジックを追加します。

CREATE
OR REFRESH LIVE TABLE covid_sql_aggregated COMMENT "都道府県別COVID感染者集計データ" AS
SELECT
  prefecture,
  SUM(cases) as cases_total
FROM
  live.covid_sql_unpivoted
WHERE
  prefecture != "ALL"
GROUP BY
  prefecture
ORDER BY
  cases_total DESC

Screenshot 2024-04-06 at 7.42.54.png

最終テーブルはこのようになりました。
Screenshot 2024-04-06 at 7.43.14.png

パイプライン開発で是非ご活用ください!

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

2
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
2
1