Creación de tablas ilimitadas con variables - Amazon Aurora

Creación de tablas ilimitadas con variables

Puede usar variables para crear tablas particionadas y de referencia configurando el modo de creación de tablas en una sesión. A continuación, las tablas que cree utilizarán este modo hasta que establezca un modo diferente.

Utilice las siguientes variables para crear tablas particionadas y de referencia:

  • rds_aurora.limitless_create_table_mode: defina esta variable de sesión en sharded o reference. El valor predeterminado de esta variable es standard.

  • rds_aurora.limitless_create_table_shard_key: defina esta variable de sesión en una matriz de nombres de columnas para utilizarlos como claves de partición. Esta variable se ignora cuando rds_aurora.limitless_create_table_mode no es sharded.

    Formatee el valor como untyped array literal, de forma similar a cuando inserta literales en una columna de matriz. Para obtener más información, consulte Arrays en la documentación de PostgreSQL.

  • rds_aurora.limitless_create_table_collocate_with: defina esta variable de sesión con un nombre de tabla específico para colocar las tablas recién creadas en esa tabla.

    Si dos o más tablas están particionadas con la misma clave de partición, puede alinear (colocar) esas tablas de forma explícita. Cuando se colocan dos o más tablas, las filas de esas tablas que tengan los mismos valores de clave de partición se colocarán en la misma partición. La colocación ayuda a restringir algunas operaciones a una sola partición, lo que se traduce en un mejor rendimiento.

nota

Todas las claves principales y únicas deben incluir la clave de partición. Esto significa que la clave de partición es un subconjunto de la clave principal o única.

Las tablas ilimitadas tienen algunas limitaciones. Para obtener más información, consulte Limitaciones del DDL y otra información para Base de datos ilimitada de Aurora PostgreSQL.

Ejemplos de uso de variables para crear tablas ilimitadas

En los siguientes ejemplos se muestra cómo utilizar estas variables para crear tablas particionadas y de referencia.

Cree una tabla particionada llamada items con la clave de partición 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;

Cree una tabla particionada llamada items con una clave de partición compuesta por las columnas item_id y 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;

Cree una tabla particionada llamada item_description con una clave de partición compuesta por las columnas item_id y item_cat, y colóquela con la tabla items del ejemplo anterior.

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;

Cree una tabla de referencia denominada colors.

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

Para restablecer la variable de sesión rds_aurora.limitless_create_table_mode a standard, utilice la siguiente instrucción:

RESET rds_aurora.limitless_create_table_mode;

Tras restablecer esta variable, las tablas se crean como tablas estándar, que es la versión predeterminada. Para obtener más información sobre las tablas estándar, consulte Conversión de tablas estándar en tablas ilimitadas.

Vistas de tabla de Base de datos ilimitada de Aurora PostgreSQL

Puede obtener información acerca de las tablas de Base de datos ilimitada con las siguientes vistas.

rds_aurora.limitless_tables

La vista rds_aurora.limitless_tables contiene información sobre las tablas ilimitadas y sus tipos.

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 vista rds_aurora.limitless_table_collocations contiene información sobre las tablas particionadas colocadas. Por ejemplo, las tablas orders y customers están colocadas y tienen el mismo collocation_id. Las tablas users y followers están colocadas y tienen el mismo 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 muestra la distribución de claves de cada colocación.

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)