Aller au contenu principal

Déterminer si Spark réécrit trop de fichiers

DELETE, UPDATE et MERGE opérations sur les tables Delta Lake peuvent écrire beaucoup plus de données qu’elles n’en modifient. Sans vecteurs de suppression, la modification d’une seule ligne nécessite de réécrire l’intégralité du fichier Parquet qui la contient. Si un petit changement affecte plusieurs fichiers, l’étape d’écriture réécrit également toutes les lignes non modifiées dans ces fichiers.

Utilisez cette page lorsque l'étape la plus longue produit une sortie importante et exécute DELETE, UPDATE ou MERGE. Pour vérifier la sortie de l'étape, voir Sortie élevée.

Vérifiez l’écriture dans le DAG SQL​

Pour vérifier la quantité de données écrites par l'étape d'écriture :

  1. Faites défiler jusqu'en haut de la page du job et cliquez sur SQL query associée :

    Mettre en scène vers SQL

    Le DAG SQL apparaît. Si ce n’est pas le cas, faites défiler vers le bas pour le trouver :

    SQL DAG

  2. Recherchez le nœud d'écriture et vérifiez la quantité de données qu'il écrit :

    • Pour DELETE ou UPDATE, comparez la quantité de données écrites avec la quantité prévue. Si l'opération écrit beaucoup plus de données que prévu, il est possible qu'elle réécrive des données :

      Écriture des statistiques

    • Pour MERGE, le nœud de Merge affiche des statistiques explicites sur la quantité de données qu'il réécrit.

Vérifier l’historique des tables​

Pour vérifier une réécriture, vérifiez les métriques de l'opération dans l'historique des tables. Pour MERGE, comparez numTargetRowsCopied avec les lignes insérées, mises à jour et supprimées. Pour DELETE et UPDATE, vérifiez numCopiedRows. Un nombre de lignes copiées beaucoup plus élevé que celui des lignes modifiées indique que l’opération a réécrit des données non modifiées. Voir Métriques des opérations.

Réduire les réécritures​

Si l'opération réécrit beaucoup de données, essayez les approches suivantes :

  • Activez les vecteurs de suppression. Les vecteurs de suppression marquent les lignes comme supprimées ou modifiées sans réécrire le fichier Parquet.
  • Paramétrez les opérations MERGE. Ajoutez des contraintes connues à la condition de correspondance pour réduire l'espace de recherche. Pour les autres méthodes de réglage du Merge, voir Meilleures pratiques : Delta Lake.