Teradataの圧縮関数および圧縮解除関数 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データ タイプおよびリテラル

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/tpf1598412463935.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1143
Product Category
Software
Teradata Vantage

Teradataでは、データの圧縮および圧縮解除用に、次に示すサービス関数を提供しています。これらの関数は、TD_SYSFNLIBシステム データベース内に格納されています。

関数のタイプ UDF名 説明
圧縮 TransUnicodeToUTF8 入力にUNICODE文字を受け取り、それをUTF-8形式で格納します。

このことは、文字がASCIIスクリプト(U+0000からU+007F)である場合に役立ちます。これは、UTF-8ではこれらの文字を表わすために1バイトを使用するのに対し、UNICODE (UTF-16)では2バイトを使用するためです。

圧縮解除 TransUTF8ToUnicode TransUnicodeToUTF8関数を使用して事前に圧縮されたデータを受け取り、それを変換してUnicodeに戻します。
圧縮 LZCOMP UNICODE文字データを、Lempel-Zivアルゴリズムを使用して圧縮します。
圧縮解除 LZDECOMP LZCOMPを使用して圧縮したUNICODEデータを圧縮解除します。
圧縮 LZCOMP_L LATIN文字データを、Lempel-Zivアルゴリズムを使用して圧縮します。
圧縮解除 LZDECOMP_L LZCOMP_Lを使用して圧縮したLATINデータを圧縮解除します。
圧縮 CAMSET UNICODE文字データを、適切なTeradataのアルゴリズムを使用して、バイト未満の値(例えば、4ビットの数字や5ビットの英文字)、1バイトの値、または2バイトの値に圧縮します。
圧縮解除 DECAMSET CAMSETを使用して圧縮したUNICODE文字データを圧縮解除します。
圧縮 CAMSET_L LATIN文字データを、適切なTeradataのアルゴリズムを使用して、バイト未満の値(例えば、4ビットの数字や5ビットの英文字)、または1バイトの値に圧縮します。
圧縮解除 DECAMSET_L CAMSET_Lを使用して圧縮したLATIN文字データを圧縮解除します。
圧縮 TD_LZ_COMPRESS サポートされているALCデータ型または事前定義タイプのデータを、Lempel-Zivコーディングを使用して圧縮します。
圧縮解除 TD_LZ_DECOMPRESS TZ_LZ_COMPRESSを使用して圧縮された、サポートされているALCデータ型または事前定義タイプのデータを圧縮解除します。
圧縮 TS_COMPRESS TIMEおよびTIMESTAMPデータを圧縮します。
圧縮解除 TS_DECOMPRESS TS_COMPRESSを使用して圧縮されたTIMEおよびTIMESTAMPデータを圧縮解除します。
圧縮 JSON_COMPRESS JSONデータを圧縮します。
圧縮解除 JSON_DECOMPRESS JSON_COMPRESSを使用して圧縮したJSONデータを圧縮解除します。

これらの関数についての詳細は、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。

これらの関数ではデータに最適な圧縮を実行できない場合は、独自のUDFを実装して、テーブルの列を圧縮したり圧縮解除できます。詳細は、<Teradata Vantage™ - SQL外部ルーチン プログラミング、B035-1147>を参照してください。

カスタムのALC UDFを作成したときには、必ず徹底的にテストしてください。圧縮または圧縮解除のアルゴリズムに欠陥があると、圧縮したデータが復元できなくなったり、破損したりするおそれがあります。