Source par lot Cloud Storage

Cette page fournit des conseils sur la configuration du plug-in source par lot Cloud Storage dans Cloud Data Fusion.

Le plug-in source par lot Cloud Storage vous permet de lire des données à partir de buckets Cloud Storage et de les importer dans Cloud Data Fusion en vue d'un traitement et d'une transformation plus poussés. Il vous permet de charger des données à partir de plusieurs formats de fichier, y compris les suivants:

  • Structuré: CSV, Avro, Parquet, ORC
  • Semi-structurées: JSON, XML
  • Autres: texte, binaire

Avant de commencer

Cloud Data Fusion comporte généralement deux comptes de service:

Avant d'utiliser le plug-in source par lot Cloud Storage, accordez le rôle ou les autorisations suivants à chaque compte de service.

Agent de service de l'API Cloud Data Fusion

Ce compte de service dispose déjà de toutes les autorisations requises. Vous n'avez pas besoin d'ajouter d'autorisations supplémentaires.

Compte de service Compute Engine

Dans votre projet Google Cloud, accordez les autorisations ou rôles IAM suivants au compte de service Compute Engine:

  • Lecteur des anciens buckets Storage (roles/storage.legacyBucketReader) : ce rôle prédéfini contient l'autorisation storage.buckets.get requise.
  • Lecteur des objets Storage (roles/storage.legacyBucketReader). Ce rôle prédéfini contient les autorisations requises suivantes:

    • storage.objects.get
    • storage.objects.list

