

# Uso de la utilidad de carga de datos de Base de datos ilimitada de Aurora PostgreSQL
<a name="limitless-load.utility"></a>

Aurora proporciona una utilidad para cargar datos directamente en Base de datos ilimitada desde un clúster de base de datos de Aurora PostgreSQL o desde una instancia de base de datos de RDS para PostgreSQL.

Siga los siguientes pasos para utilizar la utilidad de carga de datos:

1. [Requisitos previos](#limitless-load.prereqs)

1. [Preparación de la base de datos de origen](#limitless-load.source)

1. [Preparación de la base de datos de destino](#limitless-load.destination)

1. [Creación de credenciales de la base de datos](#limitless-load.users)

1. Uno de los siguientes:
   + [Configuración de la autenticación de bases de datos y el acceso a los recursos mediante un script](limitless-load.script.md) (recomendado)
   + [Configuración de la autenticación de bases de datos y el acceso manual a los recursos](limitless-load.manual.md)

1. [Carga de datos desde un clúster de base de datos de Aurora PostgreSQL o una instancia de base de datos de RDS para PostgreSQL](limitless-load.data.md)

## Limitaciones
<a name="limitless-load.limitations"></a>

La utilidad de carga de datos tiene las siguientes limitaciones:
+ No se admiten los siguientes tipos de datos: `enum`, `ARRAY`, `BOX`, `CIRCLE`, `LINE`, `LSEG`, `PATH`, `PG_LSN`, `PG_SNAPSHOT`, `POLYGON`, `TSQUERY`, `TSVECTOR` y `TXID_SNAPSHOT`.
+ Los ceros iniciales (`0`) se eliminan del tipo de datos `VARBIT` durante la carga.
+ La migración de datos falla cuando hay claves externas en las tablas de destino.
+ La utilidad datos ilimitados admite las configuraciones de origen siguientes para clústeres de base de datos multi-AZ de Amazon RDS para PostgreSQL:
  + Instancia principal
    + Modos compatibles: snapshot, snapshot\$1then\$1cdc
  + Instancia de réplica
    + Modo compatible: solo instantánea
      + Requisito: hot\$1standby\$1feedback debe estar habilitado
    + No compatible: snapshot\$1then\$1cdc

## Requisitos previos
<a name="limitless-load.prereqs"></a>

La utilidad de carga de datos tiene los siguientes requisitos previos:
+ La base de datos de origen utiliza Aurora PostgreSQL o RDS para PostgreSQL versión 11.x y posteriores.
+ La base de datos de origen se encuentra en la misma Cuenta de AWS y Región de AWS que el grupo de particiones de base de datos de destino.
+ El clúster de base de datos o la instancia de base de datos de origen tienen el estado `available`.
+ Las tablas de la base de datos de origen y de la base de datos ilimitada tienen los mismos nombres de tabla, nombres de columnas y tipos de datos de columna.
+ Las tablas de origen y destino tienen claves principales que utilizan las mismas columnas y el mismo orden de columnas.
+ Debe disponer de un entorno para conectarse a una base de datos ilimitada para ejecutar comandos de carga de datos. Los comandos disponibles son los siguientes:
  + `rds_aurora.limitless_data_load_start`
  + `rds_aurora.limitless_data_load_cancel`
+ Para CDC:
  + Tanto la base de datos de origen como el grupo de particiones de base de datos de destino deben usar el mismo grupo de subredes de base de datos, el mismo grupo de seguridad de VPC y el mismo puerto de base de datos. Estas configuraciones son para las conexiones de red tanto a la base de datos de origen como a los enrutadores del grupo de particiones de base de datos.
  + Debe activar la replicación lógica en la base de datos de origen. El usuario de la base de datos de origen debe tener privilegios para leer la replicación lógica.

## Preparación de la base de datos de origen
<a name="limitless-load.source"></a>

Para acceder a la base de datos de origen para cargar datos, debe permitir la entrada de tráfico de red. Siga estos pasos.

**Cómo permitir el acceso del tráfico de red a la base de datos de origen**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Navegue a la página **Grupos de seguridad**.

1. Elija **ID de grupo de seguridad** para el grupo de seguridad utilizado por la instancia o el clúster de base de datos de origen.

   Por ejemplo, el ID de grupo de seguridad es `sg-056a84f1712b77926`.

1. Vaya a la pestaña **Reglas de entrada**:

   1. Elija **Editar reglas de entrada**.

   1. Agregue una nueva regla de entrada para la instancia o el clúster de base de datos de origen:
      + Rango de puertos: puerto de base de datos para la base de datos de origen, normalmente `5432`
      + ID de grupo de seguridad: `sg-056a84f1712b77926` en este ejemplo  
![\[Agregue una regla de entrada para la base de datos de origen.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/AuroraUserGuide/images/limitless_self_access_inbound_rule.png)

1. En la pestaña **Reglas de salida**:

   1. Elija **Edit outbound rules**.

   1. Agregue una nueva regla de salida para la instancia o el clúster de base de datos de origen:
      + Puerto de base de datos: `All traffic` (incluye los puertos `0-65535`)
      + ID de grupo de seguridad: `sg-056a84f1712b77926` en este ejemplo  
![\[Agregue una regla de salida para la base de datos de origen.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/AuroraUserGuide/images/limitless_self_access_outbound_rule.png)

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon VPC en [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Navegue a la página **ACL de red**.

1. Agregue la configuración de ACL de red predeterminada tal como se describe en la [ACL de red predeterminada](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html#default-network-acl).

## Preparación de la base de datos de destino
<a name="limitless-load.destination"></a>

Siga los procedimientos descritos en [Creación de tablas de Base de datos ilimitada de Aurora PostgreSQL](limitless-creating.md) para crear las tablas de destino en el grupo de particiones de base de datos.

Las tablas de destino deben tener los mismos esquemas, nombres de tabla y claves principales que las tablas de origen.

## Creación de credenciales de la base de datos
<a name="limitless-load.users"></a>

Debe crear usuarios de bases de datos en las bases de datos de origen y destino y conceder los privilegios necesarios a los usuarios. Para obtener más información, consulte [CREATE USER](https://www.postgresql.org/docs/current/sql-createuser.html) y [GRANT](https://www.postgresql.org/docs/current/sql-grant.html) en la documentación de PostgreSQL.

### Creación de las credenciales de la base de datos de origen
<a name="limitless-load.users.source"></a>

El usuario de la base de datos de origen se pasa en el comando para iniciar la carga. El usuario debe tener privilegios para ejecutar la replicación desde la base de datos de origen.

1. Utilice el usuario maestro de la base de datos (u otro usuario con el rol `rds_superuser`) para crear un usuario de la base de datos de origen con privilegios `LOGIN`.

   ```
   CREATE USER source_db_username WITH PASSWORD 'source_db_user_password';
   ```

1. Otorgue el rol `rds_superuser` al usuario de la base de datos de origen.

   ```
   GRANT rds_superuser to source_db_username;
   ```

1. Si utiliza el modo `full_load_and_cdc`, otorgue el rol `rds_replication` al usuario de la base de datos de origen. El rol de `rds_replication` concede permisos para administrar ranuras lógicas y para transmitir datos mediante ranuras lógicas.

   ```
   GRANT rds_replication to source_db_username;
   ```

### Creación de las credenciales de la base de datos de destino
<a name="limitless-load.users.destination"></a>

El usuario de la base de datos de destino debe tener permiso para escribir en las tablas de destino del grupo de particiones de base de datos.

1. Utilice el usuario maestro de la base de datos (u otro usuario con el rol `rds_superuser`) para crear un usuario de la base de datos de destino con privilegios `LOGIN`.

   ```
   CREATE USER destination_db_username WITH PASSWORD 'destination_db_user_password';
   ```

1. Otorgue el rol `rds_superuser` al usuario de la base de datos de destino.

   ```
   GRANT rds_superuser to destination_db_username;
   ```