変数を使用した無制限テーブルの作成
テーブル作成モードを設定すると、変数を使用してシャードテーブルとリファレンステーブルを作成できます。作成したテーブルは、別のモードを設定するまでこのモードを使用します。
次の変数を使用して、シャードテーブルとリファレンステーブルを作成します。
-
rds_aurora.limitless_create_table_mode
– このセッション変数をsharded
またはreference
に設定します。この変数のデフォルト値はstandard
です。 -
rds_aurora.limitless_create_table_shard_key
– このセッション変数を、シャードキーとして使用する列名の配列に設定します。rds_aurora.limitless_create_table_mode
がsharded
でない場合、この変数は無視されます。配列列にリテラルを挿入する場合と同様に、値を
untyped array literal
としてフォーマットします。詳細については、PostgreSQL ドキュメントの「Arrays」を参照してください。 -
rds_aurora.limitless_create_table_collocate_with
– このセッション変数を特定のテーブル名に設定して、新しく作成されたテーブルをそのテーブルとコロケーションします。同じシャードキーを使用して 2 つ以上のテーブルがシャードされている場合は、それらのテーブルを明示的に整列 (コロケーション) できます。2 つ以上のテーブルがコロケーションされると、同じシャードキー値を持つテーブルの行が同じシャードに配置されます。コロケーションは、一部のオペレーションを単一のシャードに制限するのに役立ちます。これにより、パフォーマンスが向上します。
注記
すべてのプライマリキーと一意のキーには、シャードキーが含まれている必要があります。つまり、シャードキーはプライマリキーまたは一意のキーのサブセットです。
無制限テーブルにはいくつかの制限があります。詳細については、「Aurora PostgreSQL Limitless Database の DDL 制限とその他の情報」を参照してください。
変数を使用した無制限テーブルの作成例
次の例は、これらの変数を使用してシャードテーブルとリファレンステーブルを作成する方法を示しています。
シャードキー id
を使用して、items
という名前のシャードテーブルを作成します。
BEGIN; SET LOCAL rds_aurora.limitless_create_table_mode='sharded'; SET LOCAL rds_aurora.limitless_create_table_shard_key='{"id"}'; CREATE TABLE items(id int, val int, item text); COMMIT;
item_id
列と item_cat
列で構成されるシャードキーを使用して、items
という名前のシャードテーブルを作成します。
BEGIN; SET LOCAL rds_aurora.limitless_create_table_mode='sharded'; SET LOCAL rds_aurora.limitless_create_table_shard_key='{"item_id", "item_cat"}'; CREATE TABLE items(item_id int, item_cat varchar, val int, item text); COMMIT;
item_id
列と item_cat
列で構成されるシャードキーを使用して item_description
という名前のシャードテーブルを作成し、前の例の items
テーブルとコロケーションします。
BEGIN; SET LOCAL rds_aurora.limitless_create_table_mode='sharded'; SET LOCAL rds_aurora.limitless_create_table_shard_key='{"item_id", "item_cat"}'; SET LOCAL rds_aurora.limitless_create_table_collocate_with='items'; CREATE TABLE item_description(item_id int, item_cat varchar, color_id int); COMMIT;
colors
という名前のリファレンステーブルを作成します。
BEGIN; SET LOCAL rds_aurora.limitless_create_table_mode='reference'; CREATE TABLE colors(color_id int primary key, color varchar); COMMIT;
rds_aurora.limitless_create_table_mode
セッション変数を standard
にリセットするには、次のステートメントを使用します。
RESET rds_aurora.limitless_create_table_mode;
この変数をリセットすると、テーブルはデフォルトである標準テーブルとして作成されます。標準テーブルの詳細については、「標準テーブルから無制限テーブルへの変換」を参照してください。
Aurora PostgreSQL Limitless Database テーブルビュー
Limitless Database テーブルに関する情報は、次のビューを使用して確認できます。
- rds_aurora.limitless_tables
-
rds_aurora.limitless_tables
ビューには、無制限テーブルとそのタイプに関する情報が含まれています。postgres_limitless=> SELECT * FROM rds_aurora.limitless_tables; table_gid | local_oid | schema_name | table_name | table_status | table_type | distribution_key -----------+-----------+-------------+-------------+--------------+-------------+------------------ 5 | 18635 | public | standard | active | standard | 6 | 18641 | public | ref | active | reference | 7 | 18797 | public | orders | active | sharded | HASH (order_id) 2 | 18579 | public | customer | active | sharded | HASH (cust_id) (4 rows)
- rds_aurora.limitless_table_collocations
-
rds_aurora.limitless_table_collocations
ビューには、コロケーションされたシャードテーブルに関する情報が含まれています。例えば、orders
テーブルとcustomers
テーブルがコロケーションされており、同じcollocation_id
を持ちます。users
テーブルとfollowers
テーブルがコロケーションされ、同じcollocation_id
を持ちます。postgres_limitless=> SELECT * FROM rds_aurora.limitless_table_collocations ORDER BY collocation_id; collocation_id | schema_name | table_name ----------------+-------------+------------ 16002 | public | orders 16002 | public | customers 16005 | public | users 16005 | public | followers (4 rows)
- rds_aurora.limitless_table_collocation_distributions
-
rds_aurora.limitless_table_collocation_distributions
は、各コロケーションのキー分散を示します。postgres_limitless=> SELECT * FROM rds_aurora.limitless_table_collocation_distributions ORDER BY collocation_id, lower_bound; collocation_id | subcluster_id | lower_bound | upper_bound ----------------+---------------+----------------------+---------------------- 16002 | 6 | -9223372036854775808 | -4611686018427387904 16002 | 5 | -4611686018427387904 | 0 16002 | 4 | 0 | 4611686018427387904 16002 | 3 | 4611686018427387904 | 9223372036854775807 16005 | 6 | -9223372036854775808 | -4611686018427387904 16005 | 5 | -4611686018427387904 | 0 16005 | 4 | 0 | 4611686018427387904 16005 | 3 | 4611686018427387904 | 9223372036854775807 (8 rows)