Écritures transactionnelles dans le stockage cloud avec DBIO Transactional writes to cloud storage with DBIO

Le package Databricks DBIO fournit des écritures transactionnelles dans le stockage cloud pour les tâches de Apache Spark.The Databricks DBIO package provides transactional writes to cloud storage for Apache Spark jobs. Cela résout un certain nombre de problèmes de performances et d’exactitude qui se produisent quand Spark est utilisé dans un paramètre Cloud natif (par exemple, en écrivant directement dans les services de stockage).This solves a number of performance and correctness issues that occur when Spark is used in a cloud-native setting (for example, writing directly to storage services).

Avec la validation transactionnelle DBIO, les fichiers de métadonnées commençant par _started_<id> et _committed_<id> accompagnent les fichiers de données créés par les travaux Spark.With DBIO transactional commit, metadata files starting with _started_<id> and _committed_<id> accompany data files created by Spark jobs. En règle générale, vous ne devez pas modifier ces fichiers directement.Generally you shouldn’t alter these files directly. Au lieu de cela, vous devez utiliser la VACUUM commande pour les nettoyer.Rather, you should use the VACUUM command to clean them up.

Nettoyer les fichiers non validés Clean up uncommitted files

Pour nettoyer les fichiers non validés laissés par les travaux Spark, utilisez la VACUUM commande pour les supprimer.To clean up uncommitted files left over from Spark jobs, use the VACUUM command to remove them. VACUUMSe produit normalement automatiquement une fois les travaux Spark terminés, mais vous pouvez également l’exécuter manuellement en cas d’abandon d’un travail.Normally VACUUM happens automatically after Spark jobs complete, but you can also run it manually if a job is aborted.

Par exemple, VACUUM ... RETAIN 1 HOUR supprime les fichiers non validés datant de plus d’une heure.For example, VACUUM ... RETAIN 1 HOUR removes uncommitted files older than one hour.

Important

  • Évitez la dépression avec un horizon de moins d’une heure.Avoid vacuuming with a horizon of less than one hour. Cela peut entraîner une incohérence des données.It can cause data inconsistency.

Voir aussi vide.Also see Vacuum.

SQLSQL

-- recursively vacuum an output path
VACUUM '/path/to/output/directory' [RETAIN <N> HOURS]

-- vacuum all partitions of a catalog table
VACUUM tableName [RETAIN <N> HOURS]

ScalaScala

// recursively vacuum an output path
spark.sql("VACUUM '/path/to/output/directory' [RETAIN <N> HOURS]")

// vacuum all partitions of a catalog table
spark.sql("VACUUM tableName [RETAIN <N> HOURS]")