Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esta página mostra como usar o Structured Streaming com o Unity Catalog para gerir a governação de dados para as suas cargas de trabalho incrementais e de streaming no Azure Databricks.
Que funcionalidade de streaming estruturado é suportada pelo Unity Catalog?
O Unity Catalog não adiciona quaisquer limites explícitos para fontes e sinks de Structured Streaming disponíveis no Azure Databricks.
Com o Unity Catalog e o Structured Streaming podes:
- Transmite dados tanto de tabelas geridas como externas. Ver tabelas geridas pelo Unity Catalog em Azure Databricks para Delta Lake e Apache Iceberg.
- Use localizações externas geridas pelo Unity Catalog para interagir com dados usando URIs de armazenamento de objetos.
- Escreve em tabelas externas usando nomes de tabelas ou caminhos de ficheiros. Para interagir com tabelas geridas, deve usar o nome da tabela.
Para pontos de controlo da transmissão estruturada, tem de utilizar caminhos em localizações externas geridas pelo Unity Catalog. Para saber mais sobre como conectar o armazenamento com segurança ao Unity Catalog, consulte Conectar-se ao armazenamento de objetos na nuvem usando o Unity Catalog.
Ler uma visualização do Catálogo Unity como um fluxo
No Databricks Runtime 14.3 LTS e superiores, pode usar o Structured Streaming para ler a partir de vistas registadas no Unity Catalog. As tabelas subjacentes devem usar o formato Delta Lake. Para outras limitações, veja Limitações.
Para ler uma vista com Structured Streaming, use o .table() método com o identificador da vista:
df = (spark.readStream
.table("demoView")
)
Os utilizadores devem ter SELECT privilégios na vista de destino.
Se modificares a definição da vista para adicionar ou alterar as tabelas referenciadas na vista, não podes usar o mesmo checkpoint de streaming.
Opções de streaming suportadas
O leitor de streaming aplica opções aos ficheiros e metadados das tabelas Delta subjacentes para a vista especificada.
As seguintes opções são suportadas:
maxFilesPerTriggermaxBytesPerTriggerignoreDeletesskipChangeCommitswithEventTimeOrderstartingTimestampstartingVersion
As leituras em vistas com UNION ALL não suportam as opções withEventTimeOrder e startingVersion.
Se fornecer opções não suportadas, como readChangeFeed, o Spark levanta esta exceção:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.
Operações de streaming suportadas
As operações apoiadas incluem:
| Operation | Description | Operator | Exemplo |
|---|---|---|---|
| Projeto | Controla permissões ao nível das colunas | SELECT... FROM... |
CREATE VIEW project_view AS SELECT id, value FROM source_table |
| Filter | Controla permissões ao nível das linhas | WHERE... |
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100 |
| Sindicato todos | Resultados de múltiplas tabelas | UNION ALL |
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2 |
Operações não suportadas incluem agregações, ordenação e funções de tabela como table_changes(). Para detalhes sobre funções com valores em tabelas, veja Invocação de funções com valores em tabela (TVF).
Se fizer streaming a partir de uma vista com uma operação não suportada, o Spark gera 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
- O modo de processamento contínuo Apache Spark não é suportado. Consulte Processamento contínuo no Guia de programação de streaming estruturado do Spark.
- Para obter uma lista de recursos de Streaming estruturado que não são suportados no Unity Catalog com base no modo de acesso de computação, consulte Limitações de streaming e Requisitos de streaming e exibição materializada em computação dedicada.
- As visualizações como fonte de streaming têm limitações adicionais:
- Só podes fazer streaming a partir de vistas que consultam tabelas Delta. Outras fontes de dados não são suportadas.
- Você deve registrar visualizações com o Catálogo Unity. Ver Criar uma vista.
- O streaming de leituras nas visualizações não suporta todas as operações ou opções. Veja Operações de streaming suportadas e Opções de streaming suportadas.