Usando o Catálogo do Unity com fluxo estruturado
Use o fluxo estruturado com o Catálogo do Unity para gerenciar a governança de dados para suas cargas de trabalho incrementais e de streaming no Azure Databricks. Este documento descreve a funcionalidade e sugere as melhores práticas para usar juntos o Catálogo do Unity e o fluxo estruturado.
Qual funcionalidade de fluxo estruturado dá suporte ao Catálogo do Unity?
O Catálogo do Unity não adiciona limites explícitos para fontes de fluxo estruturado e coletores disponíveis no Azure Databricks. O modelo de governança de dados do Catálogo do Unity permite transmitir dados de tabelas gerenciadas e externas no Catálogo do Unity. Você também pode usar locais externos gerenciados pelo Catálogo do Unity para interagir com dados usando URIs de armazenamento de objetos. Você pode gravar em tabelas externas usando nomes de tabela ou caminhos de arquivo. Você deve interagir com tabelas gerenciadas no Catálogo do Unity usando o nome da tabela.
Use locais externos gerenciados pelo Catálogo do Unity ao especificar caminhos para pontos de verificação de fluxo estruturado. Para saber mais sobre como conectar o armazenamento com segurança ao Catálogo do Unity, consulte Conectar-se ao armazenamento de objetos na nuvem e serviços usando o Catálogo do Unity.
O suporte a recursos de streaming estruturado difere dependendo da versão do Databricks Runtime que você estiver executando e se você está usando modo de acesso atribuído ou modo de acesso de cluster compartilhado. Para obter detalhes, confira Limitações de fluxo para o Catálogo do Unity.
Para obter uma demonstração de ponta a ponta usando o Streaming Estruturado no Catálogo do Unity, consulte Tutorial: Executar um pipeline de análise do Lakehouse de ponta a ponta.
Qual funcionalidade de fluxo estruturado não tem suporte no Catálogo do Unity?
Para obter uma lista de recursos de fluxo estruturado que não têm suporte no Catálogo do Unity, confira limitações de fluxo para o Catálogo do Unity.
Ler uma exibição do Catálogo do Unity como um fluxo
Importante
Esse recurso está em uma versão prévia.
No Databricks Runtime 14.1 e versões superiores, você pode usar o Streaming Estruturado para executar leituras de streaming nas exibições registradas no Catálogo do Unity. O Azure Databricks só dá suporte a leituras de streaming nas exibições definidas em tabelas Delta.
Para ler uma exibição com o Streaming Estruturado, forneça o identificador da exibição para o método .table()
, como no seguinte exemplo:
df = (spark.readStream
.table("demoView")
)
Os usuários precisam ter privilégios SELECT
no catálogo de destino.
Opções com suporte para configurar leituras de streaming em exibições
Há suporte para as seguintes opções ao configurar leituras de streaming em exibições:
maxFilesPerTrigger
maxBytesPerTrigger
ignoreDeletes
skipChangeCommits
withEventTimeOrder
startingTimestamp
startingVersion
O leitor de streaming aplica essas opções aos arquivos e aos metadados que definem as tabelas Delta subjacentes.
Importante
As leituras em exibições definidas com UNION ALL
não dão suporte às opções withEventTimeOrder
e startingVersion
.
Operações com suporte em exibições de origem
Nem todas as exibições dão suporte a leituras de streaming. As operações sem suporte nas exibições de origem incluem agregações e classificação.
A seguinte lista fornece descrições e exemplos de definições de exibição para as operações com suporte:
Projeto
Descrição: controla as permissões de nível de coluna
Operador:
SELECT... FROM...
Exemplo de instruções :
CREATE VIEW project_view AS SELECT id, value FROM source_table
Filter
Descrição: controla as permissões de nível de linha
Operador:
WHERE...
Exemplo de instruções :
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Unir tudo
Descrição: resultados de várias tabelas
Operador:
UNION ALL
Exemplo de instruções :
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2
Observação
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
As seguintes limitações se aplicam:
Você só pode fazer a transmissão nas exibições com suporte de tabelas Delta. Não há suporte para exibições definidas em outras fontes de dados.
É preciso registrar as exibições no Catálogo do Unity.
A seguinte exceção será exibida se você fizer a transmissão em 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 seguinte exceção 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.