Lesen freigegebener OpenSharing-Tabellen mit Apache Spark DataFrames

Dieser Artikel enthält Syntaxbeispiele für die Verwendung von Apache Spark zum Abfragen von Daten, die mit OpenSharing gemeinsam genutzt werden. Verwenden Sie das deltasharing Schlüsselwort als Formatoption für DataFrame-Vorgänge.

Weitere Optionen zum Abfragen freigegebener Daten

Sie können auch Abfragen erstellen, die freigegebene Tabellennamen in OpenSharing-Katalogen verwenden, die im Metastore registriert sind, z. B. die in den folgenden Beispielen:

SQL

SELECT * FROM shared_table_name

Python

spark.read.table("shared_table_name")

Weitere Informationen zum Konfigurieren von OpenSharing in Azure Databricks und Abfragen von Daten mit freigegebenen Tabellennamen finden Sie unter Lesen von Daten, die mit Databricks-to-Databricks OpenSharing (für Empfänger) freigegeben wurden.

Sie können strukturiertes Streaming verwenden, um Datensätze in freigegebenen Tabellen inkrementell zu verarbeiten. Um strukturiertes Streaming zu verwenden, müssen Sie die Verlaufsfreigabe für die Tabelle aktivieren. Siehe ALTER SHARE. Für die Verlaufsfreigabe ist Databricks Runtime 12.2 LTS oder höher erforderlich.

Wenn für die freigegebene Tabelle der Change Data Feed für die Quell-Delta-Tabelle aktiviert ist und der Verlauf für die Freigabe aktiviert ist, können Sie den Change Data Feed beim Lesen einer OpenSharing-Freigabe mit Structured Streaming oder Batchvorgängen verwenden. Weitere Informationen finden Sie unter Verwenden des Änderungsdatenfeeds auf Azure Databricks.

Lesen mit dem Schlüsselwort "OpenSharing-Format"

Das deltasharing Schlüsselwort wird für Apache Spark DataFrame-Lesevorgänge unterstützt, wie im folgenden Beispiel gezeigt:

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

Änderungsdatenfeed aus freigegebenen OpenSharing-Tabellen lesen

Für Tabellen, für die der Verlauf freigegeben ist und der Änderungsdatenfeed aktiviert wurde, können Sie Datensätze des Änderungsdatenfeeds mit Apache Spark DataFrames lesen. Für die Verlaufsfreigabe ist Databricks Runtime 12.2 LTS oder höher erforderlich.

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>")
)

Lesen freigegebener OpenSharing-Tabellen mit strukturiertem Streaming

Für Tabellen, für die der Verlauf freigegeben ist, können Sie die freigegebene Tabelle als Quelle für Structured Streaming verwenden. Für die Verlaufsfreigabe ist Databricks Runtime 12.2 LTS oder höher erforderlich.

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>")
)