Partilhar via


Utilizar o Catálogo do Unity com a Transmissão em Fluxo Estruturada

Use o Streaming estruturado com o Unity Catalog para gerenciar a governança de dados para suas cargas de trabalho incrementais e de streaming no Azure Databricks. Este documento descreve a funcionalidade suportada e sugere as melhores práticas para usar o Unity Catalog e o Structured Streaming juntos.

Que funcionalidade de streaming estruturado é suportada pelo Unity Catalog?

O Catálogo Unity não adiciona limites explícitos para fontes e coletores de Streaming Estruturado disponíveis no Azure Databricks. O modelo de governança de dados do Unity Catalog permite transmitir dados de tabelas gerenciadas e externas no Unity Catalog. Você também pode usar locais externos gerenciados pelo Unity Catalog para interagir com dados usando URIs de armazenamento de objetos. Você pode gravar em tabelas externas usando nomes de tabelas ou caminhos de arquivo. Você deve interagir com tabelas gerenciadas no Catálogo Unity usando o nome da tabela.

Use locais externos gerenciados pelo Unity Catalog ao especificar caminhos para pontos de verificação de Streaming Estruturado. Para saber mais sobre como conectar o armazenamento com segurança ao Unity Catalog, consulte Conectar-se ao armazenamento e serviços de objetos na nuvem usando o Unity Catalog.

O suporte a recursos de streaming estruturado difere dependendo da versão do Databricks Runtime que você está executando e se você está usando o modo de acesso a cluster atribuído ou compartilhado. Para obter detalhes, consulte Limitações de streaming para o Unity Catalog.

Para uma demonstração completa usando o Streaming estruturado no Unity Catalog, consulte Tutorial: Executar um pipeline de análise de lakehouse de ponta a ponta.

Qual funcionalidade de streaming estruturado não é suportada no Unity Catalog?

Para obter uma lista de recursos de Streaming estruturado que não são suportados no Catálogo Unity, consulte Limitações de streaming para o Catálogo Unity.

Ler uma visualização do Catálogo Unity como um fluxo

Importante

Esta funcionalidade está em Pré-visualização Pública.

No Databricks Runtime 14.1 e superior, você pode usar o Structured Streaming para executar leituras de streaming de visualizações registradas no Unity Catalog. O Azure Databricks suporta apenas leituras de streaming de vistas definidas em tabelas Delta.

Para ler um modo de exibição com Structured Streaming, forneça o identificador do modo de exibição para o .table() método, como no exemplo a seguir:

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

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

Opções suportadas para configurar leituras de streaming em visualizações

As seguintes opções são suportadas ao configurar leituras de streaming em modos de exibição:

  • 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 relação a modos de exibição definidos com UNION ALL não suportam as opções withEventTimeOrder e startingVersion.

Operações suportadas em visualizações de código-fonte

Nem todas as visualizações suportam leituras de streaming. As 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 suportadas:

  • Projeto

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

    • Operador: SELECT... FROM...

    • Exemplo de afirmação:

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

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

    • Operador: WHERE...

    • Exemplo de afirmação:

      CREATE VIEW filter_view AS
      SELECT * FROM source_table
      WHERE value > 100
      
  • União toda

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

    • Operador: UNION ALL

    • Exemplo de afirmação:

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

Nota

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

Limitações

Aplicam-se as seguintes limitações:

  • Você só pode transmitir a partir de visualizaçõ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 Catálogo Unity.

  • A exceção a seguir será exibida se você transmitir de 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 exceção a seguir 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.