244 Views
November 05, 25
スライド概要
Microsoft Data Analytics Day(Online) 勉強会_20251105発表資料
勉強会: https://sqlserver.connpass.com/event/370892/
Qiita: https://qiita.com/satoshi_enomoto
株式会社ジール所属
Microsoft Data Analytics Day(Online) 勉強会 Databricks の互換モード (compatibility mode) で広がるオープンデータ基盤の可能性 発表者:Satoshi Enomoto 2025/11/05
目次 • 互換モードの概要 • 互換モードのデモ • 互換モードの制限事項 • Microsoft Fabric におけるスキーマ ショートカットとの比較 • Microsoft Fabric における Unity カタログ ミラーリングとの比較 • Iceberg 読み取り有効化(UniForm)との比較 • マネージド Iceberg テーブルとの比較 2
互換モードの概要 • Databricks で最適なパフォーマンスを維持しながら、Unity カタログのマネージド テーブル、マテリアライ ズド ビュー、およびストリーミング テーブルを外部システムから読み取ることができる • Delta Lake または Iceberg クライアントからアクセスできる、テーブルの読み取り専用バージョンが自動 的に生成される • 2025/11 時点ではパブリック プレビュー機能 引用元:互換モード - Azure Databricks | Microsoft Learn 3
互換モードのデモ:事前準備 • 互換性バージョンのデータとメタデータを保存するためのストレージ(ADLS)を外部ロケーションとして登 録 • ターゲットの場所は空にしておく(他のファイルは置かない) 引用元:互換モード - Azure Databricks | Microsoft Learn 4
互換モードのデモ:マネージド テーブルの作成 • table_01 を作成する 5
互換モードのデモ:互換モードの有効化 • 以下のようにテーブル プロパティを設定する ✓ delta.universalFormat.compatibility.location で指定する場所は、外部ロケーションとして設定している ストレージ(ADLS) 6
互換モードのデモ:互換モードが有効になっているかどうかを確認 • delta.universalFormat.compatibility.targetRefreshInterval(= 更新間隔)の既定値は 1時間となっている • 手動で更新も可能 7
互換モードのデモ:互換性バージョンのデータとメタデータの確認 • 上図:元の delta テーブル • 下図:互換性バージョンのデータとメタデータ データの圧縮形式が 変わっている Iceberg のメタデータが 作成されている 8
互換モードのデモ:外部クライアントから互換性バージョンを読み取る • Microsoft Fabric のレイクハウスに互換モードのデータが格納されている ADLS のショートカットを作成 Tables のショートカットを 作成するとエラーになる 9
互換モードのデモ:外部クライアントから互換性バージョンを読み取る • Microsoft Fabric から読み取りができることを確認 10
互換モードの制限事項 • 以下の制限事項がある 引用元:互換モード - Azure Databricks | Microsoft Learn 11
互換モードの制限事項 • タイム トラベルは使えそう? Microsoft Fabric で互換モードの過去バージョンを読み取り 12
互換モードの制限事項 • 特殊文字(列マッピング)は互換モードだと変換される Databricks でテーブル作成後、互換モードを有効化 Microsoft Fabric で互換モードを読み取り 13
Microsoft Fabric におけるスキーマ ショートカットとの比較 • Microsoft Fabric のスキーマ ショートカット(Hub ストレージ構成)の概要については以下の記事を ご参照ください ✓ 【総集編】Microsoft Fabric と Databricksをつなぐデータ総合運用術 -hubストレージにDelta Lake形 式で保管する- #MicrosoftFabric - Qiita 14
Microsoft Fabric におけるスキーマ ショートカットとの比較 • Databricks で Variant 型の列を持つテーブルを作成して、互換モードを有効化 半構造化データを 保持することが可能 15
Microsoft Fabric におけるスキーマ ショートカットとの比較 • 元テーブルが保存されている ADLS のフォルダをスキーマ ショートカットに設定 Databricks 元テーブルの 設定内容 Microsoft Fabric でショートカット 作成 16
Microsoft Fabric におけるスキーマ ショートカットとの比較 • スキーマ ショートカットの場合、読み取りがエラーとなるが、互換モードの場合、正常に読み取りが可能 = 互換モードは後方互換性が保証されると考えられる スキーマショートカットの読み取りは Variant 型をサポートしていないエラーが発生 互換モードの読み取りは成功(ただし文字列となっている) 17
Microsoft Fabric における Unity カタログ ミラーリングとの比較 • Microsoft Fabric の Unity カタログ ミラーリング の概要については以下の記事をご参照ください ✓ 【総集編】Microsoft Fabric と Databricksをつなぐデータ総合運用術 -hubストレージにDelta Lake形 式で保管する- #MicrosoftFabric - Qiita 18
Microsoft Fabric における Unity カタログ ミラーリングとの比較 • Unity Catalog ミラーリングの制限事項として、ストリーミング テーブルおよびマテリアライズド ビューはサ ポートされていない = Databricks の Lakeflow 宣言型パイプラインで作成されたデータを Fabric から利用できない 引用元:Azure Databricks からの Microsoft Fabric ミラー化データベースの制限事項 - Microsoft Fabric | Microsoft Learn 19
Microsoft Fabric における Unity カタログ ミラーリングとの比較 • Unity Catalog ミラーリングの制限事項として、ストリーミング テーブルおよびマテリアライズド ビューはサ ポートされていない = Databricks の Lakeflow 宣言型パイプラインで作成されたデータを Fabric から利用できない Databricks のカタログ(左図)に存在しているが、Microsoft Fabric のミラーリング(右図)には表示されない 20
Microsoft Fabric における Unity カタログ ミラーリングとの比較 • 互換モードではストリーミング テーブルおよびマテリアライズド ビューをサポートしているため、 Microsoft Fabric から利用することが可能 Microsoft Fabric にて互換モードを読み取り可能 21
Iceberg 読み取り有効化(UniForm)との比較 • Iceberg 読み取りを有効化すると、 Iceberg クライアントが Databricks によって書き込まれた Delta テーブルを読み取れるようになる 引用元:Iceberg クライアントを使用して Delta テーブルを読み取る - Azure Databricks | Microsoft Learn 22
Iceberg 読み取り有効化(UniForm)との比較 • 以下のようにIceberg 読み取りを有効化 削除ベクトルを無効にして 消去する必要あり 列マッピングが有効に なっている必要あり 23
Iceberg 読み取り有効化(UniForm)との比較 • データは Zstandard 圧縮 Parquet ファイルとなっている • ディレクトリ構造から Iceberg メタデータを確認することができる 有効化前は delta log のみ 有効化後は metadata が作成されている 24
Iceberg 読み取り有効化(UniForm)との比較 • 互換モードと比較したとき、 ✓ Iceberg の metadata が元テーブルと同じディレクトリに作成される ✓ マテリアライズド ビューまたはストリーミング テーブルはサポートされていない 引用元:Iceberg クライアントを使用して Delta テーブルを読み取る - Azure Databricks | Microsoft Learn 25
マネージド Iceberg テーブルとの比較 • Databricks では Parquet ファイル形式を使用する Iceberg テーブルがサポートされている • USING ICEBERG で作成が可能 引用元:Azure Databricks の Apache Iceberg とは - Azure Databricks | Microsoft Learn 26
マネージド Iceberg テーブルとの比較 • ディレクトリ構造を確認すると、 _iceberg フォルダと _delta_log フォルダが作成されている = Iceberg テーブルでも DESC HISTORY など Delta Lake のメタデータ操作が可能 • データは Zstandard 圧縮 Parquet ファイルとなっている 27
各機能の特徴まとめ 機能名 外部クライアントからの操作 互換モード ・読み込み専用 ・後方互換性が保証される可能性あり ・ストリーミング テーブル/マテリアライズド ビュー対応 ・更新間隔あり(ただしストリーミングテーブル/マテビューの更新間隔は0が既定) Microsoft Fabric スキーマショート カット(Hub ストレージ構成) ・読み込み/書き込み可能 ・後方互換性が保証されない ・リアルタイムに更新 Microsoft Fabric の Unity カタロ グ ミラーリング ・読み取り専用 ・ストリーミング テーブル/マテリアライズド ビュー未対応 Iceberg 読み取り有効化 (UniForm) ・読み取り専用 ・ストリーミング テーブル/マテリアライズド ビュー未対応 ・metadata が元テーブルと同じディレクトリに作成される マネージド Iceberg テーブル ・読み込み/読み取り専用 ・metadata が元テーブルと同じディレクトリに作成される 28
ご清聴ありがとうございました!