17.10 - COMPRESS USING - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-171K-JPN
Language
日本語 (日本)

列に対するアルゴリズム圧縮(ALC)。

圧縮効率を良くするために、1つのテーブルに対して複数値圧縮、アルゴリズム圧縮、およびブロック レベル圧縮を組み合わせることができます。

その他のワークロードにパフォーマンスの影響を与えないようにするために、アルゴリズム圧縮とブロック レベル圧縮を同時に使用しないようにしてください。

UDT、BLOB、CLOB、XML、およびGeospatialの列に対するアルゴリズム圧縮UDFのガイドラインと作成方法は、<Teradata Vantage™ - SQLデータ定義言語 - 詳細トピック、B035-1184>および<Teradata Vantage™ - SQL外部ルーチン プログラミング、B035-1147>のCREATE FUNCTION(外部形式)を参照してください。

複数値の圧縮に適用されるルールは、アルゴリズム圧縮にも適用されます。

アルゴリズム圧縮は、行レベル セキュリティ制約列に対しサポートされていません。

COMPRESS USINGを指定する場合は、DECOMPRESS USINGも指定する必要があります。COMPRESS USINGとDECOMPRESS USINGは、どちらの順序で指定してもかまいません。

compress_UDF_nameを含むデフォルトのデータベースはSYSUDTLIBです。compress_UDF_nameが埋め込みサービスUDFの場合、デフォルトの格納データベースはTD_SYSFNLIBです。Vantagecompress_UDF_nameをどちらのデータベースにも見つけられなかった場合、システムは要求元にメッセージを返します。

同じ列に複数値圧縮とアルゴリズム圧縮を指定できます。アルゴリズム圧縮は複数値圧縮が指定されていない値にのみ適用されます。

複数値圧縮とアルゴリズム圧縮は、どちらの順序で指定してもかまいません。

データベース オブジェクトの命名ルールについては、<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。

アルゴリズム圧縮の詳細については、<Teradata Vantage™ - SQLデータ定義言語 - 詳細トピック、B035-1184>および<Teradata Vantage™ - データベースの設計、B035-1094>を参照してください。

揮発テーブルの列に対しても、COMPRESS USINGを指定できます。

compress_UDF_name
この列のデータをアルゴリズム圧縮するために使用するUDFの名前。アルゴリズムによって圧縮可能なデータ型のリストについては、<Teradata Vantage™ - データ タイプおよびリテラル、B035-1143>のCOMPRESS句とDECOMPRESS句を参照してください。
database_name
compress_UDF_nameのデフォルトの格納先データベースは、SYSUDTLIBです。compress_UDF_nameが埋め込みサービスUDFの場合、デフォルトの格納データベースはTD_SYSFNLIBです。compress_UDF_nameがSYSUDTLIBまたはTD_SYSFNLIBに含まれていない場合、システムでは要求元にエラーを返します。

例: アルゴリズムによる圧縮の指定

この設定の最初の例は、col_2のみに対してアルゴリズム圧縮(ALC)を指定します。UDF compress_udfcol_2のすべての値を圧縮し、UDF decompress_udfはそれを圧縮解除します。

CREATE TABLE Pendants (
  col_1 INTEGER, 
  col_2 CHARACTER(10) COMPRESS USING compress_udf 
                      DECOMPRESS USING decompress_udf);

次の例では、col_2に対してアルゴリズム圧縮と複数値圧縮の両方を指定していますが、複数値圧縮を最初に指定しています。UDF compress_udfは、複数値リストで指定されていない値のみを圧縮します。UDF decompress_udfは、compress_udfで圧縮した値を圧縮解除します。

CREATE TABLE Pendants (
  col_1 INTEGER, 
  col_2 CHARACTER(10) COMPRESS ('amethyst','amber') 
                      COMPRESS USING compress_udf 
                      DECOMPRESS USING decompress_udf);

次の例は、アルゴリズム圧縮と複数値圧縮の両方をcol_2に指定します。アルゴリズム圧縮はUDF compress_udfを使用して実行され、アルゴリズム圧縮解除はUDF udf_decompressを使用して実行されます。

CREATE TABLE Pendants (
  col_1 INTEGER, 
  col_2 CHARACTER(100) COMPRESS  ('amethyst', 'amber') 
                 COMPRESS USING compress_udf 
                 DECOMPRESS USING decompress_udf);

この例では、テーブルt1に指定された圧縮をテーブルt2にコピーします。

CREATE TABLE t2 AS t1 WITH NO DATA;

例: TIMESTAMPデータ型の列に対するアルゴリズム圧縮の指定

次の例では、TIMESTAMPデータ型のstart_time列に、UDFを使用するアルゴリズム圧縮(ALC)とアルゴリズム圧縮解除を指定しています。圧縮関数および圧縮解除関数については、<Teradata Vantage™ - SQL演算子およびユーザー定義関数、B035-1210>の圧縮関数および圧縮解除関数を参照してください。

CREATE TABLE BillDateTime
(item_ID INTEGER,
start_time TIMESTAMP(0)
COMPRESS USING TD_SYSFNLIB.ts_compress
DECOMPRESS USING TD_SYSFNLIB.ts_decompress);