Chargement de données à partir d’un cluster de bases de données Aurora PostgreSQL ou d’une instance de base de données RDS pour PostgreSQL - 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.

Chargement de données à partir d’un cluster de bases de données Aurora PostgreSQL ou d’une instance de base de données RDS pour PostgreSQL

Après avoir terminé la configuration des ressources et de l’authentification, connectez-vous au point de terminaison du cluster et appelez la procédure stockée rds_aurora.limitless_data_load_start depuis une base de données sans limite, telle que postgres_limitless. La base de données sans limite est une base de données du groupe de partitions de base de données vers lequel vous souhaitez migrer les données.

Cette fonction se connecte de manière asynchrone en arrière-plan à la base de données source indiquée dans la commande, lit les données depuis la source avant de les charger sur les partitions. Pour de meilleures performances, les données sont chargées à l’aide de threads parallèles. La fonction récupère un instantané de table à un moment donné en exécutant une commande SELECT pour lire les données de la ou des tables spécifiées dans la commande.

Vous pouvez charger des données dans des tables partitionnées, de référence et standard.

Vous pouvez charger des données au niveau de la base de données, du schéma ou de la table lors des appels rds_aurora.limitless_data_load_start.

  • Base de données : vous pouvez charger une base de données à la fois par appel, sans aucune limite concernant le nombre de schémas ou de tables qu’elle contient.

  • Schéma : vous pouvez charger jusqu’à 15 schémas par appel, sans aucune limite concernant le nombre de tables dans chaque schéma.

  • Table : vous pouvez charger jusqu’à 15 tables par appel.

Note

Cette fonctionnalité n’utilise pas les instantanés Amazon RDS ni l’isolation ponctuelle de la base de données. Pour assurer la cohérence entre les tables, nous vous recommandons de cloner la base de données source et d’utiliser cette base clonée comme source.

La procédure stockée utilise la syntaxe suivante :

CALL rds_aurora.limitless_data_load_start('source_type', 'source_DB_cluster_or_instance_ID', 'source_database_name', 'streaming_mode', 'data_loading_IAM_role_arn', 'source_DB_secret_arn', 'destination_DB_secret_arn', 'ignore_primary_key_conflict_boolean_flag', 'is_dry_run', (optional parameter) schemas/tables => ARRAY['name1', 'name2', ...]);

Les paramètres d’entrée sont les suivants :

  • source_type : le type de source : aurora_postgresql or rds_postgresql.

  • source_DB_cluster_or_instance_ID : l’identifiant du cluster de bases de données Aurora PostgreSQL source ou l’identifiant de l’instance de base de données RDS pour PostgreSQL.

  • source_database_name : le nom de la base de données source, par exemple postgres

  • streaming_mode : déterminer s’il faut inclure la capture de données modifiées (CDC) : full_load ou full_load_and_cdc

  • data_loading_IAM_role_arn : l’Amazon Resource Name (ARN) du rôle IAM pour aurora-data-loader

  • source_DB_secret_arn : l’ARN secret de la base de données source

  • destination_DB_secret_arn : l’ARN secret de la base de données de destination

  • ignore_primary_key_conflict_boolean_flag : déterminer s’il faut poursuivre l’exécution en cas de conflit de clé primaire :

    • S’il est défini sur true, le chargement des données ignore les nouvelles modifications apportées aux lignes présentant un conflit de clé primaire.

    • S’il est défini sur false, le chargement des données remplace les lignes existantes sur les tables de destination en cas de conflit de clé primaire.

  • is_dry_run : déterminer s’il convient de tester la capacité de la tâche de chargement de données à se connecter aux bases de données source et de destination :

    • Si ce paramètre est défini sur true, les connexions sont testées sans chargement de données

    • Si ce paramètre est défini sur false, les données sont chargées

  • (facultatif) schemas ou tables : un tableau de schémas ou de tables à charger. Vous pouvez spécifier chacune des valeurs suivantes :

    • Une liste de tables au format tables => ARRAY['schema1.table1', 'schema1.table2', 'schema2.table1', ...]

    • Une liste de schémas au format schemas => ARRAY['schema1', 'schema2', ...]

    Si ce paramètre n’est pas renseigné, la base de données source entière spécifiée est migrée.

Le paramètre de sortie correspond à l’ID de la tâche accompagné d’un message.

L’exemple suivant montre comment utiliser la procédure stockée rds_aurora.limitless_data_load_start pour charger des données à partir d’un cluster de bases de données Aurora PostgreSQL.

CALL rds_aurora.limitless_data_load_start('aurora_postgresql', 'my-db-cluster', 'postgres', 'full_load_and_cdc', 'arn:aws:iam::123456789012:role/aurora-data-loader-8f2c66', 'arn:aws:secretsmanager:us-east-1:123456789012:secret:secret-source-8f2c66-EWrr0V', 'arn:aws:secretsmanager:us-east-1:123456789012:secret:secret-destination-8f2c66-d04fbD', 'true', 'false', tables => ARRAY['public.customer', 'public.order', 'public.orderdetails']); INFO: limitless data load job id 1688761223647 is starting.