はじめに
Fabricで作成したテーブルをDatabricksでもシームレスに参照・編集が可能できるのか?
このような疑問を持つ方も少なくないと思います。
そこで今回は
- Databricksで作成したテーブルをFabricで利用する
というユースケースについて具体的に紹介します。
前提となる設定方法などについては以前の記事をご覧ください。
この記事は4部構成です
- 相互運用性の概要・目的
- hubストレージの具体的な設定方法
- Fabricで作成したテーブルをDatabricksで利用する
- Databricksで作成したテーブルをFabricで利用する(本記事)
Databricksで作成したテーブルをFabricに連携する
Databricksに新規テーブルを作成
Databricksから空の新規外部テーブルを作成
Locationにはhubストレージのフォルダパスを指定します
CREATE TABLE create_from_Databricks_sales
USING DELTA
LOCATION 'abfss://<container_name>@<ADLS2_name>.dfs.core.windows.net/folder_name/create_from_Databricks_sales
[データの取り込み]からcsvをアップロード
[外部のテーブルに上書き]から先ほど作成した空の外部テーブルを選択し、
[テーブルの上書き]をクリック
今回csvは以下のMSドキュメントに記載のあるsales.csvを使用しました
Microsoft Fabric レイクハウスを作成する
作成したテーブルの確認
カタログエクスプローラーから作成した外部テーブルにデータが入っていることが確認できる
hubストレージのextフォルダにcreate_from_Databricks_salesフォルダが作成される
(つまり、新規作成した外部テーブルはhubストレージ上に実態が存在する)
また、この時点でFabricのレイクハウスからもcreate_from_Databricks_salesテーブルが見えるようになる
Databricksで作成したテーブルをFabricで閲覧・分析する(BIの作成)
セマンティックモデルからcreate_from_Databricks_sales(=Databricksで作成した)テーブルを選択し、[確認]をクリック
これで、Databricksで作成したテーブルについてFabricで分析が可能
Databricksで作成したテーブルをFabricで編集(DML)する
FabricのノートブックからUPDATE文(DML文)を実行してみる
UPDATE Fabric_Lakehouse.ext.create_from_Databricks_sales
SET Item = 'No.1 Quantity Water Bottle - 30 oz.'
WHERE Item = 'Water Bottle - 30 oz.'
もちろん、Fabricからは変更が反映されていることが確認できる
Fabricからの編集だったが、Databricks側からも変更の反映を確認できた
よって、Databricks作成したテーブルについてFabricで編集(DML文)が可能
課題や具体的な運用方法について
今回ご紹介した方法は、Fabric・Databricks双方から編集が可能なのは強みでもある一方で、簡単にテーブルが更新できてしまうためそれが弱みとなる可能性もあります。
また、今回はDatabricksの外部テーブルを使用しました。
しかし、現状ではマネージドテーブルのみで予測最適化が採用されており、外部ではなくマネージドテーブルを使うのが理想的です。
以上の課題点について検討し、具体的な運用方法について、今後共有できればと思います。
Databricksにおけるテーブルのクローンもなにかヒントになるのではないかと思っています、、
おわりに
以上より、
「Databricksで作成したテーブルをFabricで利用する」ことができました。
一度hubストレージを設定してやれば、比較的簡単にFabricとDatabricksの相互運用性を実現することができます。
▽前の記事へ