Azure Databricks 提供多種選項,讓你查詢並存取外部資料庫與目錄中的資料,無需遷移資料。 根據您的存取模式、治理需求、寫入需求及計算偏好來選擇方法。
選擇一種方法
下表比較查詢聯盟與目錄聯盟,幫助您選擇合適的方法。
| Approach | Description | 查詢執行 | 寫入支援 | Governance | 最適合用於 |
|---|---|---|---|---|---|
| 查詢同盟 | 使用 JDBC 對外部關聯式資料庫執行聯邦查詢,並透過外部目錄實現自動查詢下推和 Unity Catalog 治理。 | 透過 JDBC 下推至外部資料庫。 查詢同時執行於 Azure Databricks 與遠端運算系統。 | 不支援(唯讀)。 | Unity Catalog 外來目錄,具備表格層級存取控制。 | 臨機報表、BI,以及為概念驗證而存取營運資料庫。 |
| 目錄同盟 | 連接外部目錄平台(例如 Hive Metastore、AWS Glue 或 Snowflake),這樣你可以直接在物件儲存中查詢他們的資料。 | 它僅直接在 Azure Databricks 的物件儲存運算中執行。 比查詢聯邦更具成本效益,且效能更佳。 | 不支援(唯讀)。 | Unity Catalog 外來目錄,具備表格層級存取控制。 | 是逐步遷移到 Unity Catalog,還是維持長期混合模式,資料存放在外部目錄中。 |
Lakehouse 同盟
Lakehouse Federation 是 Azure Databricks 查詢聯盟平台。 它透過 Unity Catalog 的外部目錄提供受控且唯讀的外部資料存取,並具備自動查詢推送及表格層級的細緻存取控制。
湖屋聯盟有兩種類型:查詢聯盟與目錄聯盟。
查詢聯邦與目錄聯邦的比較
下表說明查詢聯盟與目錄聯盟的主要差異。
| Approach | 查詢路徑 | 用例 | 步驟概觀 |
|---|---|---|---|
| 查詢同盟 | Unity 目錄查詢會使用 JDBC 向下推送至外部資料庫。 查詢同時在 Azure Databricks 與遠端運算中執行。 |
當您的來源同時支援 Lakehouse Federation 和 Lakeflow Connect,Azure Databricks 會建議在優先考量較大的資料量和較低延遲時使用 Lakeflow Connect。 |
|
| 目錄同盟 | Unity 目錄查詢會直接存取物件記憶體中的外部數據表。 目錄同盟適用於支援直接存取其目錄和記憶體服務的平臺。 查詢僅在 Azure Databricks 運算上執行,意味著目錄聯盟比查詢聯盟更具成本效益且效能最佳化。 |
|
|
支持的數據源
使用查詢同盟連線到下列來源:
- MySQL
- PostgreSQL
- Teradata
- Oracle
- Amazon Redshift
- Salesforce 資料 360
- Snowflake
- Microsoft SQL 伺服器
- Azure Synapse (SQL 數據倉儲)
- 谷歌大查詢
- Databricks
使用目錄同盟連線到下列來源:
Spark 資料來源
Spark Data Source API 讓你能直接從 Azure Databricks 讀取和寫入外部資料庫。 當 Lakehouse Federation 不支援你的原始碼、需要寫入權限,或需要更多查詢執行與平行化控制時,才會使用它。
Databricks Runtime 包含針對常見資料庫如 PostgreSQL、SQL Server、MySQL、Snowflake 和 Redshift 的捆綁連接器。 對於任何相容 JDBC 的資料庫,你可以使用 JDBC Unity 目錄連線,帶來你自己的驅動程式,並集中管理憑證。 你也可以在專用叢集上安裝第三方連接器,或使用 PySpark DataSource API 在 Python 中建立完全客製化的連接器。
關於設定說明及完整細節,請參閱 Spark 資料來源。