Pular para o conteúdo principal

Usando o site Unity Catalog com transmissão estruturada

Esta página mostra como usar a transmissão estruturada com Unity Catalog para gerenciar a governança de dados para suas cargas de trabalho incrementais e de transmissão no Databricks.

Que funcionalidade de transmissão estruturada o site Unity Catalog suporta?

Unity Catalog não adiciona nenhum limite explícito para fontes e destinos de transmissão estruturada disponíveis no Databricks.

Com o Unity Catalog e transmissão estruturada você pode:

  • transmissão de dados de tabelas gerenciais e externas. Consulte Unity Catalog para gerenciar tabelas no Databricks para Delta Lake e Apache Iceberg.
  • Utilize locais externos gerenciados pelo Unity Catalog para interagir com URIs de armazenamento de objetos de uso de dados.
  • Escreva em tabelas externas usando nomes de tabelas ou caminhos de arquivos. Para interagir com várias tabelas, você deve usar o nome da tabela.

Para checkpoints de transmissão estruturada, você deve usar caminhos em locais externos gerenciados pelo Unity Catalog. Para saber mais sobre como conectar o armazenamento com segurança ao Unity Catalog, consulte Conectar-se ao armazenamento de objetos cloud usando Unity Catalog.

Leia em Unity Catalog view as a transmissão

No Databricks Runtime 14.3 LTS e versões superiores, você pode usar a transmissão estruturada para ler de uma visualização registrada no Unity Catalog. As tabelas subjacentes devem usar o formato Delta Lake. Para outras limitações, consulte Limitações.

Para ler uma view com transmissão estruturada, use o método .table() com o identificador da view:

Python
df = (spark.readStream
.table("demoView")
)

Os usuários devem ter privilégios SELECT no destino view.

Se você modificar a definição view para adicionar ou alterar as tabelas referenciadas na view, não poderá usar o mesmo ponto de verificação de transmissão.

Opções de transmissão suportadas

O leitor de transmissão aplica opções aos arquivos e metadados das tabelas Delta subjacentes para a view especificada.

As seguintes opções são suportadas:

  • maxFilesPerTrigger
  • maxBytesPerTrigger
  • ignoreDeletes
  • skipChangeCommits
  • withEventTimeOrder
  • startingTimestamp
  • startingVersion

As leituras na visualização com UNION ALL não suportam as opções withEventTimeOrder e startingVersion .

Se você fornecer opções não suportadas, como readChangeFeed, o Spark lançará esta exceção:

Console
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.

Transmissões suportadas

As operações suportadas incluem:

Operação

Descrição

Operador

Exemplo

Projeto

Controla as permissões em nível de coluna.

SELECT... FROM...

CREATE VIEW project_view AS SELECT id, value FROM source_table

Filtrar

Controla as permissões em nível de linha.

WHERE...

CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100

Union all

Resultados de várias tabelas

UNION ALL

CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2

As operações não suportadas incluem agregações, classificação e funções com valor de tabela, como table_changes(). Para obter detalhes sobre funções com valor de tabela, consulte Invocação de função com valor de tabela (TVF).

Se você transmitir a partir de uma view com uma operação não suportada, Spark lançará esta exceção:

Console
UnsupportedOperationException: [UNEXPECTED_OPERATOR_IN_STREAMING_VIEW] Unexpected operator <operator> in the CREATE VIEW statement as a streaming source. A streaming view query must consist only of SELECT, WHERE, and UNION ALL operations.

Limitações