|
Hoy anunciamos la disponibilidad general de Base de datos ilimitada de Amazon Aurora PostgreSQLuna nueva capacidad de escalamiento horizontal (fragmentación) sin servidor de Amazon Aurora. Con Aurora PostgreSQL Limitless Database, puede escalar más allá de los límites existentes de Aurora para el rendimiento de escritura y el almacenamiento al distribuir una carga de trabajo de base de datos entre múltiples instancias de escritura de Aurora y, al mismo tiempo, mantener la capacidad de usarla como una única base de datos.
Cuando vimos una vista previa de Aurora PostgreSQL Limitless Database en AWS re:Invent 2023, expliqué que utiliza una arquitectura de dos capas que consta de múltiples nodos de base de datos en un grupo de fragmentos de base de datos: enrutadores o fragmentos para escalar según la carga de trabajo.
- Enrutadores – Nodos que aceptan conexiones SQL de clientes, envían comandos SQL a fragmentos, mantienen la coherencia en todo el sistema y devuelven resultados a los clientes.
- fragmentos – Nodos que almacenan un subconjunto de tablas y copias completas de datos, que aceptan consultas de enrutadores.
Habrá tres tipos de tablas que contendrán sus datos: fragmentadas, de referencia y estándar.
- Tablas fragmentadas – Estas tablas se distribuyen en varios fragmentos. Los datos se dividen entre los fragmentos según los valores de las columnas designadas en la tabla, denominadas claves de fragmentos. Son útiles para escalar las tablas más grandes y con mayor uso intensivo de E/S en su aplicación.
- Tablas de referencia – Estas tablas copian los datos completos en cada fragmento para que las consultas de unión puedan funcionar más rápido al eliminar el movimiento de datos innecesario. Se utilizan comúnmente para datos de referencia que se modifican con poca frecuencia, como catálogos de productos y códigos postales.
- Mesas estándar – Estas tablas son como tablas normales de Aurora PostgreSQL. Todas las tablas estándar se colocan juntas en un único fragmento para que las consultas de unión puedan funcionar más rápido al eliminar el movimiento de datos innecesario. Puede crear tablas fragmentadas y de referencia a partir de tablas estándar.
Una vez que haya creado el grupo de fragmentos de base de datos y sus tablas fragmentadas y de referencia, puede cargar cantidades masivas de datos en Aurora PostgreSQL Limitless Database y consultar datos en esas tablas mediante consultas estándar de PostgreSQL. Para obtener más información, visite Arquitectura de base de datos ilimitada en la Guía del usuario de Amazon Aurora.
Introducción a la base de datos ilimitada Aurora PostgreSQL
Puede comenzar en la Consola de administración de AWS y la interfaz de línea de comandos de AWS (AWS CLI) para crear un nuevo clúster de base de datos que utilice Aurora PostgreSQL Limitless Database, agregar un grupo de fragmentos de base de datos al clúster y consultar sus datos.
1. Cree un clúster de base de datos ilimitado Aurora PostgreSQL
Abra la consola de Amazon Relational Database Service (Amazon RDS) y elija Crear base de datos. Para Opciones de motorelegir Aurora (compatible con PostgreSQL) y Aurora PostgreSQL con base de datos ilimitada (Compatible con PostgreSQL 16.4).
Para Base de datos ilimitada Aurora PostgreSQLingrese un nombre para su grupo de fragmentos de base de datos y valores para la capacidad mínima y máxima medidas por las unidades de capacidad Aurora (ACU) en todos los enrutadores y fragmentos. La cantidad inicial de enrutadores y fragmentos en un grupo de fragmentos de base de datos está determinada por esta capacidad máxima. Aurora PostgreSQL Limitless Database escala un nodo a una capacidad mayor cuando su utilización actual es demasiado baja para manejar la carga. Reduce el nodo a una capacidad menor cuando su capacidad actual es mayor de la necesaria.
Para Implementación del grupo de fragmentos de base de datoselija si desea crear reservas para el grupo de fragmentos de base de datos: sin redundancia de computación, una reserva de computación en una zona de disponibilidad diferente o dos reservas de computación en dos zonas de disponibilidad diferentes.
Puede establecer las configuraciones restantes de la base de datos según sus preferencias y elegir Crear base de datos. Una vez creado el grupo de fragmentos de base de datos, se muestra en la Bases de datos página.
Puede conectar, reiniciar o eliminar un grupo de fragmentos de base de datos, o puede cambiar la capacidad, dividir un fragmento o agregar un enrutador en el grupo de fragmentos de base de datos. Para obtener más información, visite Trabajar con grupos de fragmentos de base de datos en la Guía del usuario de Amazon Aurora.
2. Cree tablas de base de datos ilimitadas de Aurora PostgreSQL
Como se compartió anteriormente, Aurora PostgreSQL Limitless Database tiene tres tipos de tablas: fragmentadas, de referencia y estándar. Puede convertir tablas estándar en tablas fragmentadas o de referencia para distribuir o replicar tablas estándar existentes o crear nuevas tablas fragmentadas y de referencia.
Puede utilizar variables para crear tablas fragmentadas y de referencia configurando el modo de creación de tablas. Las tablas que cree utilizarán este modo hasta que establezca un modo diferente. Los siguientes ejemplos muestran cómo utilizar estas variables para crear tablas fragmentadas y de referencia.
Por ejemplo, cree una tabla fragmentada llamada items
con una clave fragmentada compuesta por item_id
y item_cat
columnas.
SET rds_aurora.limitless_create_table_mode="sharded";
SET rds_aurora.limitless_create_table_shard_key='{"item_id", "item_cat"}';
CREATE TABLE items(item_id int, item_cat varchar, val int, item text);
Ahora, crea una tabla fragmentada llamada item_description
con una clave fragmentada compuesta por item_id
y item_cat
columnas y colóquelo con el items
mesa.
SET rds_aurora.limitless_create_table_collocate_with="items";
CREATE TABLE item_description(item_id int, item_cat varchar, color_id int, ...);
También puede crear una tabla de referencia llamada colors
.
SET rds_aurora.limitless_create_table_mode="reference";
CREATE TABLE colors(color_id int primary key, color varchar);
Puede encontrar información sobre las tablas de bases de datos ilimitadas utilizando el rds_aurora.limitless_tables
vista, que contiene información sobre tablas 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
-----------+-----------+-------------+-------------+--------------+-------------+------------------
1 | 18797 | public | items | active | sharded | HASH (item_id, item_cat)
2 | 18641 | public | colors | active | reference |
(2 rows)
Puede convertir tablas estándar en tablas fragmentadas o de referencia. Durante la conversión, los datos se mueven de la tabla estándar a la tabla distribuida y luego se elimina la tabla estándar de origen. Para obtener más información, visite Conversión de tablas estándar en tablas ilimitadas en la Guía del usuario de Amazon Aurora.
3. Consultar tablas de bases de datos ilimitadas de Aurora PostgreSQL
Aurora PostgreSQL Limitless Database es compatible con la sintaxis de PostgreSQL para consultas. Puede consultar su base de datos ilimitada usando psql
o cualquier otra utilidad de conexión que funcione con PostgreSQL. Antes de consultar tablas, puede cargar datos en las tablas de Aurora Limitless Database utilizando el COPY
comando o utilizando la utilidad de carga de datos.
Para ejecutar consultas, conéctese al punto final del clúster, como se muestra en Conexión a su clúster de base de datos Aurora Limitless Database. Todo PostgreSQL SELECT
Las consultas se realizan en el enrutador al que el cliente envía la consulta y en los fragmentos donde se encuentran los datos.
Para lograr un alto grado de procesamiento paralelo, Aurora PostgreSQL Limitless Database utiliza dos métodos de consulta: consultas de un solo fragmento y consultas distribuidas, que determinan si su consulta es de un solo fragmento o distribuida y procesa la consulta en consecuencia.
- Consulta de un solo fragmento – Una consulta en la que todos los datos necesarios para la consulta se encuentran en un fragmento. Toda la operación se puede realizar en un fragmento, incluido cualquier conjunto de resultados generado. Cuando el planificador de consultas del enrutador encuentra una consulta como esta, envía la consulta SQL completa al fragmento correspondiente.
- consulta distribuida – Una consulta ejecutada en un enrutador y más de un fragmento. La consulta es recibida por uno de los enrutadores. El enrutador crea y administra la transacción distribuida, que se envía a los fragmentos participantes. Los fragmentos crean una transacción local con el contexto proporcionado por el enrutador y se ejecuta la consulta.
Para ver ejemplos de consultas de un solo fragmento, utilice los siguientes parámetros para configurar la salida del EXPLAIN
dominio.
postgres_limitless=> SET rds_aurora.limitless_explain_options = shard_plans, single_shard_optimization;
SET
postgres_limitless=> EXPLAIN SELECT * FROM items WHERE item_id = 25;
QUERY PLAN
--------------------------------------------------------------
Foreign Scan (cost=100.00..101.00 rows=100 width=0)
Remote Plans from Shard postgres_s4:
Index Scan using items_ts00287_id_idx on items_ts00287 items_fs00003 (cost=0.14..8.16 rows=1 width=15)
Index Cond: (id = 25)
Single Shard Optimized
(5 rows)
Para obtener más información sobre el comando EXPLICAR, consulte EXPLICAR en la documentación de PostgreSQL.
Para ver ejemplos de consultas distribuidas, puede insertar nuevos elementos denominados Book
y Pen
en el items
mesa.
postgres_limitless=> INSERT INTO items(item_name)VALUES ('Book'),('Pen')
Esto realiza una transacción distribuida en dos fragmentos. Cuando se ejecuta la consulta, el enrutador establece una hora de instantánea y pasa la declaración a los fragmentos que poseen Book
y Pen
. El enrutador coordina una confirmación atómica en ambos fragmentos y devuelve el resultado al cliente.
Puede utilizar el seguimiento de consultas distribuidas, una herramienta para rastrear y correlacionar consultas en registros de PostgreSQL en Aurora PostgreSQL Limitless Database. Para obtener más información, visite Consulta de bases de datos ilimitadas en la Guía del usuario de Amazon Aurora.
Algunos comandos SQL no son compatibles. Para obtener más información, consulte la referencia de Aurora Limitless Database en la Guía del usuario de Amazon Aurora.
Cosas que debes saber
Aquí hay un par de cosas que debes saber sobre esta característica:
- Calcular – Solo puede tener un grupo de fragmentos de base de datos por clúster de base de datos y establecer la capacidad máxima de un grupo de fragmentos de base de datos entre 16 y 6144 ACU. Contáctenos si necesita más de 6144 ACU. La cantidad inicial de enrutadores y fragmentos está determinada por la capacidad máxima que establece al crear un grupo de fragmentos de base de datos. La cantidad de enrutadores y fragmentos no cambia cuando modifica la capacidad máxima de un grupo de fragmentos de base de datos. Para obtener más información, consulte la tabla de cantidad de enrutadores y fragmentos en la Guía del usuario de Amazon Aurora.
- Almacenamiento – Aurora PostgreSQL Limitless Database solo admite la configuración de almacenamiento del clúster de base de datos optimizada para E/S de Amazon Aurora. Cada fragmento tiene una capacidad máxima de 128 TiB. Las tablas de referencia tienen un límite de tamaño de 32 TiB para todo el grupo de fragmentos de base de datos. Para recuperar espacio de almacenamiento limpiando sus datos, puede utilizar la utilidad de aspiración en PostgreSQL.
- Escucha – Puede utilizar Amazon CloudWatch, Amazon CloudWatch Logs o Performance Insights para monitorear Aurora PostgreSQL Limitless Database. También hay nuevas funciones estadísticas, vistas y eventos de espera para Aurora PostgreSQL Limitless Database que puede utilizar para monitoreo y diagnóstico.
Ahora disponible
Amazon Aurora PostgreSQL Limitless Database está disponible hoy con compatibilidad con PostgreSQL 16.4 en AWS EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Oregón), Asia Pacífico (Hong Kong), Asia Pacífico (Singapur), Asia Pacífico (Sídney), Asia Pacífico (Tokio), Europa (Frankfurt), Europa (Irlanda) y Europa (Estocolmo).
Pruebe Aurora PostgreSQL Limitless Database en la consola de Amazon RDS. Para obtener más información, visite la Guía del usuario de Amazon Aurora y envíe sus comentarios a AWS re: Publicación para Amazon Aurora o a través de sus contactos habituales de soporte de AWS.
— chany
GIPHY App Key not set. Please check settings