Configurer le plug-in

  1. Accédez à l'interface Web de Cloud Data Fusion, puis cliquez sur Studio.
  2. Vérifiez que l'option Pipeline de données – Lot est sélectionnée (et non Temps réel).
  3. Dans le menu Source, cliquez sur GCS. Le nœud Cloud Storage apparaît dans votre pipeline.
  4. Pour configurer la source, accédez au nœud Cloud Storage et cliquez sur Propriétés.
  5. Saisissez les propriétés suivantes. Pour obtenir la liste complète, consultez la section Propriétés.

    1. Saisissez un libellé pour le nœud Cloud Storage, par exemple Cloud Storage tables.
    2. Saisissez les détails de la connexion. Vous pouvez configurer une nouvelle connexion ponctuelle ou une connexion existante réutilisable.

      Nouvelle connexion

      Pour ajouter une connexion unique à Cloud Storage, procédez comme suit:

      1. Laissez l'option Utiliser une connexion désactivée.
      2. Dans le champ ID du projet, laissez la valeur définie sur "Détection automatique".
      3. Dans le champ Service account type (Type de compte de service), laissez les valeurs File path (Chemin d'accès au fichier) et Service account file path (Chemin d'accès au fichier de compte de service) sur l'option de détection automatique.

      Connexion réutilisable

      Pour réutiliser une connexion existante, procédez comme suit:

      1. Activez l'option Utiliser une connexion.
      2. Cliquez sur Parcourir les connexions.
      3. Cliquez sur le nom de la connexion, par exemple Cloud Storage Default (Par défaut Cloud Storage).

      4. Facultatif: Si aucune connexion n'existe et que vous souhaitez créer une connexion réutilisable, cliquez sur Ajouter une connexion et reportez-vous aux étapes de l'onglet Nouvelle connexion de cette page.

    3. Dans le champ Nom de la référence, saisissez un nom à utiliser pour la traçabilité, par exemple data-fusion-gcs-campaign.

    4. Dans le champ Chemin d'accès, saisissez le chemin d'accès à lire (par exemple, gs://BUCKET_PATH).

    5. Dans le champ Format, sélectionnez l'un des formats de fichier suivants pour les données en cours de lecture:

      • avro
      • blob (le format de l'objet blob nécessite un schéma contenant un champ nommé "corps" de type octets) ;
      • csv
      • délimitée
      • json
      • parquet
      • text (le format texte nécessite un schéma contenant un champ nommé "corps" de type chaîne)
      • TSV
      • Nom de tout plug-in de format que vous avez déployé dans votre environnement
    6. Facultatif: Pour tester la connectivité, cliquez sur Obtenir un schéma.

    7. Facultatif: dans le champ Taille d'échantillon, saisissez le nombre maximal de lignes à vérifier pour le type de données sélectionné (par exemple, 1000).

    8. Facultatif: dans le champ Remplacer, saisissez les noms des colonnes et les types de données respectifs à ignorer.

    9. Facultatif: saisissez des propriétés avancées, telles qu'une taille minimale de fractionnement ou un filtre de chemin d'accès d'expression régulière (voir Propriétés).

    10. Facultatif: dans le champ Nom du bucket temporaire, saisissez un nom pour le bucket Cloud Storage.

  6. Facultatif: cliquez sur Valider et corrigez les erreurs détectées.

  7. Cliquez sur Fermer. Les propriétés sont enregistrées et vous pouvez continuer à créer votre pipeline de données dans Cloud Data Fusion Studio.

Propriétés

Propriété Macro activée Propriété obligatoire Description
Libellé Non Oui Nom du nœud dans votre pipeline de données.
Utiliser la connexion Non Non Recherchez une connexion réutilisable à la source. Pour en savoir plus sur l'ajout, l'importation et la modification des connexions qui apparaissent lorsque vous parcourez les connexions, consultez Gérer les connexions.
Connexion Oui Oui Si l'option Utiliser la connexion est activée, le nom de la connexion réutilisable que vous avez sélectionnée apparaît dans ce champ.
ID du projet Oui Non Utilisé uniquement lorsque Utiliser la connexion est désactivé. Identifiant global unique pour le projet.
La valeur par défaut est auto-detect.
Type de compte de service Oui Non Sélectionnez l'une des options suivantes:
  • Chemin d'accès au fichier: chemin d'accès au compte de service.
  • JSON : contenu JSON du compte de service.
Chemin d'accès au fichier du compte de service Oui Non Utilisé uniquement lorsque la valeur du type de compte de service est File path (Chemin d'accès au fichier). Chemin d'accès sur le système de fichiers local de la clé de compte de service utilisée pour l'autorisation. Si des jobs sont exécutés sur des clusters Dataproc, définissez la valeur sur "Détection automatique". Si des tâches sont exécutées sur d'autres types de clusters, le fichier doit être présent sur chaque nœud du cluster.
La valeur par défaut est auto-detect.
JSON du compte de service Oui Non Utilisé uniquement lorsque la valeur du type de compte de service est JSON. Contenu du fichier JSON du compte de service.
Reference name (Nom de référence) Non Oui Nom qui identifie de manière unique cette source pour les autres services, tels que la traçabilité et l'annotation de métadonnées.
Chemin d'accès Oui Oui Chemin d'accès aux fichiers à lire. Si un répertoire est spécifié, terminez-le par une barre oblique inverse (/). Par exemple : gs://bucket/path/to/directory/. Pour représenter un modèle de nom de fichier, vous pouvez utiliser un astérisque (*) comme caractère générique. Si aucun fichier n'est trouvé ni mis en correspondance, le pipeline échoue.
Format Non Oui Format des données à lire. Le format doit être l'un des suivants :
  • avro
  • blob (le format de l'objet blob nécessite un schéma contenant un champ nommé "body" de type octets)
  • csv
  • délimitée
  • json
  • parquet
  • text (le format texte nécessite un schéma contenant un champ nommé "corps" de type chaîne)
  • TSV
  • Nom de tout plug-in de format que vous avez déployé dans votre environnement
  • Si le format est une macro, seuls les formats pré-empaquetés peuvent être utilisés
Taille d'échantillon Oui Non Nombre maximal de lignes examinées pour la détection automatique du type de données. La valeur par défaut est 1000.
Remplacer Oui Non Liste de colonnes contenant les données correspondantes à partir desquelles la détection automatique du type de données est ignorée.
Délimiteur Oui Non Délimiteur à utiliser lorsque le format est délimité. Cette propriété est ignorée pour les autres formats.
Activer les valeurs entre guillemets Oui Non Indique s'il faut traiter le contenu placé entre guillemets comme une valeur. Cette propriété n'est utilisée que pour les formats csv, tsv ou délimité. Par exemple, si cette propriété est définie sur "true", les deux champs suivants sont générés: 1, "a, b, c". Le premier champ a la valeur 1. Le second contient a, b, c. Les guillemets sont tronqués. Le délimiteur de nouvelle ligne ne peut pas être entre guillemets.
Le plug-in part du principe que les guillemets sont correctement délimités (par exemple, "a, b, c"). Si vous ne fermez pas un guillemet ("a,b,c,), une erreur est générée.
La valeur par défaut est False.
Utiliser la première ligne pour l'en-tête Oui Non Indique si la première ligne de chaque fichier doit être utilisée comme en-tête de colonne. Les formats acceptés sont text, csv, tsv et Separated (délimité).
La valeur par défaut est False.
Taille minimale des fractionnements Oui Non Taille minimale, en octets, pour chaque partition d'entrée. Des partitions plus petites augmentent le niveau de parallélisme, mais nécessitent davantage de ressources et de frais supplémentaires.
Si la valeur de Format est blob, vous ne pouvez pas fractionner les données.
Taille maximale des fractionnements Oui Non Taille maximale, en octets, pour chaque partition d'entrée. Des partitions plus petites augmentent le niveau de parallélisme, mais nécessitent davantage de ressources et de frais supplémentaires.
Si la valeur de Format est blob, vous ne pouvez pas fractionner les données.
La valeur par défaut est 128 Mo.
Filtre de chemin d'expression régulière Oui Non Expression régulière dont les chemins d'accès aux fichiers doivent correspondre pour être inclus dans l'entrée. Le chemin d'accès complet est comparé, pas seulement le nom de fichier. Si aucun fichier n'est indiqué, aucun filtrage de fichier n'est effectué. Pour en savoir plus sur la syntaxe des expressions régulières, consultez la section Modèle.
Champ du chemin d'accès Oui Non Champ de sortie dans lequel placer le chemin d'accès au fichier à partir duquel l'enregistrement a été lu. S'il n'est pas spécifié, le chemin d'accès n'est pas inclus dans les enregistrements de sortie. S'il est spécifié, le champ doit exister dans le schéma de sortie sous forme de chaîne.
Nom du fichier de chemin d'accès uniquement Oui Non Si une propriété Champ de chemin d'accès est définie, n'utilisez que le nom de fichier et non l'URI du chemin.
La valeur par défaut est False.
Lire les fichiers de manière récursive Oui Non Indique si les fichiers doivent être lus de manière récursive à partir du chemin d'accès.
La valeur par défaut est False.
Autoriser les entrées vides Oui Non Permet d'autoriser ou non un chemin d'entrée ne contenant aucune donnée. Si défini sur False, le plug-in génère une erreur en l'absence de données à lire. Lorsque ce paramètre est défini sur True, aucune erreur n'est générée et aucun enregistrement n'est lu.
La valeur par défaut est False.
Fichier de données chiffré Oui Non Si les fichiers sont chiffrés Pour en savoir plus, consultez la page Chiffrement des fichiers de données.
La valeur par défaut est False.
Suffixe du fichier de métadonnées de chiffrement Oui Non Suffixe du fichier de métadonnées de chiffrement.
La valeur par défaut est metadata (métadonnées).
Propriétés du système de fichiers Oui Non Propriétés supplémentaires à utiliser avec InputFormat lors de la lecture des données.
Encodage des fichiers Oui Non Encodage des caractères des fichiers à lire.
La valeur par défaut est UTF-8.
Schéma de sortie Oui Non Si une propriété Path field (Champ de chemin d'accès) est définie, elle doit être présente dans le schéma en tant que chaîne.

Chiffrement des fichiers de données

Cette section décrit la propriété Chiffrement des fichiers de données. Si vous la définissez sur true, les fichiers sont déchiffrés à l'aide de l'AEAD de streaming fourni par la bibliothèque Tink. Chaque fichier de données doit être accompagné d'un fichier de métadonnées contenant les informations de chiffrement. Par exemple, un fichier de données chiffré dans gs://BUCKET/PATH_TO_DIRECTORY/file1.csv.enc doit contenir un fichier de métadonnées dans gs://BUCKET/ PATH_TO_DIRECTORY/file1.csv.enc.metadata. Le fichier de métadonnées contient un objet JSON possédant les propriétés suivantes:

Propriété Description
kms URI Cloud Key Management Service utilisé pour chiffrer la clé de chiffrement des données.
aad Données authentifiées supplémentaires encodées en base64 et utilisées pour le chiffrement.
key set Objet JSON représentant les informations de la collection de clés sérialisée issues de la bibliothèque Tink.

Exemple

    /* Counting example */
    {

      "kms": "gcp-kms://projects/my-key-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/mykey",

      "aad": "73iT4SUJBM24umXecCCf3A==",

      "keyset": {

          "keysetInfo": {

              "primaryKeyId": 602257784,

              "keyInfo": [{

                  "typeUrl": "type.googleapis.com/google.crypto.tink.AesGcmHkdfStreamingKey",

                  "outputPrefixType": "RAW",

                  "keyId": 602257784,

                  "status": "ENABLED"

              }]

          },

          "encryptedKeyset": "CiQAz5HH+nUA0Zuqnz4LCnBEVTHS72s/zwjpcnAMIPGpW6kxLggSrAEAcJKHmXeg8kfJ3GD4GuFeWDZzgGn3tfolk6Yf5d7rxKxDEChIMWJWGhWlDHbBW5B9HqWfKx2nQWSC+zjM8FLefVtPYrdJ8n6Eg8ksAnSyXmhN5LoIj6az3XBugtXvCCotQHrBuyoDY+j5ZH9J4tm/bzrLEjCdWAc+oAlhsUAV77jZhowJr6EBiyVuRVfcwLwiscWkQ9J7jjHc7ih9HKfnqAZmQ6iWP36OMrEn"

      }

    }
    

Notes de version

Étapes suivantes