Compartilhar via


Usando o catálogo do Unity com streaming estruturado

Use 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 no Azure Databricks. Este documento descreve a funcionalidade com suporte e sugere as práticas recomendadas para usar o Catálogo do Unity e o Streaming Estruturado juntos.

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. O modelo de governança de dados do Catálogo do Unity permite transmitir dados de tabelas gerenciadas e externas no Catálogo do Unity. Você também pode usar locais externos gerenciados pelo Catálogo do Unity para interagir com dados usando URIs de armazenamento de objetos. Você pode gravar em tabelas externas usando nomes de tabela ou caminhos de arquivo. Você deve interagir com tabelas gerenciadas no Catálogo do Unity usando o nome da tabela.

Use locais externos gerenciados pelo Catálogo do Unity ao especificar caminhos para pontos de verificação de streaming estruturados. 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.

Qual funcionalidade de Streaming Estruturado não tem suporte no Catálogo do Unity?

Não há suporte para o modo de processamento contínuo do Apache Spark. Consulte Processamento contínuo no Guia de programação de streaming estruturado do Spark.

Para obter uma lista de recursos de Streaming Estruturado que não têm suporte no Catálogo do Unity com base no modo de acesso de computação, consulte limitações de streaming e streaming e requisitos de exibição materializados na computação dedicada.

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

No Databricks Runtime 14.1 e superior, você pode usar o Streaming Estruturado para executar leituras de streaming de exibições registradas no Catálogo do Unity. O Azure Databricks só dá suporte a leitura contínua de exibições definidas em tabelas Delta.

Para ler uma visão com Streaming Estruturado, forneça o identificador para a visão ao método .table(), como no exemplo a seguir:

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

Os usuários precisam ter privilégios SELECT no catálogo de destino.

Opções com suporte para configurar leituras de streaming em visualizações

Há suporte para as seguintes opções ao configurar leituras de streaming em views:

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

O leitor de streaming aplica essas opções aos arquivos e metadados que definem as tabelas Delta subjacentes.

Importante

Leituras em visualizações definidas com UNION ALL não dão suporte às opções withEventTimeOrder e startingVersion.

Operações com suporte em visualizações de origem

Nem todas as exibições dão suporte a leituras de streaming. Operações sem suporte em exibições de origem incluem agregações e classificação.

A lista a seguir fornece descrições e definições de exibição de exemplo para operações com suporte:

  • Projeto

    • Descrição: controla permissões no nível da coluna

    • Operador: SELECT... FROM...

    • Exemplo de instruções :

      CREATE VIEW project_view AS
      SELECT id, value
      FROM source_table
      
  • Filtro

    • Descrição: controla as permissões de nível de linha

    • Operador: WHERE...

    • Exemplo de instruções :

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

    • Descrição: Resultados de várias tabelas

    • Operador: UNION ALL

    • Exemplo de instruções :

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

Observação

Não é possível modificar a definição da visão para adicionar ou alterar as tabelas referenciadas na visão e manter o mesmo ponto de verificação de streaming.

Limitações

As seguintes limitações se aplicam:

  • Você só pode fazer streaming de exibições apoiadas por tabelas Delta. Não há suporte para exibições definidas em relação a outras fontes de dados.

  • Você deve registrar visualizações com o Unity Catalog.

  • A seguinte exceção será exibida se você fizer a transmissão em uma exibição com um operador sem suporte:

    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.
    
  • A seguinte exceção será exibida se você fornecer opções sem suporte:

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