Présentation des transferts Amazon S3

Le service de transfert de données BigQuery pour Amazon S3 vous permet de planifier et de gérer automatiquement les tâches de chargement récurrentes à partir d'Amazon S3 dans BigQuery.

Formats de fichiers acceptés

Le service de transfert de données BigQuery est actuellement compatible avec le chargement de données à partir d'Amazon S3 dans l'un des formats suivants :

  • Valeurs séparées par une virgule (CSV)
  • JSON (délimité par un retour à la ligne)
  • Avro
  • Parquet
  • ORC

Types de compression acceptés

Le service de transfert de données BigQuery pour Amazon S3 accepte le chargement de données compressées. Les types de compression acceptés par le service de transfert de données BigQuery sont identiques aux types de compression acceptés par les tâches de chargement BigQuery. Pour en savoir plus, consultez la section Charger des données compressées et non compressées.

Prérequis Amazon S3

Pour charger des données à partir d'une source de données Amazon S3, vous devez :

  • indiquer l'URI Amazon S3 pour vos données source ;
  • avoir votre ID de clé d'accès ;
  • avoir votre clé d'accès secrète ;
  • définir au minimum la stratégie AWS gérée AmazonS3ReadOnlyAccess sur vos données source Amazon S3.

URI Amazon S3

Lorsque vous spécifiez l'URI Amazon S3, le chemin d'accès doit être au format s3://bucket/folder1/folder2/.... Seul le nom du compartiment de niveau supérieur est requis. Les noms de dossier sont facultatifs. Si vous spécifiez un URI comprenant uniquement le nom du bucket, tous les fichiers du bucket sont transférés et chargés dans BigQuery.

Paramétrer l'exécution du transfert Amazon S3

L'URI Amazon S3 et la table de destination peuvent être tous deux paramétrés, ce qui vous permet de charger des données à partir de compartiments Amazon S3 organisées par date. Notez que la partie compartiment de l'URI ne peut pas être paramétrée. Les paramètres utilisés par les transferts Amazon S3 sont les mêmes que ceux utilisés par les transferts Cloud Storage.

Pour plus de détails, reportez-vous à la section Utiliser des paramètres d'exécution dans les transferts.

Compatibilité des caractères génériques avec les URI Amazon S3

Si vos données source sont séparées en plusieurs fichiers partageant un nom de base commun, vous pouvez utiliser un caractère générique dans l'URI lorsque vous chargez les données. Un caractère générique est constitué d'un astérisque (*) et peut être utilisé n'importe où dans l'URI Amazon S3, sauf dans le nom du compartiment.

Bien que vous puissiez utiliser plusieurs caractères génériques dans l'URI Amazon S3, spécifier un seul caractère générique permet certaines optimisations :

  • Il existe une limite plus élevée sur le nombre maximal de fichiers par exécution de transfert.

  • Le caractère générique couvre également les répertoires. Par exemple, le fichier s3://my-bucket/my-folder/my-subfolder/my-file.csv sera mis en correspondance avec l'URI Amazon S3 s3://my-bucket/*.csv.

Exemples d'URI Amazon S3

Exemple 1

Pour charger un unique fichier depuis Amazon S3 vers BigQuery, spécifiez l'URI Amazon S3 de ce fichier.

s3://my-bucket/my-folder/my-file.csv

Exemple 2

Pour charger tous les fichiers d'un compartiment Amazon S3 dans BigQuery, spécifiez uniquement le nom du compartiment, avec ou sans caractère générique.

s3://my-bucket/

ou

s3://my-bucket/*

Notez que s3://my-bucket* n'est pas un URI Amazon S3 autorisé, car il est interdit d'utiliser un caractère générique dans le nom du compartiment.

Exemple 3

Pour charger depuis Amazon S3 tous les fichiers partageant un préfixe commun, spécifiez ce préfixe suivi d'un caractère générique.

s3://my-bucket/my-folder/*

Contrairement au chargement de l'ensemble des fichiers d'un compartiment Amazon S3 de niveau supérieur, il faut ici spécifier le caractère générique à la fin de l'URI Amazon S3 pour que les fichiers puissent être chargés.

Exemple 4

Pour charger depuis Amazon S3 tous les fichiers ayant un chemin similaire, spécifiez le préfixe commun suivi d'un caractère générique.

s3://my-bucket/my-folder/*.csv

Exemple 5

Notez que les caractères génériques s'appliquent également aux répertoires. Ainsi, tous les fichiers csv figurant dans my-folder ainsi que dans les sous-dossiers de my-folder seront chargés dans BigQuery.

Si ces fichiers sources figurent dans un dossier logs :

