次の圧縮関数を使用して、JSON型の列でアルゴリズム圧縮(ALC)を実行できます。
- JSON_COMPRESS
- JSON_DECOMPRESS
- TD_LZ_COMPRESS
- TD_LZ_DECOMPRESS
TD_LZ_COMPRESSを使用してJSONデータを圧縮できます。ただし、JSON_COMPRESS関数はJSONデータの圧縮用に最適化されているので、代わりにJSON_COMPRESSを使用することを推奨します。
JSON_COMPRESSとJSON_DECOMPRESSは、JSON型の列を圧縮するためにのみ使用できます。これらの関数を使って他のデータ型の列を圧縮することはできません。
独自の圧縮および圧縮解除のユーザー定義関数を作成して、JSON型の列にアルゴリズム圧縮を実行することはできません。上記の関数を使用する必要があります。
ALCを使用して、バイナリ ストレージ形式(BSONまたはUBJSON)のいずれかでJSON データを格納する列を圧縮できます。
ALCをブロック レベル圧縮(BLC)と一緒に使用するとパフォーマンスが低下することがあるため、この方法は推奨しません。圧縮の使用例とサンプルの詳細については、https://access.teradata.comにログインし、Teradataオレンジ ブックの<Teradataのブロック レベル圧縮>を参照してください。
圧縮関数についての詳細は、<Teradata Vantage™ SQL演算子とユーザー定義関数、B035-1210>を参照してください。
COMPRESS句とDECOMPRESS句についての詳細は、<Teradata Vantage™データ型およびリテラル、B035-1143>を参照してください。
例: JSON_COMPRESS関数とJSON_DECOMPRESS関数
この例では、JSON_COMPRESS関数を使って"json_col"列のJSONデータを圧縮します。圧縮されたデータは、JSON_DECOMPRESS関数を使って圧縮解除されます。
CREATE TABLE temp ( id INTEGER, json_col JSON(1000) CHARACTER SET LATIN COMPRESS USING JSON_COMPRESS DECOMPRESS USING JSON_DECOMPRESS);