共用方式為


處理外部資料表

外部數據表,有時稱為 同盟數據表,是使用 Unity 目錄作為外部目錄一部分註冊的數據表。 外部數據表包含由外部系統管理的數據和元數據,Unity 目錄會新增數據控管來查詢這些數據表。

Azure Databricks 支援下列方法來註冊外部數據表:

  • 查詢同盟 會使用安全的 JDBC 連線來同盟至外部數據系統,例如 PostgreSQL 和 MySQL。
  • 目錄聯合 會連線外部目錄,例如 Hive 中繼存放區或 Snowflake Horizon 目錄,以直接在檔案儲存中查詢資料。

Important

為了確保與舊版 Apache Spark 和 Azure Databricks 工作負載的向後相容性,聯邦 Hive 中繼存放區中的外部表格會從 Hive 中繼存放區中傳回元數據,包括該表格是否為 Hive 受控表格或 Hive 外部表格。

為什麼要使用外部表?

外部數據表在整合 Azure Databricks 與現有數據系統或從舊版系統移轉時提供彈性。

許多外部數據表可作為暫時解決方案,以直接存取 Azure Databricks 未管理的數據,因為它們提供快速解決方案,而不需要數據遷移或程式碼重構上游 ETL 工作流程。 Databricks 建議將驅動生產工作負載或經常被查詢的數據集移轉到 Unity Catalog 受控數據表,因為受控數據表提供最佳效能,而且具備多項內建優化功能。 請參閱 將外部資料表轉換成受控 Unity 目錄資料表

查詢同盟提供免費解決方案,可從 Lakeflow Connect 不支援的外部數據系統載入數據。 Databricks 建議使用具體化檢視將外部數據表復寫至 Unity 目錄。 請參閱 使用具現化檢視從外部數據表載入數據。

建立或寫入外部數據表

如果您有足夠的許可權,且您的工作區已設定為內部同盟 Hive 中繼存放區,您可以建立或寫入內部同盟 Hive 中繼存放區所支援的外部數據表。 外部同盟Hive中繼存放區和Lakehouse同盟所支援的所有外來資料表都是唯讀的。

Azure Databricks 不會管理寫入外部數據表的元數據、數據或語意。 外部數據表可能會受到 DELTA Lake 或 Apache Iceberg 等 ACID 相容格式的支援,但外部數據表不提供 Unity 目錄受控數據表的交易保證。

大部分 Azure Databricks 的優化涵蓋增強的查詢效能、寫入速度、數據略過,以及只使用元數據的查詢,都需要 Unity Catalog。 Databricks 建議使用最新的 Databricks 執行時間版本來評估延遲和成本差異,比較外部數據表與 Unity 目錄受控數據表之間的讀取和寫入查詢效能。 請參閱 Azure Databricks 中,Unity Catalog 管理的 Delta Lake 和 Apache Iceberg 表格