共用方式為


使用 Apache Spark 資料框架讀取 Delta Sharing 中的分享 tables

本文提供使用 Apache Spark 查詢使用 Delta Sharing 共用的數據語法範例。 deltasharing使用 關鍵詞作為 DataFrame 作業的格式選項。

查詢共享數據的其他選項

您也可以在中繼存放區中註冊的差異共用 catalogs 中建立使用共用 table 名稱的查詢,例如下列範例中的查詢:

SQL

SELECT * FROM shared_table_name

Python

spark.read.table("shared_table_name")

如需在 Azure Databricks 中設定 Delta Sharing 並使用共用 table 名稱查詢資料的詳細資訊,請參閱 使用 Databricks-to-Databricks Delta Sharing 來讀取共用的資料(適用於 recipients)

您可以使用結構化串流,以累加方式處理共用 tables 中的記錄。 若要使用結構化串流處理(Structured Streaming),您必須啟用 table的歷史記錄共享功能。 請參閱 ALTER SHARE。 記錄共用需要 Databricks Runtime 12.2 LTS 或更新版本。

如果共用 table 已在來源 Delta table 上啟用變更資料饋送,並且共用已啟用歷程記錄,您可以在使用結構化流式處理或批次作業讀取 Delta 共用時利用變更資料饋送。 請參閱 在 Azure Databricks 上使用 Delta Lake 變更數據摘要。

使用 Delta Sharing 格式關鍵詞讀取

deltasharing Apache Spark DataFrame 讀取作業支持 關鍵詞,如下列範例所示:

df = (spark.read
  .format("deltasharing")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)

讀取 Delta 分享的變更數據饋送 tables

針對已啟用歷史共用和變更資料供應的 tables,您可以使用 Apache Spark DataFrames 來讀取變更資料供應記錄。 記錄共用需要 Databricks Runtime 12.2 LTS 或更新版本。

df = (spark.read
  .format("deltasharing")
  .option("readChangeFeed", "true")
  .option("startingTimestamp", "2021-04-21 05:45:46")
  .option("endingTimestamp", "2021-05-21 12:00:00")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)

使用結構化串流讀取 Delta Sharing 共享 tables

對於具有共用歷程記錄的 tables,您可以使用共用 table 做為結構化串流的來源。 記錄共用需要 Databricks Runtime 12.2 LTS 或更新版本。

streaming_df = (spark.readStream
  .format("deltasharing")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)

# If CDF is enabled on the source table
streaming_cdf_df = (spark.readStream
  .format("deltasharing")
  .option("readChangeFeed", "true")
  .option("startingTimestamp", "2021-04-21 05:45:46")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)