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.
O formato de tabela Lakehouse e Delta Lake são centrais para Microsoft Fabric. Manter tabelas Delta otimizadas é fundamental para o desempenho e a eficiência de custo para cargas de trabalho de análise.
Este artigo ajuda você a decidir quando usar a ordem V e mostra os principais padrões de configuração e manutenção para tabelas Delta.
Use este artigo para:
- Entenda o que a ordem V muda e quando isso ajuda.
- Entenda como a ordem Z e a ordem V se complementam.
- Escolha o nível de controle correto: sessão, propriedade da tabela ou operação de gravação.
- Aplique os padrões de manutenção de tabelas Delta no contexto correto de tempo de execução do Spark.
Para orientações entre cargas de trabalho sobre quando aplicar a ordem V com base em cenários de consumo, veja Manutenção e otimização da tabela de carga cruzada.
O que é V-order?
A ordem V é uma otimização no tempo de gravação para arquivos Parquet que pode melhorar o desempenho das consultas a jusante entre motores Fabric.
Visão geral
- Onde ele ajuda mais: Padrões de leitura pesada, como dashboarding, análise interativa e verificações repetidas.
- Como isso ajuda: Reorganiza o layout Parquet (por exemplo, distribuição de grupos de linhas, codificação e compactação) para melhorar a eficiência de leitura.
- Compensação típica: As escritas podem levar mais tempo (geralmente cerca de 15%), enquanto as leituras podem melhorar significativamente dependendo do tipo de carga de trabalho.
- Compatibilidade do mecanismo: Os arquivos permanecem em conformidade com o Parquet de software livre e os recursos Delta, como o Z-Order, permanecem compatíveis.
- Escopo: A ordem V é em nível de arquivo. Operações delta como compactação, vácuo e viagem no tempo podem ser usadas com ela.
Escritas em ordem V de controle
A ordem V é usada para otimizar o layout de arquivos Parquet para um desempenho de consulta mais rápido, especialmente em cenários com muita leitura. No Fabric, a ordem V é desativada por padrão para todos os espaços de trabalho recém-criados, a fim de otimizar o desempenho de cargas de trabalho de engenharia de dados que exigem muita escrita.
O comportamento da ordem V no Apache Spark é controlado pelas seguintes configurações:
| Configuração | Valor Padrão | Descrição |
|---|---|---|
spark.sql.parquet.vorder.default |
false |
Controla a escrita em ordem V em nível de sessão. Definido como false por padrão em novos workspaces do Fabric. |
TBLPROPERTIES("delta.parquet.vorder.enabled") |
Remover definição | Ele controla o comportamento padrão da ordem V no nível da tabela. |
Opção de gravador DataFrame: parquet.vorder.enabled |
Remover definição | Usado para controlar a ordem V no nível da operação de escrita. |
Use os seguintes comandos para habilitar ou sobrescrever as escritas em ordem V conforme necessário para o seu cenário.
A ordem V está desativada por padrão em novos espaços de trabalho Fabric (spark.sql.parquet.vorder.default=false) para melhorar o desempenho de escrita em pipelines de ingestão e transformação.
Para cargas de trabalho com muita leitura, como consultas interativas ou dashboards, ative a ordem V definindo spark.sql.parquet.vorder.default para true. Você também pode alternar para readHeavyforSpark perfis de recursos OR ReadHeavy , que ativam automaticamente a ordem V para desempenho focado em leitura.
No runtime do Fabric 1.3 e versões posteriores, a configuração spark.sql.parquet.vorder.enable é removida. Como a ordem V pode ser aplicada automaticamente durante a otimização Delta com OPTIMIZE, você não precisa dessa configuração antiga. Se você estiver migrando de versões de runtime anteriores, remova essa configuração do código.
Verifique a configuração da ordem V na sessão Apache Spark
Use esses comandos para confirmar o valor da sessão atual antes de alterá-lo.
%%sql
SET spark.sql.parquet.vorder.default
Desative a escrita por ordem V na sessão Apache Spark
Utilize esses comandos quando sua carga de trabalho estiver intensiva em gravação e você desejar operações de transformação ou ingestão mais rápidas.
%%sql
SET spark.sql.parquet.vorder.default=FALSE
Habilitar a escrita por ordem V em uma sessão do Apache Spark
Quando você ativa a ordem V no nível da sessão, todas as escritas do Parquet nessa sessão usam a ordem V, incluindo tabelas não-Delta e tabelas Delta mesmo que parquet.vorder.enabled esteja explicitamente definido para false.
%%sql
SET spark.sql.parquet.vorder.default=TRUE
Controle a ordem V usando propriedades da tabela Delta
Esta seção usa o SQL do Spark apenas porque as propriedades da tabela são definidas por meio de DDL e ALTER TABLE instruções do SQL.
Use as propriedades da tabela quando quiser um padrão de nível de tabela que se aplique entre sessões.
Ative a propriedade da tabela V-order durante a criação da tabela:
%%sql
CREATE TABLE person (id INT, name STRING, age INT) USING parquet TBLPROPERTIES("delta.parquet.vorder.enabled" = "true");
Quando a propriedade da tabela está definida para true, INSERT, UPDATE, e MERGE aplicam ordem V no momento da escrita. Configurações de nível de sessão e de escrita ainda têm prioridade, então as gravações ainda podem usar ordem V mesmo quando TBLPROPERTIES está definida como false.
Ative ou desative a ordem V alterando a propriedade da tabela:
%%sql
ALTER TABLE person SET TBLPROPERTIES("delta.parquet.vorder.enabled" = "true");
ALTER TABLE person SET TBLPROPERTIES("delta.parquet.vorder.enabled" = "false");
ALTER TABLE person UNSET TBLPROPERTIES("delta.parquet.vorder.enabled");
Depois de ativar ou desativar a ordem V usando propriedades da tabela, apenas futuras gravações na tabela são afetadas. Os arquivos parquet mantêm a ordenação usada quando ela foi criada. Para alterar a estrutura física atual para aplicar ou remover a ordem V, leia Compactação da Tabela.
Controle da ordem V diretamente em operações de escrita
Esta seção usa o PySpark para demonstrar a API de gravador dataframe. O mesmo padrão está disponível nas APIs do Scala DataFrame com opções equivalentes.
Use opções de nível de gravação quando precisar de controle por operação em vez de padrões de toda a sessão ou de toda a tabela.
Todos os comandos de gravação do Apache Spark herdam a configuração da sessão quando não são substituídos explicitamente. Os exemplos a seguir escrevem usando a ordem V herdando a configuração da sessão.
df_source.write\
.format("delta")\
.mode("append")\
.saveAsTable("myschema.mytable")
DeltaTable.createOrReplace(spark)\
.addColumn("id","INT")\
.addColumn("firstName","STRING")\
.addColumn("middleName","STRING")\
.addColumn("lastName","STRING",comment="surname")\
.addColumn("birthDate","TIMESTAMP")\
.location("Files/people")\
.execute()
df_source.write\
.format("delta")\
.mode("overwrite")\
.option("replaceWhere","start_date >= '2025-01-01' AND end_date <= '2025-01-31'")\
.saveAsTable("myschema.mytable")
A ordem V se aplica apenas a arquivos afetados pelo predicado.
Em uma sessão onde spark.sql.parquet.vorder.default é desdefinido ou definido para false, os seguintes comandos escrevem usando ordem V:
df_source.write\
.format("delta")\
.mode("overwrite")\
.option("replaceWhere","start_date >= '2025-01-01' AND end_date <= '2025-01-31'")\
.option("parquet.vorder.enabled","true")\
.saveAsTable("myschema.mytable")
DeltaTable.createOrReplace(spark)\
.addColumn("id","INT")\
.addColumn("firstName","STRING")\
.addColumn("middleName","STRING")\
.addColumn("lastName","STRING",comment="surname")\
.addColumn("birthDate","TIMESTAMP")\
.option("parquet.vorder.enabled","true")\
.location("Files/people")\
.execute()