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 o V-Order e mostra os principais padrões de configuração e manutenção para tabelas Delta.
Use este artigo para:
- Entenda o que a V-Order muda e quando ela ajuda.
- Entenda como o Z-Order e o V-Order 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 obter diretrizes entre cargas de trabalho sobre quando aplicar a Ordem V com base em cenários de consumo, consulte a manutenção e a otimização da tabela entre cargas de trabalho.
O que é V-Order?
V-Order é uma otimização de tempo de gravação para arquivos Parquet que pode melhorar o desempenho de consultas subsequentes nos mecanismos do 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 é no nível do arquivo. Operações delta como compactação, vácuo e viagem no tempo podem ser usadas com ela.
Controlar gravações de ordem V
O V-Order é usado para otimizar o layout do arquivo Parquet para um desempenho de consulta mais rápido, especialmente em cenários de leitura pesada. Em Microsoft Fabric, V-Order é desabilitado por padrão para todos os workspaces recém-criados para otimizar o desempenho de cargas de trabalho de engenharia de dados com gravação pesada.
O comportamento da ordem V no Apache Spark é controlado por meio das seguintes configurações:
| Configuração | Valor Padrão | Descrição |
|---|---|---|
spark.sql.parquet.vorder.default |
false |
Controla a escrita em Ordem-V no nível da sessão. Definido como false por padrão em novos workspaces do Fabric. |
TBLPROPERTIES("delta.parquet.vorder.enabled") |
Remover definição | Controla o comportamento padrão de V-Order 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 gravação. |
Use os comandos a seguir para habilitar ou substituir gravações de V-Order conforme necessário para seu cenário.
O V-Order é desabilitado por padrão em novos workspaces do Fabric (spark.sql.parquet.vorder.default=false) para melhorar o desempenho de gravação para pipelines de ingestão e transformação.
Para cargas de trabalho com grande volume de leitura, como consultas interativas ou análise de painéis, habilite o V-Order configurando spark.sql.parquet.vorder.default para true. Você também pode alternar para readHeavyforSpark ou ReadHeavy perfis de recursos, que habilitam automaticamente o V-Order para desempenho otimizado para 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, não é necessário essa configuração mais antiga. Se você estiver migrando de versões de runtime anteriores, remova essa configuração do código.
Verificar a configuração do V-Order na sessão do Apache Spark
Use esses comandos para confirmar o valor da sessão atual antes de alterá-lo.
%%sql
SET spark.sql.parquet.vorder.default
Desativar a escrita em V-Order na sessão do 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 em V-Order na sessão do Apache Spark
Quando você habilita o V-Order no nível da sessão, todas as escritas Parquet nessa sessão usam V-Order, incluindo tabelas Parquet não Delta e tabelas Delta, mesmo que parquet.vorder.enabled esteja explicitamente configurada para false.
%%sql
SET spark.sql.parquet.vorder.default=TRUE
Controlar o V-Order usando as 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.
Habilite a propriedade V-Order da tabela 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 estiver definida como true, INSERTUPDATEe MERGE aplicar V-Order no momento da gravação. As configurações de nível de sessão e de gravação ainda têm precedência, permitindo que as gravações usem a V-Order mesmo quando TBLPROPERTIES estiver definido como false.
Habilite ou desabilite o V-Order 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 habilitar ou desabilitar o V-Order usando as propriedades da tabela, somente gravações futuras na tabela serão afetadas. Os arquivos parquet mantêm a ordenação usada quando ela foi criada. Para alterar a estrutura física atual a fim de aplicar ou remover o V-Order, leia Compactação de tabela.
Controlando a V-Order diretamente em operações de gravação
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 o V-Order, utilizando a configuração de sessão herdada.
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")
O V-Order se aplica apenas para arquivos afetados pelo predicado.
Em uma sessão em que spark.sql.parquet.vorder.default não está definido ou definido como false, os seguintes comandos são executados com V-Order.
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()