メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

使用に関する注意事項

制限

Amazon Redshift では、1 つのクラスターあたりの永続テーブル数の上限が 9,900 です。

テーブルの最大文字数は 127 です。

1 つのテーブルで定義できる列の最大数は 1,600 です。

1 つのテーブルで定義できる SORTKEY 列の最大数は 400 です。

列レベルの設定とテーブルレベルの設定の概要

列レベルまたはテーブルレベルで設定できる属性と設定値がいくつかあります。属性または制約を列レベルまたはテーブルレベルで設定して同じ結果が得られる場合もあれば、異なる結果が得られる場合もあります。

次のリストは、列レベルとテーブルレベルの設定値の概要を示したものです。

DISTKEY

列レベルで設定されるかテーブルレベルで設定されるかにかかわらず、結果に違いはありません。

列レベルかテーブルレベルかにかかわらず、DISTKEY が設定されている場合は、DISTSTYLE を KEY に設定するか、まったく設定しない必要があります。DISTSTYLE はテーブルレベルでしか設定できません。

SORTKEY

列レベルで設定されている場合、SORTKEY は 1 列でなければなりません。SORTKEY がテーブルレベルで設定されている場合は、1 つまたは複数の列で複合ソートキーまたはインターリーブコンポジットソートキーを構成できます。

UNIQUE

列レベルでは、1 つまたは複数のキーを UNIQUE に設定できます。UNIQUE 制約は各列に個別に適用されます。UNIQUE がテーブルレベルで設定されている場合は、1 つまたは複数の列で複合 UNIQUE 制約を構成できます。

PRIMARY KEY

列レベルで設定されている場合、PRIMARY KEY は 1 列でなければなりません。PRIMARY KEY がテーブルレベルで設定されている場合は、1 つまたは複数の列で複合プライマリキーを構成できます。

外部キー

FOREIGN KEY が列レベルで設定されるかテーブルレベルで設定されるかにかかわらず、結果に違いはありません。列レベルでは、構文は単に REFERENCES reftable [ ( refcolumn )] になります。

受信データの分散

受信データのハッシュ分散スキームが、ターゲットテーブルのスキームと同じ場合、データをロードするときに、データを物理的に分散させる必要はありません。例えば、新しいテーブルに分散キーが設定されており、同じキー列で分散されている別のテーブルからデータが挿入される場合、同じノードとスライスを使用してデータが所定の位置にロードされます。ただし、ソーステーブルとターゲットテーブルの両方が EVEN 分散に設定されている場合、データはターゲットテーブルで再分散されます。

横長のテーブル

非常に横長のテーブルは、作成できても、そのテーブルに対して INSERT や SELECT などのクエリ処理を実行できないことがあります。CHAR のように固定幅の列を持つテーブルの最大幅は、64KB マイナス 1 (つまり 65535 バイト) です。テーブルに VARCHAR 列がある場合は、エラーを返さないで、より大きな幅を宣言できます。VARCHAR 列は、宣言した幅がクエリ処理の制限の算出に関係しないためです。VARCHAR 列に関する有効なクエリ処理の制限は、いくつかの要因に応じて変わります。

テーブルの幅が広すぎて挿入や選択ができない場合は、次のエラーが発生します。

Copy
ERROR: 8001 DETAIL: The combined length of columns processed in the SQL statement exceeded the query-processing limit of 65535 characters (pid:7627)