はじめに
Fabricで作成したテーブルをDatabricksでもシームレスに参照・編集が可能できるのか?
このような疑問を持つ方も少なくないと思います。
そこで今回は
- Fabric で作成したテーブルをDatabricksで利用する
というユースケースについて具体的に紹介します。
前提となる設定方法などについては以前の記事をご覧ください。
この記事は4部構成です
- 相互運用性の概要・目的
- hubストレージの具体的な設定方法
- Fabricで作成したテーブルをDatabricksで利用する(本記事)
- Databricksで作成したテーブルをFabricで利用する
Fabric で作成したテーブルをDatabricksに連携する
Fabricに新規テーブルを作成
今回csvは以下のMSドキュメントに記載のあるsales.csvを使用しました
Microsoft Fabric レイクハウスを作成する
csvファイルから[テーブルに読み込む]>[新しいテーブル]
スキーマにはショートカットを作成したhubストレージのextを指定
作成したテーブルの確認
レイクハウスに新規テーブルが作成されていることが確認できる
hubストレージのextフォルダにcreate_from_fabric_salesフォルダが作成される
(つまり、新規作成したテーブルはhubストレージ上に実態が存在する)
Delta形式になっていることも確認できる
一方で、当たり前だが、現時点ではDatabricks上に作成したテーブルを確認することはできない
DatabricksからFabricで作成したテーブルを操作できるようにする
DatabricksのSQLエディタを用いて外部テーブルを作成。Locationにhubストレージフォルダパス(Fabricで作成したテーブルのフォルダ)を指定する
CREATE TABLE <table_name>
USING DELTA
LOCATION 'abfss://<container_name>@<ADLS2_name>.dfs.core.windows.net/folder_name/<table_folder_name>'
すると[カタログ]からFabricで作成したテーブルを閲覧することができる
Fabric で作成したテーブルをDatabricksで閲覧・分析する(BIの作成)
Databricksの[ダッシュボード]から新しく、ダッシュボードを作成し、
[データ]>[テーブルを選択]から外部テーブルを選択できる(=Fabricで作成したテーブル)
よって、Fabricで作成したテーブルについてDatabricksで分析が可能
Fabric で作成したテーブルをDatabricksで編集(DML)する
DatabricksのSQLエディタからUPDATE文(DML文)を実行してみる
UPDATE create_from_fabric_sales
SET Item = 'No.1 Item'
WHERE Item = 'Road-150 Red, 48'
もちろん、Databricks側では変更が反映されていることが確認できる
Databrickからの編集だったが、Fabric側から変更の反映を確認できた
SELECT Item, SUM(Quantity * UnitPrice) AS Revenue
FROM Fabric_Lakehouse.ext.create_from_fabric_sales
GROUP BY Item
ORDER BY Revenue DESC;
よって、Fabric作成したテーブルについてDatabricksで編集(DML文)が可能
おわりに
以上より、
「Fabric で作成したテーブルをDatabricksで利用する」ことができました。
一度hubストレージを設定してやれば、比較的簡単にFabricとDatabricksの相互運用性を実現することができます。
次回は今回の逆
「Databricksで作成したテーブルをFabricで利用する」デモについて紹介いたします。
▽次の記事へ
▽前の記事へ