transmissão da do Unity Catalog view

Visualização

Esse recurso está na Visualização pública.

No Databricks Runtime 14.1 e acima, você pode usar transmissão estructurada para realizar leituras de transmissão da view registrada no Unity Catalog. Databricks suporta apenas leituras de transmissão da view definida em tabelas Delta.

Leia uma visualização como uma transmissão

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

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

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

Opções suportadas para configurar leituras de transmissão em relação view

As seguintes opções são suportadas ao configurar leituras de transmissão em relação ao view:

  • maxFilesPerTrigger

  • maxBytesPerTrigger

  • ignoreDeletes

  • skipChangeCommits

  • withEventTimeOrder

  • startingTimestamp

  • startingVersion

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

Importante

As leituras na view definida com UNION ALL não suportam as opções withEventTimeOrder e startingVersion.

Operações suportadas na viewde origem

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

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

  • Projeto

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

    • Operador: SELECT... FROM...

    • Declaração de exemplo:

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

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

    • Operador: WHERE...

    • Declaração de exemplo:

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

    • Descrição: Resultados de múltiplas tabelas

    • Operador: UNION ALL

    • Declaração de exemplo:

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

Observação

Você não pode modificar a definição view para adicionar ou alterar as tabelas referenciadas na view e utilizar o mesmo checkpoint de transmissão.

Limitações

As seguintes limitações se aplicam:

  • Você só pode transmitir a partir de view apoiadas em tabelas Delta. view definidas em outras fontes de dados não são suportadas.

  • Você deve view o registro com o Unity Catalog.

  • A exceção a seguir será exibida se você transmitir de uma 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 seguinte exceção é exibida se você fornecer opções não suportadas: ``` AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for transmissão a view. Motivo: a opção <option> não é suportada. ```