Importation de données depuis Amazon S3 vers votre cluster de SQL base de données Aurora Postgre RDS - 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.

Importation de données depuis Amazon S3 vers votre cluster de SQL base de données Aurora Postgre RDS

Vous importez des données depuis votre compartiment Amazon S3 en utilisant la fonction table_import_from_s3 de l'extension aws_s3. Pour obtenir des informations de référence, consultez aws_s3.table_import_from_s3.

Note

Les exemples suivants utilisent la méthode des IAM rôles pour autoriser l'accès au compartiment Amazon S3. Les appels de fonction aws_s3.table_import_from_s3 n'incluent donc aucun paramètre d'informations d'identification.

L'exemple suivant montre un exemple typique.

postgres=> SELECT aws_s3.table_import_from_s3( 't1', '', '(format csv)', :'s3_uri' );

Les paramètres sont les suivants :

  • t1— Nom de la table de l' de SQL cluster de base de données Postgre dans laquelle copier les données.

  • '' – Liste facultative des colonnes de la table de base de données. Vous pouvez utiliser ce paramètre pour indiquer quelles colonnes des données S3 sont copiées dans quelles colonnes de table. Si aucune colonne n'est spécifiée, toutes les colonnes sont copiées dans la table. Pour obtenir un exemple d'utilisation d'une liste de colonnes, veuillez consulter Importation d'un fichier Amazon S3 qui utilise un délimiteur personnalisé.

  • (format csv)— SQL COPY Arguments postgres. Le processus de copie utilise les arguments et le format de la SQL COPY commande Postgre pour importer les données. Les choix de format incluent la valeur séparée par des virgules (CSV) comme indiqué dans cet exemple, le texte et le binaire. Par défaut, il s'agit de texte.

  • s3_uri – Structure contenant les informations d'identification du fichier Amazon S3. Pour obtenir un exemple d'utilisation de la fonction aws_commons.create_s3_uri pour créer une structure s3_uri, consultez Présentation de l'importation de données à partir de données Amazon S3.

Pour de plus amples informations sur cette fonction, veuillez consulter aws_s3.table_import_from_s3.

La fonction aws_s3.table_import_from_s3 retourne du texte. Pour spécifier d'autres types de fichiers à importer à partir d'un compartiment Amazon S3, consultez l'un des exemples suivants.

Note

L'importation d'un fichier de 0 octet entraîne une erreur.

Importation d'un fichier Amazon S3 qui utilise un délimiteur personnalisé

L'exemple suivant montre comment importer un fichier qui utilise un délimiteur personnalisé. Il montre également comment définir l'emplacement de destination des données dans la table de base de données à l'aide du paramètre column_list de la fonction aws_s3.table_import_from_s3.

Pour cet exemple, supposons que les informations suivantes sont organisées en colonnes délimitées par une barre verticale dans le fichier Amazon S3.

1|foo1|bar1|elephant1 2|foo2|bar2|elephant2 3|foo3|bar3|elephant3 4|foo4|bar4|elephant4 ...
Pour importer un fichier qui utilise un délimiteur personnalisé
  1. Créez une table dans la base de données pour les données importées.

    postgres=> CREATE TABLE test (a text, b text, c text, d text, e text);
  2. Utilisez le format suivant de la fonction aws_s3.table_import_from_s3 pour importer des données à partir du fichier Amazon S3.

    Vous pouvez inclure l'appel de fonction aws_commons.create_s3_uri en ligne au sein de l'appel de fonction aws_s3.table_import_from_s3 pour spécifier le fichier.

    postgres=> SELECT aws_s3.table_import_from_s3( 'test', 'a,b,d,e', 'DELIMITER ''|''', aws_commons.create_s3_uri('amzn-s3-demo-bucket', 'pipeDelimitedSampleFile', 'us-east-2') );

Les données se retrouvent désormais dans la table dans les colonnes suivantes.

postgres=> SELECT * FROM test; a | b | c | d | e ---+------+---+---+------+----------- 1 | foo1 | | bar1 | elephant1 2 | foo2 | | bar2 | elephant2 3 | foo3 | | bar3 | elephant3 4 | foo4 | | bar4 | elephant4

Importation d'un fichier compressé Amazon S3 (gzip)

L'exemple suivant montre comment importer un fichier compressé avec gzip à partir d'Amazon S3. Le fichier que vous importez doit comporter les métadonnées Amazon S3 suivantes :

  • Clé : Content-Encoding

  • Valeur : gzip

Si vous chargez le fichier à l'aide du AWS Management Console, les métadonnées sont généralement appliquées par le système. Pour plus d'informations sur le chargement de fichiers vers Amazon S3 à l'aide du AWS Management Console, le AWS CLI, ou la API section Chargement d'objets dans le guide de l'utilisateur d'Amazon Simple Storage Service.

Pour de plus amples informations sur les métadonnées Amazon S3 et les métadonnées fournies par le système, veuillez consulter Editing object metadata in the Amazon S3 console dans le Guide de l'utilisateur Amazon Simple Storage Service.

Importez le fichier gzip dans votre cluster de SQL base de données Aurora Postgre RDS .

postgres=> CREATE TABLE test_gzip(id int, a text, b text, c text, d text); postgres=> SELECT aws_s3.table_import_from_s3( 'test_gzip', '', '(format csv)', 'amzn-s3-demo-bucket', 'test-data.gz', 'us-east-2' );

Importation d'un fichier codé Amazon S3

L'exemple suivant montre comment importer un fichier codé en Windows-1252 à partir d'Amazon S3.

postgres=> SELECT aws_s3.table_import_from_s3( 'test_table', '', 'encoding ''WIN1252''', aws_commons.create_s3_uri('amzn-s3-demo-bucket', 'SampleFile', 'us-east-2') );