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.
Pode criar e atualizar vistas materializadas autónomas e tabelas de streaming a partir de um caderno usando Python. Crie os seus pipelines num notebook Python e execute-os com spark.sql(). Isto permite-lhe gerir pipelines independentes juntamente com os seus outros fluxos de trabalho em blocos de notas baseados em Python.
O código-fonte em Python para pipelines independentes requer um notebook associado à computação geral sem servidor. Não é possível usar Python para criar ou atualizar pipelines autónomos a partir de um armazém SQL do Databricks, porque um armazém executa instruções SQL, não blocos de notas Python. Para utilizar um SQL warehouse em alternativa, consulte Utilizar vistas materializadas autónomas e Utilizar tabelas de streaming autónomas.
Importante
A criação e atualização de vistas materializadas autónomas e tabelas de streaming a partir de um notebook em computação geral sem servidor encontra-se em Beta e está disponível em regiões selecionadas. Ver Portáteis.
Requirements
Para criar e atualizar pipelines independentes com Python, precisa de um notebook associado à computação geral sem servidor no Databricks Runtime 18.1 ou superior. Para a lista completa de requisitos, incluindo disponibilidade regional e permissões, consulte Notebooks.
Como funciona
Num caderno Python, passe as mesmas instruções que executaria de um armazém SQL do Databricks para spark.sql(). A sintaxe da visualização materializada autónoma e da tabela de streaming é idêntica; Apenas a forma como submete a declaração é diferente. Tal como acontece num armazém, cada instrução CREATE ou REFRESH executa um pipeline sem servidor para processar a operação.
A sessão spark está disponível por predefinição nos notebooks do Azure Databricks, pelo que não é necessário importar nada.
Criar uma visão materializada
O exemplo a seguir cria a exibição mv1 materializada a partir da tabela base_table1base:
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 todos os detalhes CREATE MATERIALIZED VIEW, como atualizações agendadas e desencadeadas, consulte Criar uma vista materializada.
Criar uma tabela de transmissão
O exemplo seguinte 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 todos os detalhes, incluindo o carregamento de ficheiros com Auto Loader e o agendamento, consulte Usar tabelas de streaming independentesCREATE STREAMING TABLE.
Atualize uma visualização materializada ou uma tabela de streaming
Use uma REFRESH instrução para atualizar uma tabela autónoma com os dados mais recentes da sua fonte:
spark.sql("REFRESH MATERIALIZED VIEW mv1")
spark.sql("REFRESH STREAMING TABLE sales")
Em computação geral sem servidor, as atualizações são síncronas. As atualizações assíncronas (a ASYNC palavra-chave) não são suportadas.
Ver Computação geral sem servidor.
Parametrizar sentenças
Para passar valores do seu código Python para uma instrução em vez de os codificar fixamente, use marcadores de parâmetros nomeados no SQL e forneça os seus valores através do args argumento de spark.sql(). Use um marcador, como :min_sales diretamente, para valores literais. Envolva o marcador IDENTIFIER() apenas quando o parâmetro for um nome de objeto, como uma tabela, vista ou esquema, porque identificadores não podem ser substituídos por valores simples de cadeia.
O exemplo seguinte parametriza tanto o nome da visualização materializada como 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 mais informações, veja Marcadores de parâmetros e IDENTIFIER cláusula.
Executar outras declarações
Pode executar qualquer instrução de visualização materializada autónoma ou de tabela em streaming a partir de um caderno Python, passando-a para spark.sql(), incluindo instruções para agendar atualizações, alterar uma tabela ou eliminar uma tabela. Para compreender como usar vistas materializadas e tabelas de streaming, incluindo sintaxe SQL, veja Usar vistas materializadas autónomas e Usar tabelas de streaming independentes.
Limitations
Vistas materializadas autónomas e tabelas de streaming criadas em computação geral sem servidor têm limitações adicionais, como a ausência de suporte para atualizações assíncronas e a ausência de atribuição de custos por tabela. Para a lista completa, veja Computação geral sem servidor.