Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le format de table Lakehouse et Delta Lake est central pour Microsoft Fabric. La conservation des tables Delta optimisées est essentielle aux performances et à l’efficacité des coûts pour les charges de travail d’analyse.
Cet article vous aide à décider quand utiliser l’ordre V et présente les principaux schémas de configuration et de maintenance des tables Delta.
Utilisez cet article pour :
- Comprenez ce que l’ordre V change et quand cela aide.
- Comprenez comment l’ordre Z et l’ordre V se complètent.
- Choisissez le niveau de contrôle approprié : session, propriété de table ou opération d’écriture.
- Appliquez des modèles de maintenance de table Delta dans le contexte d’exécution Spark approprié.
Pour des conseils inter-charges de travail sur le moment d’appliquer l’ordre V en fonction des scénarios de consommation, voir Maintenance et optimisation de tables de charge croisées.
Qu’est-ce que l’ordre V ?
L’ordre V est une optimisation au moment d’écriture des fichiers Parquet qui peut améliorer les performances des requêtes en aval sur les moteurs Fabric.
En un coup d’œil :
- Où il aide le plus : Modèles lourds en lecture, tels que le tableau de bord, l’analytique interactive et les analyses répétées.
- Comment cela aide : Réorganise la disposition Parquet (par exemple, la distribution des groupes de lignes, l’encodage et la compression) pour optimiser l'efficacité de lecture.
- Compromis typique : Les écritures peuvent prendre plus de temps (souvent environ 15% en moyenne), tandis que les lectures peuvent s’améliorer considérablement en fonction de la charge de travail.
- Compatibilité du moteur : Les fichiers restent conformes à Parquet open source et les fonctionnalités Delta telles que Z-Order restent compatibles.
- Portée : L’ordre V est au niveau du fichier. Les opérations delta telles que le compactage, le vide et le voyage dans le temps peuvent être utilisées avec elle.
Écritures en ordre V de contrôle
L’ordre V est utilisé pour optimiser la mise en page des fichiers Parquet afin d’accélérer les performances des requêtes, en particulier dans les scénarios à forte intensité en lecture. Dans Fabric, l’ordre V est désactivé par défaut pour tous les espaces de travail nouvellement créés afin d’optimiser les performances pour les charges de travail d’ingénierie de données à forte intensité en écriture.
Le comportement de l’ordre V dans Apache Spark est contrôlé par les configurations suivantes :
| Paramétrage | Valeur par défaut | Descriptif |
|---|---|---|
spark.sql.parquet.vorder.default |
false |
Contrôle l’écriture en ordre V au niveau de la session.
false Défini par défaut dans les nouveaux espaces de travail Fabric. |
TBLPROPERTIES("delta.parquet.vorder.enabled") |
Annuler | Contrôle le comportement par défaut de l’ordre V au niveau de la table. |
Option d’enregistreur DataFrame : parquet.vorder.enabled |
Annuler | Utilisé pour contrôler l’ordre V au niveau de l’opération d’écriture. |
Utilisez les commandes suivantes pour activer ou remplacer les écritures en V-order selon les besoins de votre scénario.
L’ordre V est désactivé par défaut dans les nouveaux espaces de travail Fabric (spark.sql.parquet.vorder.default=false) pour améliorer les performances d’écriture des pipelines d’ingestion et de transformation.
Pour les charges de travail très en lecture telles que les requêtes interactives ou le tableau de bord, activez l’ordre V en définissant spark.sql.parquet.vorder.default sur true. Vous pouvez aussi passer à readHeavyforSpark des profils de ressources OR ReadHeavy , qui activent automatiquement l’ordre V pour des performances axées sur la lecture.
Dans le runtime Fabric 1.3 et versions ultérieures, le spark.sql.parquet.vorder.enable paramètre est supprimé. Comme l’ordre V peut être appliqué automatiquement lors de l’optimisation Delta avec OPTIMIZE, vous n’avez pas besoin de ce réglage plus ancien. Si vous migrez à partir de versions d’exécution antérieures, supprimez ce paramètre de votre code.
Vérifier la configuration de l’ordre V dans une session Apache Spark
Utilisez ces commandes pour confirmer la valeur de session actuelle avant de la modifier.
%%sql
SET spark.sql.parquet.vorder.default
Désactiver l’écriture par ordre V dans une session Apache Spark
Utilisez ces commandes lorsque votre charge de travail est lourde en écriture et que vous souhaitez accélérer l’ingestion ou les écritures de transformation.
%%sql
SET spark.sql.parquet.vorder.default=FALSE
Activer l’écriture par ordre V dans une session Apache Spark
Lorsque vous activez l’ordre V au niveau de la session, toutes les écritures Parquet dans cette session utilisent l’ordre V, y compris les tables Parquet non-Delta et les tables Delta même si parquet.vorder.enabled est explicitement défini à false.
%%sql
SET spark.sql.parquet.vorder.default=TRUE
Contrôler l’ordre V à l’aide des propriétés de la table Delta
Cette section utilise Spark SQL uniquement, car les propriétés de table sont définies par le biais de DDL SQL et ALTER TABLE d’instructions.
Utilisez les propriétés de table lorsque vous souhaitez une valeur par défaut au niveau de la table qui s’applique entre les sessions.
Activez la propriété de la table en ordre V lors de la création de la table :
%%sql
CREATE TABLE person (id INT, name STRING, age INT) USING parquet TBLPROPERTIES("delta.parquet.vorder.enabled" = "true");
Lorsque la propriété de la table est définie à true, INSERT, UPDATE, et MERGE applique l’ordre V au moment de l’écriture. Les paramètres au niveau de la session et au niveau d’écriture ont toujours la priorité, donc les écritures peuvent toujours utiliser l’ordre V même lorsque TBLPROPERTIES la fonction est définie à false.
Activez ou désactivez l’ordre V en modifiant la propriété de la table :
%%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");
Après avoir activé ou désactivé l’ordre V en utilisant les propriétés de la table, seules les écritures futures sur la table sont affectées. Les fichiers Parquet conservent l’ordre utilisé lors de leur création. Pour modifier la structure physique actuelle afin d’appliquer ou de supprimer l’ordre V, lisez Compactage de table.
Contrôler l’ordre V directement sur les opérations d’écriture
Cette section utilise PySpark pour illustrer l’API de writer DataFrame. Le même modèle est disponible dans les API Scala DataFrame avec des options équivalentes.
Utilisez des options au niveau de l’écriture lorsque vous avez besoin d’un contrôle par opération au lieu des valeurs par défaut à l’échelle de la session ou à l’échelle de la table.
Toutes les commandes d’écriture Apache Spark héritent du paramètre de session lorsqu’elles ne sont pas remplacées explicitement. Les exemples suivants écrivent en ordre V en héritant de la configuration de session.
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")
L’ordre V ne s’applique qu’aux fichiers affectés par le prédicat.
Dans une session où spark.sql.parquet.vorder.default est déplacé ou défini à false, les commandes suivantes écrivent en utilisant l’ordre 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()