Pivotal Knowledge Base

フォローする

FAQ - Greenplum Database の制限

目的

本記事では、Greenplum Database の制限に関する一般的なよくある質問とそれらの回答を列挙する。

解決策

1. Greenplum Database における制限値は?

対象 制限値
データベースの最大サイズ 無制限
テーブルの最大サイズ 基本無制限だが、各セグメントのパーティション単位では 128TB
行の最大サイズ 1 GB まで(概算値)
列の最大サイズ 1 GB
BLOB の最大サイズ 1 GB(BYTEA データ型の場合。GPDB には BLOB データ型は存在しない)
単一テーブルにおける最大行数 2^48
単一テーブルのにおける最大列数 1600
単一テーブルにおける最大インデックス数 無制限
最大データベース数・最大ユーザー数 無制限
データベースごとの最大テーブル数 42 億
ビューごとの最大列数 無制限
列名・テーブル名・データベース名の最大長 63 文字
インデックスごとの最大列数 無制限
テーブルごとの最大テーブルレベル制約数 無制限
同時実行可能な最大トランザクション数 無制限
データフォーマット記述子の最大長 63 文字
データベース名・ユーザー名・ベーステーブル名・ビュー名・インデックス名・トリガー名・ストアードプロシージャー名・UDF 名・UDT 名・制約名・列名の最大長 63 文字
構文解析エンジンごとの最大セッション数 マスター DB ノード以外、構文解析エンジンの概念はない。固定的な制限はないが、数百程度
プライマリーインデックス・セカンダリーインデックスごとの最大列数 32  

2. SELECT 文で表示可能な最大列数は?

1664

3. 外部テーブル生成時の LOCATION 節に指定可能な最大 URL 数は?

設定例として以下があげられる。

CREATE EXTERNAL TABLE ext3 ( a int )
LOCATION ('gpfdist://mdw:8081/a1','gpfdist://mdw:8081/a2',.....,'gpfdist://mdw:8081/a999',) FORMAT 'TEXT' (DELIMITER '|');

LOCATION 節に追加可能な最大 URL 数自体に制限はないが、LOCATION 節に指定可能サイズとして 32712 バイト(32 キロバイト)という制限があり、当該値を超えた場合は以下のエラーが出力される。

ERROR:  row is too big: size 42872, maximum size 32712

したがって、LOCATION 節に多くの URL を追加する予定がある場合は、対象データを専用のフォルダーへ移動し、以下のようなコマンドラインで gpfdist ファイルサーバーをバックグラウンドで起動することが推奨される。

gpfdist -p 8081 -d <専用フォルダーのパス> -l /home/gpadmin/log &

次に、当該専用フォルダーの全ファイルを読み込むよう、以下のように CREATE EXTERNAL TABLE コマンドを記述する。

CREATE EXTERNAL TABLE ext3 ( a int )
 LOCATION ('gpfdist://mdw:8081/*') FORMAT 'TEXT' (DELIMITER '|');

4. SQL 文の最大テキスト長は?

それ自体は無制限であるが、GPDB では max_stack_depth パラメーターを用いてテキストの長さを制御し、OS レベルでは UNIX のスタックサイズによって定義された最大スタックサイズによって制御される。したがって、テキスト長が長い SQL 文が存在する場合は、まず OS のスタックサイズを増やし、次に GPDB で max_stack_depth を変更、その後、新たに設定したスタックサイズを有効化するため、データベースを再起動する。

コメント

Powered by Zendesk