1つの列に対してアルゴリズム圧縮を追加、変更、または削除するためのALTER TABLEリクエストの使用については、以下のルールが適用されます。
- ALTER TABLEリクエストを使用することにより、アルゴリズム圧縮のみのテーブルの列、または値の圧縮とアルゴリズム圧縮の両方を指定したテーブルの列を新たに追加することができます。
- ALTER TABLEリクエストを使用することにより、テーブルにデータが含まれていない場合のみ、既存の列のアルゴリズム圧縮の特性を変更できます。
- 圧縮に組み込みサービスUDFを使用する列を含め、STRUCTURED UDTデータ型の列に対して、ALTER TABLEリクエストを使用してアルゴリズム圧縮を追加することはできません。
- アルゴリズム圧縮のUDF名を指定する際は、それを含むデータベースまたはユーザーを指定することも必要です。
- PERIODデータ型のVALIDTIME列またはTRANSACTIONTIME列でアルゴリズム圧縮を指定することはできません。
- テーブルにデータが含まれていて、現在の圧縮属性または変更予定の圧縮属性の任意のがアルゴリズム圧縮を指定している場合は、その列の圧縮属性を変更できません。
以下の表は、サポートされている圧縮変更のケースをまとめて示しています。
現在の圧縮 変更後の圧縮 なし 複数値のみ アルゴリズムのみ 複数値とアルゴリズム なし はい はい いいえ いいえ 複数値のみ はい はい いいえ いいえ アルゴリズムのみ いいえ いいえ いいえ いいえ 複数値とアルゴリズム いいえ いいえ いいえ いいえ - アルゴリズム圧縮が指定された列には、圧縮のアルゴリズムと圧縮解除のアルゴリズムを指定する必要があります。
1つの列に対して複数値圧縮とアルゴリズム圧縮の両方を指定する場合に、基本的な順序はなく、どのような順序でも指定できます。
- 同じ列に対して複数値圧縮とアルゴリズム圧縮を指定すると、Teradata Databaseは、複数値圧縮が指定されていない値に対してのみアルゴリズム圧縮を適用します。
- ある列に対してアルゴリズム圧縮のみを指定する場合、指定されたデータ型のサイズについては制限はありません。
- ある列に対してアルゴリズム圧縮と複数値圧縮の両方を指定する場合、データ型のサイズについて、複数値圧縮のデータ型と同じ制限が適用されます。
- アルゴリズム圧縮に対するTeradata Databaseのサポートは、以下のデータ型に制限されています。
- BLOB
- BYTE
- CHARACTER
Teradata Databaseでは、GRAPHICデータ型がCHARACTER CHARACTER SET GRAPHICとして実装されています。
- CLOB
- 地理空間
- VARBYTE
- VARCHAR
- VARGRAPHIC
- JSON
- XML
- PERIOD
- すべてのDISTINCT型BLOB、CLOB、XMLに基づくUDT型
以下の型の列のデータについても、NULLを圧縮できます。
- DISTINCT型UDT
- ARRAY/VARRAY
- PERIOD型(ただし、派生PERIOD型を除く)
- あるテーブルについて、プライマリ インデックスの構成要素であるような列に対してアルゴリズム圧縮を指定することはできません。
- あるテーブルについて、セカンダリ インデックスの構成要素であるような列に対してアルゴリズム圧縮を指定することができます。
- 標準の参照整合性関係において、1つの列にアルゴリズム圧縮を指定することはできません。
- バッチ参照整合性関係における列に対して、および参照制約の構成要素であるような列に対して、アルゴリズム圧縮を指定することができます。
- 永久実テーブルの列とグローバル一時テーブルの列に対して、アルゴリズム圧縮を指定することができます。
- Teradata Databaseは、アルゴリズム圧縮を指定している列では、自動的にnullを圧縮します。
- アルゴリズム圧縮と複数値圧縮を指定した場合、ディクショナリ テーブルのDBC.TVFields.CompressValueList列には、列に対して指定したアルゴリズム圧縮UDF の名前とアルゴリズム圧縮解除UDFの名前、および列に対する圧縮複数値が含まれます。
あるテーブル列について、CompressValueListのサイズが8,192文字を超えると、Teradata Databaseはリクエスト元にエラーを返します。
- アルゴリズム圧縮および圧縮解除をサポートするためのUDFの記述に適用されるルールについては、<Teradata Vantage™- SQL外部ルーチン プログラミング、B035-1147>を参照してください。
- Teradataは、アルゴリズム圧縮および圧縮解除用に外部UDFを提供します。<Teradata Vantage™ - SQL演算子およびユーザー定義関数、B035-1210>の「圧縮関数/圧縮解除関数」を参照してください。