Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode criar e atualizar exibições materializadas autônomas e tabelas de streaming de um bloco de anotações usando Python. Crie seu pipeline em um notebook Python e execute-o com spark.sql(). Isso permite que você gerencie pipelines autônomos junto com seus outros fluxos de trabalho de notebook baseados em Python.
O código-fonte Python para pipelines independentes exige um notebook vinculado à computação geral sem servidor. Você não pode usar Python para criar ou atualizar pipelines autônomos a partir de um warehouse do Databricks SQL, porque um warehouse executa instruções SQL, não notebooks Python. Para usar um SQL warehouse em vez dele, consulte Usar exibições materializadas autônomas e Usar tabelas de transmissão contínua autônomas.
Importante
A criação e a atualização de visões materializadas autônomas e tabelas de streaming a partir de um notebook na computação sem servidor de uso geral estão em Beta e disponíveis em regiões selecionadas. Consulte Notebooks.
Requirements
Para criar e atualizar pipelines autônomos com Python, você precisa de um notebook anexado à computação geral sem servidor no Databricks Runtime 18.1 ou superior. Para obter a lista completa de requisitos, incluindo disponibilidade e permissões regionais, consulte Notebooks.
Como funciona
Em um notebook Python, passe os mesmos comandos que você executaria em um Databricks SQL warehouse para spark.sql(). A exibição materializada autônoma e a sintaxe da tabela de streaming são idênticas; somente a maneira como você envia a instrução difere. Assim como em um warehouse, cada instrução CREATE ou REFRESH executa um pipeline sem servidor para processar a operação.
A spark sessão está disponível por padrão em blocos de anotações Azure Databricks, portanto, nenhuma importação é necessária.
Criar uma visão materializada
O exemplo a seguir cria a exibição materializada mv1 da tabela base base_table1:
spark.sql("""
CREATE OR REPLACE MATERIALIZED VIEW mv1
AS SELECT
date,
sum(sales) AS sum_of_sales
FROM base_table1
GROUP BY date
""")
Para obter detalhes completos CREATE MATERIALIZED VIEW , como atualizações agendadas e disparadas, consulte Criar uma exibição materializada.
Criar uma tabela de streaming
O exemplo a seguir cria a tabela de streaming sales a partir da tabela raw_data:
spark.sql("""
CREATE OR REFRESH STREAMING TABLE sales
AS SELECT product, price FROM STREAM raw_data
""")
Para obter detalhes completos CREATE STREAMING TABLE , incluindo o carregamento de arquivos com o Carregador Automático e o agendamento, consulte Usar tabelas de streaming autônomas.
Atualizar uma exibição materializada ou uma tabela de streaming
Use uma REFRESH instrução para atualizar uma tabela autônoma com os dados mais recentes de sua fonte:
spark.sql("REFRESH MATERIALIZED VIEW mv1")
spark.sql("REFRESH STREAMING TABLE sales")
Na computação geral sem servidor, as atualizações são síncronas. Não há suporte para atualizações assíncronas (a ASYNC palavra-chave). Consulte a computação geral sem servidor.
Parametrizar instruções
Para passar valores do seu código Python para uma instrução, em vez de codificá-los diretamente, use marcadores de parâmetro nomeados no SQL e forneça esses valores por meio do argumento args de spark.sql(). Use um marcador como :min_sales diretamente para valores literais. Envolva o marcador em IDENTIFIER() apenas quando o parâmetro for um nome de objeto, como uma tabela, visão ou schema, porque identificadores não podem ser substituídos como valores de string simples.
O exemplo a seguir parametriza o nome de exibição materializado e um valor de filtro:
mv_name = "main.sales.regional_sales"
min_sales = 1000
spark.sql("""
CREATE OR REPLACE MATERIALIZED VIEW IDENTIFIER(:mv)
AS SELECT
region,
sum(sales) AS sum_of_sales
FROM base_table1
WHERE sales > :min_sales
GROUP BY region
""", args={
"mv": mv_name,
"min_sales": min_sales,
})
Para obter mais informações, consulte marcadores de parâmetro e IDENTIFIER cláusula.
Executar outras instruções
Você pode executar qualquer instrução independente de visão materializada ou de tabela de streaming em um notebook Python, passando-a para spark.sql(), incluindo instruções para agendar atualizações, alterar uma tabela ou excluir uma tabela. Para entender como usar exibições materializadas e tabelas de streaming, incluindo sintaxe SQL, consulte Usar exibições materializadas autônomas e usar tabelas de streaming autônomas.
Limitações
Exibições materializadas autônomas e tabelas de streaming criadas na computação geral sem servidor têm limitações adicionais, como nenhum suporte para atualizações assíncronas e nenhuma atribuição de custo por tabela. Para obter a lista completa, consulte a computação geral sem servidor.