

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
<a name="limitless-creating-config"></a>

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](https://www.postgresql.org/docs/current/arrays.html) 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](limitless-reference.DDL-limitations.md).

**Topics**
+ [Exemples d’utilisation de variables pour créer des tables sans limite](#limitless-tables-examples)
+ [Vues de tables Aurora PostgreSQL Limitless Database](#limitless-table-views)

## Exemples d’utilisation de variables pour créer des tables sans limite
<a name="limitless-tables-examples"></a>

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](limitless-converting-standard.md).

## Vues de tables Aurora PostgreSQL Limitless Database
<a name="limitless-table-views"></a>

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)
```