Leia tabelas compartilhadas Delta Sharing usando Apache Spark DataFrames

Este artigo fornece exemplos de sintaxe de uso do Apache Spark para query dados compartilhados usando Delta Sharing. Use a palavra-chave deltasharing como opção de formato para operações do DataFrame.

Outras opções para consultar dados compartilhados

Você também pode criar query que usam nomes de tabelas compartilhadas em catálogos Delta Sharing registrados no metastore, como nos exemplos a seguir:

SELECT * FROM shared_table_name
spark.read.table("shared_table_name")

Para obter mais informações sobre como configurar Delta Sharing no Databricks e consultar nomes de tabelas compartilhadas de uso de dados, consulte Ler dados compartilhados usando Delta Sharing Databricks-to-Databricks (para destinatários).

Você pode usar a transmissão estruturada para processar registros em tabelas compartilhadas de forma incremental. Para usar a transmissão estruturada, você deve habilitar o compartilhamento de história para a tabela. Consulte ALTER SHARE. O compartilhamento de história requer Databricks Runtime 12.1 ouacima.

Se a tabela compartilhada tiver change data feed habilitado na tabela Delta de origem e história habilitada no compartilhamento, você poderá usar change data feed durante a leitura de um compartilhamento Delta com operações de transmissão estruturada ou lotes. Consulte Usar o feed de dados alterados do Delta Lake no Databricks.

Leia com a palavra-chave do formato Delta Sharing

A palavra-chave deltasharing é compatível com 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>")
)

Leia o feed de dados alterados para tabelas compartilhadas Delta Sharing

Para tabelas com histórico compartilhado e feed de dados alterados ativado, você pode ler registros de feed de dados alterados usando Apache Spark DataFrames. O compartilhamento de história requer Databricks Runtime 12.1 ouacima.

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

Ler tabelas compartilhadas Delta Sharing usando transmissão estruturada

Para tabelas que possuem história compartilhada, pode-se utilizar a tabela compartilhada como fonte para transmissão estruturada. O compartilhamento de história requer Databricks Runtime 12.1 ouacima.

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