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.
Utilisation de la commande COPY avec Aurora PostgreSQL Limitless Database
Vous pouvez utiliser la fonctionnalité \copypsql pour importer et exporter des données dans/depuis Aurora PostgreSQL Limitless Database
Découvrez comment utiliser la commande COPY pour charger des données dans Aurora PostgreSQL Limitless Database
Aurora PostgreSQL Limitless Database est compatible avec la fonctionnalité \copypsql d’importation de données.
Dans Limitless Database comme dans Aurora PostgreSQL, les éléments suivants ne sont pas pris en charge :
-
Accès SSH direct aux instances de base de données : vous ne pouvez pas copier un fichier de données (au format .csv, par exemple) sur l’hôte de l’instance de base de données et exécuter
COPYà partir du fichier. -
Utilisation de fichiers locaux sur l’instance de base de données : utilisez
COPY ... FROM STDINetCOPY ... TO STDOUT.
La commande COPY de PostgreSQL propose des options permettant d’utiliser des fichiers locaux (FROM/TO) et de transmettre des données via une connexion entre le client et le serveur (STDIN/STDOUT). Pour plus d’informations, consultez COPY
La commande \copy de l’utilitaire psql de PostgreSQL fonctionne avec les fichiers locaux de l’ordinateur sur lequel vous exécutez le client psql. Il invoque la commande correspondante COPY ... FROM STDIN ou COPY ... FROM STDOUT sur le serveur distant (par exemple, Limitless Database) auquel vous vous connectez. Il lit les données à partir du fichier local vers STDIN ou écrit dans ce fichier à partir de STDOUT.
Fractionnement de données en plusieurs fichiers
Les données sont stockées sur plusieurs partitions dans Aurora PostgreSQL Limitless Database. Pour accélérer le chargement des données en utilisant \copy, vous pouvez les diviser en plusieurs fichiers. Importez-les ensuite indépendamment pour chaque fichier de données en exécutant des commandes \copy distinctes en parallèle.
Imaginons que vous ayez un fichier de données d’entrée au format CSV contenant 3 millions de lignes à importer. Vous pouvez diviser le fichier en segments contenant chacun 200 000 lignes (soit 15 segments) :
split -l200000 data.csv data_ --additional-suffix=.csv -d
Le résultat est une série de fichiers, de data_00.csv à data_14.csv. Vous pouvez ensuite importer des données à l’aide de 15 commandes \copy parallèles, par exemple :
psql -h dbcluster.limitless-111122223333.aws-region.rds.amazonaws.com -U username -c "\copy test_table from '/tmp/data_00.csv';" postgres_limitless & psql -h dbcluster.limitless-111122223333.aws-region.rds.amazonaws.com -U username -c "\copy test_table FROM '/tmp/data_01.csv';" postgres_limitless & ... psql -h dbcluster.limitless-111122223333.aws-region.rds.amazonaws.com -U username -c "\copy test_table FROM '/tmp/data_13.csv';" postgres_limitless & psql -h dbcluster.limitless-111122223333.aws-region.rds.amazonaws.com -U username -c "\copy test_table FROM '/tmp/data_14.csv';" postgres_limitless
Cette méthode permet d’importer le même volume de données environ 10 fois plus vite qu’en utilisant une seule commande \copy.
Utilisation de la commande COPY pour copier des données Limitless Database dans un fichier
Vous pouvez utiliser la commande \copy
postgres_limitless=> \copy test_table TO '/tmp/test_table.csv' DELIMITER ',' CSV HEADER;