Création de tables illimitées à l'aide de variables - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création de tables illimitées à l'aide de variables

Vous pouvez utiliser des variables pour créer des tables fragmentées et des tables de référence en définissant le mode de création de table. Les tables que vous créez utiliseront ensuite ce mode jusqu'à ce que vous définissiez un autre mode.

Utilisez les variables suivantes pour créer des tables fragmentées et des tables de référence :

  • rds_aurora.limitless_create_table_mode— Définissez cette variable de session sur sharded oureference. La valeur par défaut de cette variable eststandard.

  • rds_aurora.limitless_create_table_shard_key— Définissez cette variable de session sur un tableau de noms de colonnes à utiliser comme clés de partition. Cette variable est ignorée lorsqu'elle rds_aurora.limitless_create_table_mode ne l'est passharded.

    Formatez la valeur de la même manière que untyped array literal lorsque vous insérez des littéraux dans une colonne de tableau. Pour plus d'informations, consultez la section Arrays dans la documentation PostgreSQL.

  • rds_aurora.limitless_create_table_collocate_with— Définissez cette variable de session sur un nom de table spécifique pour colocaliser les tables nouvellement créées avec cette table.

    Si deux tables ou plus sont fragmentées à l'aide de la même clé de partition, vous pouvez explicitement les aligner (colocaliser) ces tables. Lorsque deux tables ou plus sont colocalisées, les lignes de ces tables avec les mêmes valeurs de clé de partition sont placées sur la même partition. La collocation permet de limiter certaines opérations à une seule partition, ce qui améliore les performances.

Note

Toutes les clés primaires et uniques doivent inclure la clé shard. Cela signifie que la clé de partition est un sous-ensemble de la clé primaire ou unique.

Les tables illimitées présentent certaines limites. Pour de plus amples informations, veuillez consulter Limitations DDL et autres informations relatives à la base de données Aurora PostgreSQL Limitless.

Exemples d'utilisation de variables pour créer des tables illimitées

Les exemples suivants montrent comment utiliser ces variables pour créer des tables fragmentées et des tables de référence.

Créez une table fragmentée nomméeitems, avec la clé de partition. id

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;

Créez un tableau fragmenté nomméitems, avec une clé de partition composée des colonnes item_id etitem_cat.

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;

Créez un tableau fragmenté nomméitem_description, avec une clé de partition composée des item_cat colonnes item_id et, et localisez-le avec le items tableau de l'exemple précédent.

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;

Créez une table de référence nomméecolors.

BEGIN; SET LOCAL rds_aurora.limitless_create_table_mode='reference'; CREATE TABLE colors(color_id int primary key, color varchar); COMMIT;

Pour rétablir la variable de rds_aurora.limitless_create_table_mode session surstandard, utilisez l'instruction suivante :

RESET rds_aurora.limitless_create_table_mode;

Après avoir réinitialisé cette variable, les tables sont créées en tant que tables standard, ce qui est le cas par défaut. Pour plus d'informations sur les tables standard, voirConversion de tables standard en tables illimitées.

Vues tabulaires de la base de données Aurora Postgre SQL Limitless

Vous pouvez trouver des informations sur les tables de base de données Limitless en utilisant les vues suivantes.

rds_aurora.limitless_tables

La rds_aurora.limitless_tables vue contient des informations sur les tables illimitées et leurs types.

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

La rds_aurora.limitless_table_collocations vue contient des informations sur les tables partitionnées colocalisées. Par exemple, les customers tables orders et sont colocalisées et ont les mêmes collocation_id propriétés. Les followers tables users et sont colocalisées et ont les mêmes collocation_id propriétés.

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_distributionsAffiche la distribution des clés pour chaque collocation.

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)