Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

標準テーブルから無制限テーブルへの変換 - Amazon Aurora

標準テーブルから無制限テーブルへの変換

標準テーブルをシャードテーブルまたはリファレンステーブルに変換できます。変換中、データは標準テーブルから分散テーブルに移動され、ソースの標準テーブルは削除されます。データは INSERT INTO SELECT FROM コマンドを使用して移動されます。

シャードテーブルの作成

シャードテーブルを作成するには、標準テーブルで rds_aurora.limitless_alter_table_type_sharded プロシージャを実行します。このプロシージャでは、標準テーブルと列のリストを取得し、その列のリストをシャードキーとして使用して、指定されたテーブルを分散します。プロシージャは同期的に実行され、テーブルの ACCESS EXCLUSIVE ロックを取得します。

プロシージャが正常に終了すると、ソースの標準テーブルが削除され、同じ名前のシャードテーブルが使用可能になります。

rds_aurora.limitless_alter_table_type_sharded プロシージャでは次の構文を使用します。

postgres=> CALL rds_aurora.limitless_alter_table_type_sharded('schema.table', ARRAY['shard_key1', 'shard_key2', ... 'shard_keyn']);

このプロシージャには以下のパラメータが必要です。

  • schema – シャーディングするテーブルを含むデータベーススキーマ。スキーマが指定されていない場合、プロシージャは search_path を使用します。

  • table - シャーディングするテーブル。

  • shard_keyn – シャードキーとして使用するテーブル列の配列。

    シャードキー値は文字列リテラルであるため、大文字と小文字が区別されます。シャードキーに一重引用符 (') が含まれている場合は、別の一重引用符を使用してエスケープします。例えば、テーブル列の名前が customer's id の場合、シャードキーとして customer''s id を使用します。バックスラッシュ (\) と二重引用符 (") はエスケープする必要はありません。

注記

すべてのプライマリキーと一意のキーには、シャードキーが含まれている必要があります。つまり、シャードキーはプライマリキーまたは一意のキーのサブセットです。

シャードテーブルでは、CHECK 制約は式をサポートしていません。

詳細については、「制約」を参照してください。

シャードテーブルを作成するには

次の例は、シャードキー customer を使用してシャードテーブル customer_id を作成する方法を示しています。 

  1. 標準テーブルを作成します。

    CREATE TABLE customer (customer_id INT PRIMARY KEY NOT NULL, zipcode INT, email VARCHAR);
  2. 標準テーブルをシャードテーブルに変換します。

    postgres=> CALL rds_aurora.limitless_alter_table_type_sharded('public.customer', ARRAY['customer_id']); postgres=> \d List of relations Schema | Name | Type | Owner --------+--------------+-------------------+-------------------- public | customer | partitioned table | postgres_limitless public | customer_fs1 | foreign table | postgres_limitless public | customer_fs2 | foreign table | postgres_limitless public | customer_fs3 | foreign table | postgres_limitless public | customer_fs4 | foreign table | postgres_limitless public | customer_fs5 | foreign table | postgres_limitless (6 rows)

コロケーションテーブルの作成

同じシャードキーを使用して 2 つ以上のテーブルがシャードされている場合は、それらのテーブルを明示的に整列 (コロケーション) できます。2 つ以上のテーブルがコロケーションされると、同じシャードキー値を持つテーブルの行が同じシャードに配置されます。コロケーションは、一部のオペレーションを単一のシャードに制限するのに役立ちます。これにより、パフォーマンスが向上します。

次の構文で rds_aurora.limitless_alter_table_type_sharded プロシージャを使用します。

postgres=> CALL rds_aurora.limitless_alter_table_type_sharded('schema.collocated_table', ARRAY['shard_key1', 'shard_key2', ... 'shard_keyn'], 'schema.sharded_table');

このプロシージャには以下のパラメータが必要です。

  • schema – コロケーションするテーブルを含むデータベーススキーマ。スキーマが指定されていない場合、プロシージャは search_path を使用します。

  • collocated_table – コロケーションするテーブル。

  • shard_keyn – シャードキーとして使用するテーブル列の配列。

    元のシャードテーブルと同じシャードキーを使用する必要があります。これには、同じ列名と列タイプが含まれます。

  • sharded_tablecollocated_table をコロケーションするシャードテーブル。

コロケーションテーブルを作成するには
  1. シャードテーブルの作成」の手順に従って、最初のシャードテーブルを作成します。

  2. コロケーションテーブルの標準テーブルを作成します。

    CREATE TABLE mytable2 (customer_id INT PRIMARY KEY NOT NULL, column1 INT, column2 VARCHAR);
  3. 標準テーブルをコロケーションテーブルに変換します。

    postgres=> CALL rds_aurora.limitless_alter_table_type_sharded('public.mytable2', ARRAY['customer_id'], 'public.customer'); postgres=> \d List of relations Schema | Name | Type | Owner --------+--------------+-------------------+-------------------- public | customer | partitioned table | postgres_limitless public | customer_fs1 | foreign table | postgres_limitless public | customer_fs2 | foreign table | postgres_limitless public | customer_fs3 | foreign table | postgres_limitless public | customer_fs4 | foreign table | postgres_limitless public | customer_fs5 | foreign table | postgres_limitless public | mytable2 | partitioned table | postgres_limitless public | mytable2_fs1 | foreign table | postgres_limitless public | mytable2_fs2 | foreign table | postgres_limitless public | mytable2_fs3 | foreign table | postgres_limitless public | mytable2_fs4 | foreign table | postgres_limitless public | mytable2_fs5 | foreign table | postgres_limitless (12 rows)

リファレンステーブルの作成

リファレンステーブルを作成するには、標準テーブルで rds_aurora.limitless_alter_table_type_reference プロシージャを実行します。このプロシージャでは、特定のテーブルを DB シャードグループ内のすべてのシャードにレプリケートし、テーブルタイプをリファレンスに変更します。プロシージャは同期的に実行され、テーブルの ACCESS EXCLUSIVE ロックを取得します。

プロシージャが正常に終了すると、ソースの標準テーブルが削除され、同じ名前のリファレンステーブルが使用可能になります。

rds_aurora.limitless_alter_table_type_reference プロシージャでは次の構文を使用します。

postgres=> CALL rds_aurora.limitless_alter_table_type_reference('schema.table');

ストアドプロシージャには、次のパラメータが必要です。

  • schema – レプリケートするテーブルを含むデータベーススキーマ。スキーマが指定されていない場合、プロシージャは search_path を使用します。

  • table – レプリケートするテーブル。

注記

リファレンステーブルを作成する元の標準テーブルには、プライマリキーが必要です。

リファレンステーブルでは、CHECK 制約は式をサポートしていません。

前の関数 limitless_table_alter_type_reference は廃止されました。

リファレンステーブルを作成するには

次の例は、リファレンステーブル zipcodes の作成方法を示しています。

  1. 標準テーブルを作成します。

    CREATE TABLE zipcodes (zipcode INT PRIMARY KEY, details VARCHAR);
  2. 標準テーブルをリファレンステーブルに変換します。

    CALL rds_aurora.limitless_alter_table_type_reference('public.zipcodes'); postgres=> \d List of relations Schema | Name | Type | Owner --------+--------------+-------------------+-------------------- public | customer | partitioned table | postgres_limitless public | customer_fs1 | foreign table | postgres_limitless public | customer_fs2 | foreign table | postgres_limitless public | customer_fs3 | foreign table | postgres_limitless public | customer_fs4 | foreign table | postgres_limitless public | customer_fs5 | foreign table | postgres_limitless public | zipcodes | foreign table | postgres_limitless (7 rows)

    出力には、シャードテーブル customer とリファレンステーブル zipcodes が表示されます。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.