Pular para o conteúdo principal

Usando o site 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.

Que funcionalidade de transmissão estruturada o site Unity Catalog suporta?

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 gerenciados por Unity Catalog ao especificar caminhos para pontos de verificação de transmissão estruturada. Para saber mais sobre como conectar o armazenamento de forma segura com Unity Catalog, consulte Conectar-se ao armazenamento de objetos na nuvem e ao serviço usando Unity Catalog.

O suporte ao recurso de transmissão estruturada difere dependendo da versão do Databricks Runtime que o senhor estiver executando e se estiver usando o modo de acesso atribuído ou padrão do compute. Para obter detalhes, consulte as limitações de transmissão para Unity Catalog.

Para uma demonstração de ponta a ponta usando a transmissão estruturada em Unity Catalog, consulte o tutorial: execução de uma análise de ponta a ponta lakehouse pipeline .

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

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

Leia em Unity Catalog view as a transmissão

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:

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

important

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:

      SQL
      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:

      SQL
      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:

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

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.