Lakehouse Federation は、Databricks が提供する 外部データソースの統合アクセス機能 で、
Databricks の SQL や Delta Lake のテーブルと同じ感覚で 外部データベースやクラウドストレージのデータをクエリできる仕組みです。
1. 目的
- データを コピーせず に Databricks から直接利用する
- 複数のデータソースを統合 して分析・可視化
- データレイク・データウェアハウス・オペレーショナルDBなどを単一のクエリで横断
2. 仕組み
Lakehouse Federation では、Databricks 内に「外部ソースへの接続設定(External Connection)」を作成し、
外部テーブルを Databricks の Unity Catalog にマッピング します。
イメージ図:
+------------------+ +------------------+
| Databricks SQL | ---> | External Source |
| Notebook / BI | | (MySQL, Snowflake|
| Dashboard | | Postgres, etc.) |
+------------------+ +------------------+
3. 対応する外部ソース(一例)
- RDBMS: PostgreSQL, MySQL, SQL Server, Oracle
- クラウドDWH: Snowflake, Amazon Redshift, Google BigQuery
- その他: Azure Data Explorer, SAP, など(ODBC/JDBC経由)
4. 基本操作例
外部接続の作成
CREATE CONNECTION my_pg_connection
USING postgresql
OPTIONS (
host 'mydb.example.com',
port '5432',
user 'db_user',
password '****',
database 'sales'
);
外部スキーマの作成
CREATE EXTERNAL SCHEMA pg_sales
FROM CONNECTION my_pg_connection
WITH DATABASE 'sales';
外部テーブルのクエリ
SELECT customer_id, total_amount
FROM pg_sales.orders
WHERE order_date >= '2024-01-01';
💡 この時点で、外部テーブルはあたかも Databricks のテーブルのように扱えます。
5. メリット
- ETL不要:データを移動せずにそのまま分析
- 統合クエリ:外部データとDeltaテーブルをJOIN可能
- セキュリティ:Unity Catalog の権限管理を外部データにも適用
- リアルタイム性:最新データを即時参照
6. 制限と注意点
- ネットワーク接続要件(VPCピアリングやPrivate Link設定)が必要な場合あり
- 外部DBのパフォーマンスがクエリ全体のボトルネックになり得る
- 外部ソースの更新はサポート対象外(基本は読み取り専用)
実務的には、Lakehouse Federation は「一時的なデータ連携」や「参照だけしたいデータの分析」に強いですが、
ETLや本格的な機械学習用データは Delta Lake に取り込む方が高速で安定します。