列に対するアルゴリズム圧縮(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です。Vantageがcompress_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_udfはcol_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);