こちらのアップデートです。
Delta Sharingを用いたすべての受信者へのストリーミングテーブルとマテリアライズドビューの共有(パブリックプレビュー)
すべての受信者にストリーミングテーブルとマテリアライズドビューを共有するためにDelta Sharingを使えるようになりました。Delta Sharingの共有の作成と管理と共有ストリーミングテーブルとマテリアライズドビューの読み込みをご覧ください。
これまでは、Delta Sharingでマテリアライズドビューを共有できなかったので、一度テーブルに永続化する必要がありました。今回のアップデートでDLTなどで生成されるマテリアライズドビューを直接Delta Sharingで共有できるようになりました。
実際に試してみます。
プロバイダー側でのマテリアライズドビューの作成
以下のようなシンプルなCSVファイルを準備します。
id,name,grade,country
1,taka,55,JPN
これを取り込むDLTパイプラインを作成します。
CREATE OR REFRESH STREAMING TABLE input_data
AS SELECT * FROM STREAM read_files(
"/Volumes/takaakiyayoi_catalog/dlt/data",
format => "csv")
CREATE MATERIALIZED VIEW summary AS
SELECT
count(*) as user_total,
avg(grade) as grade_average,
country
FROM input_data GROUP BY country
Delta Sharingによるマテリアライズドビューの共有
Databricks間(Databricks-to-Databricks)共有を行います。共有先のDatabricksワークスペースから共有識別子を入手して受信者を作成します。
共有を作成して受信者を追加します。
アセットとしてマテリアライズドビューを選択します。ここでは、summary
というマテリアライズドビューを選択します。
受信者側でのカタログの設定
受信者側のDatabricksワークスペースで共有が表示されるようになるので、こちらからカタログを作成します。
これで、共有されたカタログとその配下のマテリアライズドビューにアクセスできるようになりました。
どのような使い方ができるのか?
プロバイダーによって共有されているマテリアライズドビューを直接参照できるので、これまで以上に簡単に最新のデータを参照できるようになります。ここでは、ダッシュボードとDatabricksジョブを用いたデモを行ってみます。
ダッシュボードの作成
上のマテリアライズドビューsummary
を使って、受信者側で以下のようなダッシュボードを作成します。
Databricksジョブの設定
プロバイダー側では、ファイル到着トリガーを用いたパイプラインジョブを設定します。これによって、ボリュームにファイルが追加された際に自動でDLTパイプラインを実行し、共有されているマテリアライズドビューが更新されるようになります。
動作確認
ボリュームにファイルを追加していきます。
id,name,grade,country
2,polka,80,IND
3,yuki,75,USA
id,name,grade,country
2,polka,80,IND
3,yuki,75,USA
ファイルが追加されると、自動でジョブが起動してマテリアライズドビューが更新されます。
受信者側のダッシュボードもそれに合わせて更新されます。
ご活用ください!