Чтение таблиц OpenSharing с общим доступом с помощью DataFrame Apache Spark

В этой статье приведены примеры синтаксиса использования Apache Spark для выполнения запросов к данным, к которым предоставлен доступ с помощью OpenSharing. Используйте ключевое deltasharing слово в качестве параметра формата для операций DataFrame.

Другие варианты запроса общих данных

Вы также можете создавать запросы, использующие имена общих таблиц в каталогах OpenSharing, зарегистрированных в хранилище метаданных, например в следующих примерах:

SQL

SELECT * FROM shared_table_name

Python

spark.read.table("shared_table_name")

Дополнительные сведения о настройке OpenSharing в Azure Databricks и выполнении запросов к данным с использованием имен общих таблиц см. в статье Чтение общих данных с помощью Databricks-to-Databricks OpenSharing (для получателей).

Структурированное потоковое вещание можно использовать для поэтапной обработки записей в общих таблицах. Чтобы использовать структурированную потоковую передачу, необходимо включить совместное использование истории для таблицы. См. ALTER SHARE. Для общего доступа к журналам требуется Databricks Runtime 12.2 LTS или более поздней версии.

Если для исходной таблицы Delta, предоставленной в общем доступе, включён поток изменений данных, а для общего доступа включена история, вы можете использовать поток изменений данных при чтении общего доступа OpenSharing с помощью Structured Streaming или пакетных операций. См. Использование канала передачи данных об изменениях в Azure Databricks.

Чтение с помощью ключевого слова формата OpenSharing

Ключевое deltasharing слово поддерживается для операций считывания данных в DataFrame Apache Spark, как показано в следующем примере:

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

Чтение потока данных об изменениях для общих таблиц в OpenSharing

Для таблиц с общей историей и включённым потоком изменений данных, можно считывать записи потока изменений данных с помощью DataFrames Apache Spark. Для общего доступа к журналам требуется 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>")
)

Чтение предоставленных через OpenSharing таблиц с помощью Structured Streaming

Для таблиц, имеющих общий журнал, можно использовать общую таблицу в качестве источника для структурированной потоковой передачи. Для общего доступа к журналам требуется 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>")
)