Usando o catálogo do Unity com streaming estruturado

Esta página mostra como usar o Streaming Estruturado com o Catálogo do Unity para gerenciar a governança de dados para suas cargas de trabalho incrementais e de streaming em Azure Databricks.

Quais funcionalidades do Structured Streaming são suportadas pelo Unity Catalog?

O Catálogo do Unity não adiciona limites explícitos para fontes e coletores de Streaming Estruturados disponíveis no Azure Databricks.

Com o Catálogo do Unity e o Streaming Estruturado, você pode:

Para pontos de verificação de streaming estruturados, você deve usar caminhos em locais externos gerenciados pelo Catálogo do Unity. Para saber mais sobre como conectar o armazenamento com segurança ao Catálogo do Unity, consulte Conectar-se ao armazenamento de objetos de nuvem usando o Catálogo do Unity.

Ler uma visualização do Unity Catalog como um fluxo

A partir do Databricks Runtime 14.3 LTS e versões posteriores, você pode usar o Structured Streaming para ler views registradas no Unity Catalog. As tabelas subjacentes devem usar o formato Delta Lake. Para outras limitações, consulte Limitações.

Para ler uma visão com Streaming Estruturado, use o método .table() com o identificador da visão:

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

Os usuários precisam ter privilégios SELECT na visualização de destino.

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

Opções de streaming com suporte

O leitor de streaming aplica opções aos arquivos e metadados das tabelas Delta subjacentes para o modo de exibição especificado.

Há suporte para as seguintes opções:

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

Operações de leitura em exibições com UNION ALL não oferecem suporte às opções withEventTimeOrder e startingVersion.

Se você fornecer opções sem suporte, como readChangeFeedo Spark, gerará esta exceção:

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

Operações de streaming com suporte

As operações com suporte incluem:

Operação Description Operator Example
Projeto Controla permissões no nível da coluna SELECT... FROM... CREATE VIEW project_view AS SELECT id, value FROM source_table
Filter Controla permissões em nível de linha WHERE... CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
União de todos 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 sem suporte 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 a invocação de TVF (função com valor de tabela).

Se você transmitir de um modo de exibição com uma operação sem suporte, o Spark gerará esta exceção:

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