Usando o site Unity Catalog com transmissão estruturada
Esta página mostra como usar a transmissão estruturada com Unity Catalog para gerenciar a governança de dados para suas cargas de trabalho incrementais e de transmissão no Databricks.
Que funcionalidade de transmissão estruturada o site Unity Catalog suporta?
Unity Catalog não adiciona nenhum limite explícito para fontes e destinos de transmissão estruturada disponíveis no Databricks.
Com o Unity Catalog e transmissão estruturada você pode:
- transmissão de dados de tabelas gerenciais e externas. Consulte Unity Catalog para gerenciar tabelas no Databricks para Delta Lake e Apache Iceberg.
- Utilize locais externos gerenciados pelo Unity Catalog para interagir com URIs de armazenamento de objetos de uso de dados.
- Escreva em tabelas externas usando nomes de tabelas ou caminhos de arquivos. Para interagir com várias tabelas, você deve usar o nome da tabela.
Para checkpoints de transmissão estruturada, você deve usar caminhos em locais externos gerenciados pelo Unity Catalog. Para saber mais sobre como conectar o armazenamento com segurança ao Unity Catalog, consulte Conectar-se ao armazenamento de objetos cloud usando Unity Catalog.
Leia em Unity Catalog view as a transmissão
No Databricks Runtime 14.3 LTS e versões superiores, você pode usar a transmissão estruturada para ler de uma visualização registrada no Unity Catalog. As tabelas subjacentes devem usar o formato Delta Lake. Para outras limitações, consulte Limitações.
Para ler uma view com transmissão estruturada, use o método .table() com o identificador da view:
df = (spark.readStream
.table("demoView")
)
Os usuários devem ter privilégios SELECT no destino view.
Se você modificar a definição view para adicionar ou alterar as tabelas referenciadas na view, não poderá usar o mesmo ponto de verificação de transmissão.
Opções de transmissão suportadas
O leitor de transmissão aplica opções aos arquivos e metadados das tabelas Delta subjacentes para a view especificada.
As seguintes opções são suportadas:
maxFilesPerTriggermaxBytesPerTriggerignoreDeletesskipChangeCommitswithEventTimeOrderstartingTimestampstartingVersion
As leituras na visualização com UNION ALL não suportam as opções withEventTimeOrder e startingVersion .
Se você fornecer opções não suportadas, como readChangeFeed, o Spark lançará esta exceção:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.
Transmissões suportadas
As operações suportadas incluem:
Operação | Descrição | Operador | Exemplo |
|---|---|---|---|
Projeto | Controla as permissões em nível de coluna. |
|
|
Filtrar | Controla as permissões em nível de linha. |
|
|
Union all | Resultados de várias tabelas |
|
|
As operações não suportadas incluem agregações, classificação e funções com valor de tabela, como table_changes(). Para obter detalhes sobre funções com valor de tabela, consulte Invocação de função com valor de tabela (TVF).
Se você transmitir a partir de uma view com uma operação não suportada, Spark lançará esta exceção:
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.
Limitações
- Não há suporte para o modo de processamento contínuo do Apache Spark. Consulte Processamento contínuo no guia de programação Spark transmissão estructurada.
- Para obter uma lista dos recursos de transmissão estruturada que não são compatíveis com Unity Catalog com base no modo de acesso compute, consulte as limitações de transmissão e os requisitos de transmissão e materialização view em computededicado.
- A visualização como fonte de transmissão apresenta limitações adicionais:
- Você só pode transmitir a partir da visualização que consulta as tabelas Delta . Outras fontes de dados não são suportadas.
- Você precisa registrar a visualização no Unity Catalog. Consulte Criar uma view.
- A transmissão lê na visualização e não suporta todas as operações ou opções. Consulte Transações de transmissão suportadas e Opções de transmissão suportadas.