Utilizar o Catálogo do Unity com a Transmissão em Fluxo Estruturada
Use o Streaming estruturado com o Unity Catalog para gerenciar a governança de dados para suas cargas de trabalho incrementais e de streaming no Azure Databricks. Este documento descreve a funcionalidade suportada e sugere as melhores práticas para usar o Unity Catalog e o Structured Streaming juntos.
Que funcionalidade de streaming estruturado é suportada pelo Unity Catalog?
O Catálogo Unity não adiciona limites explícitos para fontes e coletores de Streaming Estruturado disponíveis no Azure Databricks. O modelo de governança de dados do Unity Catalog permite transmitir dados de tabelas gerenciadas e externas no Unity Catalog. Você também pode usar locais externos gerenciados pelo Unity Catalog para interagir com dados usando URIs de armazenamento de objetos. Você pode gravar em tabelas externas usando nomes de tabelas ou caminhos de arquivo. Você deve interagir com tabelas gerenciadas no Catálogo Unity usando o nome da tabela.
Use locais externos gerenciados pelo Unity Catalog ao especificar caminhos para pontos de verificação de Streaming Estruturado. 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.
O suporte a recursos de streaming estruturado difere dependendo da versão do Databricks Runtime que você está executando e se você está usando o modo de acesso a cluster atribuído ou compartilhado. Para obter detalhes, consulte Limitações de streaming para o Unity Catalog.
Para uma demonstração completa usando o Streaming estruturado no Unity Catalog, consulte Tutorial: Executar um pipeline de análise de lakehouse de ponta a ponta.
Qual funcionalidade de streaming estruturado não é suportada no Unity Catalog?
Para obter uma lista de recursos de Streaming estruturado que não são suportados no Catálogo Unity, consulte Limitações de streaming para o Catálogo Unity.
Ler uma visualização do Catálogo Unity como um fluxo
Importante
Esta funcionalidade está em Pré-visualização Pública.
No Databricks Runtime 14.1 e superior, você pode usar o Structured Streaming para executar leituras de streaming de visualizações registradas no Unity Catalog. O Azure Databricks suporta apenas leituras de streaming de vistas definidas em tabelas Delta.
Para ler um modo de exibição com Structured Streaming, forneça o identificador do modo de exibição para o .table()
método, como no exemplo a seguir:
df = (spark.readStream
.table("demoView")
)
Os usuários devem ter SELECT
privilégios na exibição de destino.
Opções suportadas para configurar leituras de streaming em visualizações
As seguintes opções são suportadas ao configurar leituras de streaming em modos de exibição:
maxFilesPerTrigger
maxBytesPerTrigger
ignoreDeletes
skipChangeCommits
withEventTimeOrder
startingTimestamp
startingVersion
O leitor de streaming aplica essas opções aos arquivos e metadados que definem as tabelas Delta subjacentes.
Importante
Leituras em relação a modos de exibição definidos com UNION ALL
não suportam as opções withEventTimeOrder
e startingVersion
.
Operações suportadas em visualizações de código-fonte
Nem todas as visualizações suportam leituras de streaming. As operações sem suporte em exibições de origem incluem agregações e classificação.
A lista a seguir fornece descrições e definições de exibição de exemplo para operações suportadas:
Projeto
Descrição: Controla permissões no nível da coluna
Operador:
SELECT... FROM...
Exemplo de afirmação:
CREATE VIEW project_view AS SELECT id, value FROM source_table
Filtro
Descrição: Controla permissões de nível de linha
Operador:
WHERE...
Exemplo de afirmação:
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
União toda
Descrição: Resultados de várias tabelas
Operador:
UNION ALL
Exemplo de afirmação:
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2
Nota
Não é possível modificar a definição de exibição para adicionar ou alterar as tabelas referenciadas na exibição e usar o mesmo ponto de verificação de streaming.
Limitações
Aplicam-se as seguintes limitações:
Você só pode transmitir a partir de visualizações apoiadas por tabelas Delta. Não há suporte para exibições definidas em relação a outras fontes de dados.
Você deve registrar visualizações com o Catálogo Unity.
A exceção a seguir será exibida se você transmitir de uma exibição com um operador sem suporte:
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 será exibida se você fornecer opções sem suporte:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.