s3://my-bucket/logs/logs.csv
s3://my-bucket/logs/system/logs.csv
s3://my-bucket/logs/some-application/system_logs.log
s3://my-bucket/logs/logs_2019_12_12.csv

l'URI suivant les identifie en totalité :

s3://my-bucket/logs/*

Exemple 6

Si vous disposez des fichiers sources suivants, mais que vous souhaitez transférer uniquement ceux portant le nom logs.csv :

s3://my-bucket/logs.csv
s3://my-bucket/metadata.csv
s3://my-bucket/system/logs.csv
s3://my-bucket/system/users.csv
s3://my-bucket/some-application/logs.csv
s3://my-bucket/some-application/output.csv

l'URI suivant identifie tous les fichiers nommés logs.csv :

s3://my-bucket/*logs.csv

Exemple 7

Utiliser plusieurs caractères génériques vous donne davantage de contrôle sur la sélection des fichiers à transférer, au prix de limites plus faibles. Si vous utilisez plusieurs caractères génériques, la correspondance s'arrête pour chacun d'eux à la fin du chemin dans un sous-répertoire. Par exemple, prenons le cas des fichiers source suivants dans Amazon S3 :

s3://my-bucket/my-folder1/my-file1.csv
s3://my-bucket/my-other-folder2/my-file2.csv
s3://my-bucket/my-folder1/my-subfolder/my-file3.csv
s3://my-bucket/my-other-folder2/my-subfolder/my-file4.csv

Si vous avez l'intention de transférer uniquement my-file1.csv et my-file2.csv, utilisez la valeur suivante pour l'URI Amazon S3 :

s3://my-bucket/*/*.csv

Étant donné qu'aucun des caractères génériques ne peut s'appliquer à plusieurs répertoires, cet URI restreint le transfert aux fichiers CSV se trouvant dans my-folder1 et my-other-folder2. Les sous-dossiers ne seront pas inclus dans le transfert.

Clés d'accès AWS

L'ID de clé d'accès et la clé d'accès secrète permettent d'accéder aux données Amazon S3 en votre nom. Il est recommandé de créer un ID de clé d'accès et une clé d'accès secrète uniques spécifiquement pour les transferts Amazon S3 afin de donner un accès minimal au service de transfert de données BigQuery. Pour plus d'informations sur la gestion de vos clés d'accès, consultez la documentation de référence générale AWS.

Considérations relatives à la cohérence

Lorsque vous transférez des données à partir d'Amazon S3, il est possible que certaines de vos données ne soient pas transférées vers BigQuery, en particulier si les fichiers ont été ajoutés au compartiment très récemment. Après son ajout au compartiment, il faut attendre environ 10 minutes avant qu'un fichier ne soit disponible pour le service de transfert de données BigQuery.

Dans certains cas, cependant, cela peut prendre plus de 10 minutes. Pour réduire le risque de données manquantes, programmez vos transferts Amazon S3 au moins 10 minutes après l'ajout de vos fichiers au compartiment. Pour plus d'informations sur le modèle de cohérence Amazon S3, consultez la page Modèle de cohérence des données Amazon S3 dans la documentation Amazon S3.

Bonnes pratiques relatives aux coûts de sortie

Les transferts depuis Amazon S3 peuvent échouer si la table de destination n'a pas été correctement configurée. Une configuration incorrecte peut résulter des problèmes suivants :

  • La table de destination n'existe pas.
  • Le schéma de la table n'est pas défini.
  • Le schéma de la table n'est pas compatible avec les données transférées.

Pour éviter les coûts de sortie Amazon S3, commencez par réaliser un transfert de test sur un sous-ensemble restreint mais représentatif des fichiers. Restreint signifie ici que le test doit porter sur un petit nombre de fichiers, eux-mêmes de petite taille.

Tarifs

Pour plus d'informations sur la tarification du service de transfert de données BigQuery, consultez la page Tarifs.

Notez qu'en utilisant ce service, des coûts peuvent être engagés en dehors de Google. Veuillez consulter la page de tarification d'Amazon S3 pour plus de détails.

Quotas et limites

Le service de transfert de données BigQuery utilise des tâches de chargement pour charger des données Amazon S3 dans BigQuery. Tous les quotas et limites BigQuery associés aux tâches de chargement s'appliquent aux transferts récurrents Amazon S3, avec les considérations supplémentaires suivantes.

Valeur Limit
Taille maximale par exécution de transfert de tâche de chargement 15 To
Nombre maximal de fichiers par exécution de transfert lorsque l'URI Amazon S3 comporte 0 ou 1 caractère générique 10 000 000 fichiers
Nombre maximal de fichiers par exécution de transfert lorsque l'URI Amazon S3 comporte plusieurs caractères génériques 10 000 fichiers

Étapes suivantes