Utilisation de la COPY commande avec la base de données Aurora Postgre SQL Limitless - 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.

Utilisation de la COPY commande avec la base de données Aurora Postgre SQL Limitless

Vous pouvez utiliser la fonctionnalité \ copy de l'psqlutilitaire pour importer et exporter des données dans la base de données Aurora Postgre SQL Limitless.

Utilisation de la COPY commande pour charger des données dans la base de données Aurora Postgre SQL Limitless

La base de données Aurora Postgre SQL Limitless est compatible avec la fonctionnalité \ copy de l'psqlutilitaire d'importation de données.

Dans Limitless Database comme dans Aurora PostgreSQL, les éléments suivants ne sont pas pris en charge :

  • SSHAccès 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 l'exécuter COPY à partir du fichier.

  • Utilisation de fichiers locaux sur l'instance de base de données : utilisez COPY ... FROM STDIN etCOPY ... TO STDOUT.

La COPY commande de Postgre SQL comporte des options permettant de travailler avec 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 COPYla SQL documentation Postgre.

La \copy commande de l'SQLpsqlutilitaire Postgre fonctionne avec les fichiers locaux de l'ordinateur sur lequel vous exécutez le psql client. Il invoque la COPY ... FROM STDOUT commande COPY ... FROM STDIN ou correspondante sur le serveur distant (par exemple, Limitless Database) auquel vous vous connectez. Il lit les données du fichier local STDIN ou y écritSTDOUT.

Fractionnement des données en plusieurs fichiers

Les données sont stockées sur plusieurs partitions dans la base de données Aurora Postgre SQL Limitless. Pour accélérer le chargement des données en utilisant\copy, vous pouvez diviser vos données en plusieurs fichiers. Importez ensuite indépendamment pour chaque fichier de données en exécutant des \copy commandes distinctes en parallèle.

Par exemple, vous avez un fichier de données d'entrée au CSV format de 3 millions de lignes à importer. Vous pouvez diviser le fichier en plusieurs parties contenant chacune 200 000 lignes (15 parties) :

split -l200000 data.csv data_ --additional-suffix=.csv -d

Cela entraîne le transfert de data_00.csv fichiersdata_14.csv. Vous pouvez ensuite importer des données à l'aide de 15 \copy commandes 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

Grâce à cette technique, la même quantité de données est importée environ 10 fois plus rapidement qu'avec une seule \copy commande.

Utilisation de la COPY commande pour copier les données de la base de données Limitless dans un fichier

Vous pouvez utiliser la commande \ copy pour copier des données d'une table illimitée vers un fichier, comme illustré dans l'exemple suivant :

postgres_limitless=> \copy test_table TO '/tmp/test_table.csv' DELIMITER ',' CSV HEADER;