Les fonctions zstd_compress et zstd_decompress compressent et décompressent un blob à l’aide de l’algorithme Zstandard.
Les fonctions sont similaires à zlib_compress et zlib_decompress. Pour les textes, Zstandard est généralement plus efficace que Zlib ou GZip tout en ayant une vitesse comparable ou supérieure.
Fonctionnement
zstd_compress prend un blob et fournit le résultat compressé avec Zstandard comme blob. zstd_decompress fait l’inverse : un blob compressé avec Zstandard renvoie le contenu d’origine. Les deux fonctions acceptent exactement un paramètre.
Exemple : Compression
L’exemple suivant compresse un texte et affiche le résultat en base64 :
select base64_encode(zstd_compress(ascii_to_blob('Ce texte montre comment la fonction zstd_compress reconnaît les motifs répétés et les compacte en un petit résultat.')))
Ce qui donne le résultat :
KLUv/SB0rQIAQkcUFbClOee0JH6L7J1kWCbS5rCUuYxZBICjjQomdKKv+hHSWCs+pmb395p7s0GTmu3wlepxqgiaNNOY0AnBeA51uTBhUI/6SM1l6KtOn8avBwcCAA==
Exemple : Décompression
L’exemple suivant décompresse le blob de l’exemple précédent et renvoie le texte original :
select to_char(zstd_decompress('KLUv/SB0rQIAQkcUFbClOee0JH6L7J1kWCbS5rCUuYxZBICjjQomdKKv+hHSWCs+pmb395p7s0GTmu3wlepxqgiaNNOY0AnBeA51uTBhUI/6SM1l6KtOn8avBwcCAA=='))
Ce qui donne le résultat :
Ce texte montre comment la fonction zstd_compress reconnaît les motifs répétés et les compacte en un petit résultat.
Disponibilité
Les fonctions SQL zstd_compress et zstd_decompress sont disponibles à partir de la version 27.0.