Création de tables sans limite à 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 sans limite à l’aide de variables

Vous pouvez utiliser des variables pour créer des tables partitionné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 partitionnées et des tables de référence :

  • rds_aurora.limitless_create_table_mode : définissez cette variable de session sur sharded ou reference. La valeur par défaut de cette variable est standard.

  • rds_aurora.limitless_create_table_shard_key : définissez cette variable de session en lui attribuant un tableau de noms de colonnes qui serviront de clés de partition. Cette variable est ignorée lorsque rds_aurora.limitless_create_table_mode n’est pas défini sur sharded.

    Formatez la valeur sous la forme untyped array literal, comme lorsque vous insérez des valeurs littérales dans une colonne de tableau. Pour plus d’informations, consultez Tableaux dans la documentation PostgreSQL.

  • rds_aurora.limitless_create_table_collocate_with : attribuez à cette variable de session le nom d’une table spécifique pour colocaliser les tables nouvellement créées avec celle-ci.

    Si deux tables ou plus sont partitionnées à l’aide de la même clé de partition, vous pouvez explicitement les aligner (colocaliser). Lorsque plusieurs tables sont colocalisées, les lignes présentant les mêmes valeurs de clé de partition sont stockées dans la même partition. La collocation permet de limiter certaines opérations à une seule partition, en vue d’améliorer les performances.

Note

Toutes les clés primaires et uniques doivent inclure la clé de partition. Autrement dit, la clé de partition est un sous-ensemble de la clé primaire ou unique.

Les tables Limitless présentent certaines limites. Pour plus d’informations, consultez Limitations du langage DDL et autres informations relatives à Aurora PostgreSQL Limitless Database.

Exemples d’utilisation de variables pour créer des tables sans limite

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

Créez une table partitionnée nommée items, 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 une table partitionnée nommée items, avec une clé de partition composée des colonnes item_id et item_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 une table partitionnée nommée item_description, avec une clé de partition composée des colonnes item_id et item_cat, puis localisez-la avec la table items 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ée colors.

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 session rds_aurora.limitless_create_table_mode sur standard, utilisez l’instruction suivante :

RESET rds_aurora.limitless_create_table_mode;

Une fois cette variable réinitialisée, les tables sont créées sous forme de tables standard, ce qui est la configuration par défaut. Pour plus d’informations sur les tables standard, consultez Conversion de tables standard en tables sans limite.

Vues de tables Aurora PostgreSQL Limitless Database

Vous pouvez trouver des informations sur les tables Limitless Database en utilisant les vues suivantes.

rds_aurora.limitless_tables

La vue rds_aurora.limitless_tables contient des informations sur les tables sans limite 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 vue rds_aurora.limitless_table_collocations contient des informations sur les tables partitionnées colocalisées. Par exemple, les tables orders et customers sont colocalisées et ont le même collocation_id. Les tables users et followers sont colocalisées et ont le même 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 affiche la diffusion 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)