Odczytywanie udostępnionych tabel openSharing przy użyciu ramek danych platformy Apache Spark

Ten artykuł zawiera przykłady składni użycia platformy Apache Spark do wykonywania zapytań dotyczących danych udostępnionych przy użyciu funkcji OpenSharing. Użyj słowa kluczowego deltasharing jako opcji formatu dla operacji ramki danych.

Inne opcje wykonywania zapytań dotyczących udostępnionych danych

Można również tworzyć zapytania korzystające z nazw tabel udostępnionych w wykazach openSharing zarejestrowanych w magazynie metadanych, takich jak te w następujących przykładach:

SQL

SELECT * FROM shared_table_name

Python

spark.read.table("shared_table_name")

Aby uzyskać więcej informacji na temat konfigurowania funkcji OpenSharing w Azure Databricks i wykonywania zapytań dotyczących danych przy użyciu udostępnionych nazw tabel, zobacz Odczyt danych udostępnionych przy użyciu usługi Databricks-to-Databricks OpenSharing (dla adresatów).

Za pomocą przesyłania strumieniowego ze strukturą można przetwarzać rekordy w tabelach udostępnionych przyrostowo. Aby użyć przesyłania strumieniowego ze strukturą, musisz włączyć udostępnianie historii dla tabeli. Zobacz: ALTER SHARE. Udostępnianie historii wymaga środowiska Databricks Runtime 12.2 LTS lub nowszego.

Jeśli w udostępnionej tabeli w źródłowej tabeli Delta jest włączony strumień danych o zmianach, a w zasobie współdzielonym jest włączona historia, możesz używać strumienia danych o zmianach podczas odczytu zasobu współdzielonego OpenSharing za pomocą Structured Streaming lub operacji wsadowych. Zobacz Use change data feed on Azure Databricks (Używanie zestawienia zmian w Azure Databricks).

Odczyt przy użyciu słowa kluczowego formatu OpenSharing

Słowo deltasharing kluczowe jest obsługiwane w przypadku operacji odczytu ramki danych platformy Apache Spark, jak pokazano w poniższym przykładzie:

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

Odczytywanie strumienia zmian danych dla tabel współdzielonych w OpenSharing

W przypadku tabel, które mają współdzieloną historię i włączoną funkcję zmiany danych, można odczytywać rekordy zmiany danych przy użyciu ramek danych platformy Apache Spark. Udostępnianie historii wymaga środowiska Databricks Runtime 12.2 LTS lub nowszego.

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

Odczytywanie tabel współdzielonych OpenSharing przy użyciu Structured Streaming

W przypadku tabel, które mają udostępnioną historię, możesz użyć tabeli udostępnionej jako źródła przesyłania strumieniowego ze strukturą. Udostępnianie historii wymaga środowiska Databricks Runtime 12.2 LTS lub nowszego.

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