Nouvelles fonctions SQL zstd_compress et zstd_decompress

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.