Leia tabelas partilhadas OpenSharing usando Apache Spark DataFrames

Este artigo apresenta exemplos de sintaxe de utilização do Apache Spark para consultar dados partilhados através do OpenSharing. Utilize a deltasharing palavra-chave como uma opção de formatação para operações de DataFrame.

Outras opções para consultar dados partilhados

Também pode criar consultas que usem nomes de tabelas partilhados em catálogos OpenSharing registados na metastore, como as dos seguintes exemplos:

SQL

SELECT * FROM shared_table_name

Python

spark.read.table("shared_table_name")

Para mais informações sobre como configurar o OpenSharing no Azure Databricks e consultar dados usando nomes de tabelas partilhados, consulte Ler dados partilhados usando Databricks-to-Databricks OpenSharing (para destinatários).

Você pode usar o Streaming Estruturado para processar registros em tabelas compartilhadas incrementalmente. Para usar o Streaming Estruturado, você deve habilitar o compartilhamento de histórico para a tabela. Consulte ALTER SHARE. O compartilhamento de histórico requer o Databricks Runtime 12.2 LTS ou superior.

Se a tabela partilhada tiver o feed de alteração de dados ativado na tabela Delta de origem e o histórico ativado na partilha, pode usar o feed de alterações de dados enquanto lê uma partilha OpenSharing com Structured Streaming ou operações em lote. Veja Usar feed de dados de alterações no Azure Databricks.

Leia com a palavra-chave de formato OpenSharing

A deltasharing palavra-chave é suportada para operações de leitura do Apache Spark DataFrame, conforme mostrado no exemplo a seguir:

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

Ler o fluxo de dados de alterações para tabelas partilhadas do OpenSharing

Para tabelas com histórico compartilhado e feed de dados de alteração habilitado, você pode ler registros de feed de dados de alteração usando o Apache Spark DataFrames. O compartilhamento de histórico requer o Databricks Runtime 12.2 LTS ou superior.

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

Leia tabelas partilhadas OpenSharing usando Structured Streaming

Para tabelas com histórico compartilhado, você pode usar a tabela compartilhada como fonte para Streaming Estruturado. O compartilhamento de histórico requer o Databricks Runtime 12.2 LTS ou superior.

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