Uso do Unity Catalog com Transmissão Estruturada

Use Transmissão Estruturada com o Unity Catalog para gerenciar a governança de dados para suas cargas de trabalho incrementais e de transmissão no Databricks. Este documento descreve as funcionalidades suportadas e sugere as melhores práticas para usar o Unity Catalog e a Transmissão Estruturada juntos.

Qual funcionalidade de Transmissão Estruturada é compatível com o Unity Catalog?

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

Use locais externos controlados pelo Unity Catalog ao especificar caminhos para pontos de verificação de transmissão estruturada. Para saber mais sobre como conectar o armazenamento com segurança com o Unity Catalog, consulte Conectar-se ao armazenamento de objetos clouds usando o Unity Catalog.

O suporte ao recurso de transmissão estruturada difere dependendo da versão do Databricks Runtime que você está executando e se você está usando o modo de acesso clusters atribuídos ou compartilhados. Para obter detalhes, consulte limitações de transmissão para o Unity Catalog.

Para obter uma demonstração completa usando a Transmissão Estruturada no Unity Catalog, consulte Tutorial: Execute um pipeline de análise de lakehouse de ponta a ponta.

Qual funcionalidade de Transmissão estruturada não é suportada no Unity Catalog?

Para obter uma lista de recursos de transmissão estruturados que não são suportados no Unity Catalog, consulte limitações de transmissão para o Unity Catalog.

Leia em Unity Catalog view as a transmissão

Prévia

Esse recurso está em Prévia Pública.

Em Databricks Runtime 14.1 e acima, o senhor pode usar a transmissão estruturada para realizar leituras de transmissão da visualização registrada em Unity Catalog. Databricks suporta apenas leituras de transmissão da visualização definida nas tabelas Delta.

Para ler um view com transmissão estruturada, forneça o identificador do view para o método .table(), como no exemplo a seguir:

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

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

Opções compatíveis para configurar leituras de transmissão em relação à visualização

As opções a seguir são compatíveis com a configuração de leituras de transmissão em relação à visualização:

  • maxFilesPerTrigger

  • maxBytesPerTrigger

  • ignoreDeletes

  • skipChangeCommits

  • withEventTimeOrder

  • startingTimestamp

  • startingVersion

O leitor de transmissão aplica essas opções aos arquivos e metadados que definem as tabelas subjacentes do site Delta.

Importante

As leituras na visualização definida com UNION ALL não são compatíveis com as opções withEventTimeOrder e startingVersion.

Operações suportadas na visualização de origem

Nem todas as visualizações suportam leituras de transmissão. As operações não suportadas na visualização de origem incluem agregações e classificação.

A lista a seguir fornece descrições e exemplos de definições do site view para as operações suportadas:

  • Projeto

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

    • Operador: SELECT... FROM...

    • Exemplo de declaração:

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

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

    • Operador: WHERE...

    • Exemplo de declaração:

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

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

    • Operador: UNION ALL

    • Exemplo de declaração:

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

Observação

O senhor não pode modificar a definição do site view para adicionar ou alterar as tabelas referenciadas no site view e usar o mesmo ponto de verificação de transmissão.

Limitações

Aplicam-se as seguintes limitações:

  • O senhor só pode transmitir a partir da visualização apoiada pelas tabelas Delta. A visualização definida em relação a outras fontes de dados não é suportada.

  • O senhor deve registrar a visualização com Unity Catalog.

  • A seguinte exceção é exibida se o senhor transmitir de um view com um operador não suportado:

    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 é exibida se você fornecer opções não suportadas:

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