Compartilhar via


Usando o Catálogo do Unity com fluxo estruturado

Use o fluxo 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 e sugere as melhores práticas para usar juntos o Catálogo do Unity e o fluxo estruturado.

Qual funcionalidade de fluxo estruturado dá suporte ao Catálogo do Unity?

O Catálogo do Unity não adiciona limites explícitos para fontes de fluxo estruturado e coletores 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 fluxo estruturado. Para saber mais sobre como conectar o armazenamento com segurança ao Catálogo do Unity, consulte Conectar-se ao armazenamento de objetos na nuvem e serviços usando o Catálogo do Unity.

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

Para obter uma demonstração de ponta a ponta usando o Streaming Estruturado no Catálogo do Unity, consulte Tutorial: Executar um pipeline de análise do Lakehouse de ponta a ponta.

Qual funcionalidade de fluxo estruturado não tem suporte no Catálogo do Unity?

Para obter uma lista de recursos de fluxo estruturado que não têm suporte no Catálogo do Unity, confira limitações de fluxo para o Catálogo do Unity.

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

Importante

Esse recurso está em uma versão prévia.

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

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

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 exibições

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

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

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

Importante

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

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

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

A seguinte lista fornece descrições e exemplos de definições de exibição para as operações com suporte:

  • Projeto

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

    • Operador: SELECT... FROM...

    • Exemplo de instruções :

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

    • 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 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

As seguintes limitações se aplicam:

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

  • É preciso registrar as exibições no Catálogo do Unity.

  • 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.