Le plug-in de source par lot Cloud Storage vous permet de lire des données provenant de buckets Cloud Storage et de les importer dans Cloud Data Fusion pour les traiter et les transformer. Il vous permet de charger des données à partir de plusieurs formats de fichiers, y compris les suivants :
- Structuré : CSV, Avro, Parquet, ORC
- Semi-structurées : JSON, XML
- Autres : texte, binaire
Avant de commencer
Cloud Data Fusion dispose généralement de deux comptes de service :
- Compte de service au moment de la conception : Agent de service de l'API Cloud Data Fusion
- Compte de service d'exécution : Compte de service Compute Engine
Avant d'utiliser le plug-in de 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'en ajouter d'autres.
Compte de service Compute Engine
Dans votre projet Google Cloud , attribuez les rôles ou autorisations IAM suivants au compte de service Compute Engine :
- Lecteur des anciens buckets Storage (
roles/storage.legacyBucketReader) : ce rôle prédéfini contient l'autorisationstorage.buckets.getrequise. Lecteur des objets de l'espace de stockage (
roles/storage.legacyBucketReader) : ce rôle prédéfini contient les autorisations requises suivantes :storage.objects.getstorage.objects.list
Configurer le plug-in
- Accédez à l'interface Web de Cloud Data Fusion, puis cliquez sur Studio.
- Vérifiez que Pipeline de données – Lot est sélectionné (et non Temps réel).
- Dans le menu Source, cliquez sur GCS. Le nœud Cloud Storage s'affiche dans votre pipeline.
- Pour configurer la source, accédez au nœud Cloud Storage et cliquez sur Propriétés.
Saisissez les propriétés suivantes. Pour obtenir la liste complète, consultez Propriétés.
- Saisissez un libellé pour le nœud Cloud Storage (par exemple,
Cloud Storage tables). Saisissez les informations de connexion. Vous pouvez configurer une nouvelle connexion ponctuelle ou une connexion existante réutilisable.
Nouvelle connexion
Pour ajouter une connexion ponctuelle à Cloud Storage, procédez comme suit :
- Laissez l'option Utiliser la connexion désactivée.
- Dans le champ ID du projet, laissez la valeur sur "Détection automatique".
Dans le champ Type de compte de service, laissez la valeur Chemin d'accès au fichier et le champ Chemin d'accès au fichier du compte de service sur "Détection automatique".
Connexion réutilisable
Pour réutiliser une connexion existante, procédez comme suit :
- Activez l'option Utiliser la connexion.
- Cliquez sur Parcourir les connexions.
Cliquez sur le nom de la connexion, par exemple Cloud Storage par défaut.
Facultatif : Si aucune connexion n'existe et que vous souhaitez en créer une réutilisable, cliquez sur Ajouter une connexion, puis suivez les étapes de l'onglet Nouvelle connexion sur cette page.
Dans le champ Nom de référence, saisissez un nom à utiliser pour la lignée (par exemple,
data-fusion-gcs-campaign).Dans le champ Chemin d'accès, saisissez le chemin d'accès à partir duquel lire (par exemple,
gs://BUCKET_PATH).Dans le champ Format, sélectionnez l'un des formats de fichier suivants pour les données lues :
- avro
- blob (le format blob nécessite un schéma contenant un champ nommé "body" de type bytes)
- csv
- delimited
- json
- parquet
- text (le format texte nécessite un schéma contenant un champ nommé "body" de type chaîne)
- tsv
- Nom de tout plug-in de format que vous avez déployé dans votre environnement
Facultatif : Pour tester la connectivité, cliquez sur Obtenir un schéma.
Facultatif : dans le champ Taille de l'échantillon, saisissez le nombre maximal de lignes à vérifier pour le type de données sélectionné (par exemple,
1000).Facultatif : dans le champ Remplacer, saisissez les noms des colonnes et leurs types de données respectifs à ignorer.
Facultatif : saisissez des propriétés avancées, comme une taille de fractionnement minimale ou un filtre de chemin d'expression régulière (voir Propriétés).
Facultatif : Dans le champ Nom du bucket temporaire, saisissez un nom pour le bucket Cloud Storage.
- Saisissez un libellé pour le nœud Cloud Storage (par exemple,
Facultatif : cliquez sur Valider et corrigez les éventuelles erreurs.
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é requise | Description |
|---|---|---|---|
| Label | 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 s'affichent 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 sélectionnez s'affiche dans ce champ. |
| ID du projet | Oui | Non | Utilisé uniquement lorsque l'option Utiliser la connexion est désactivée. Identifiant unique au niveau mondial 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 du compte de service | Oui | Non | Utilisé uniquement lorsque la valeur du type de compte de service est 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 les jobs s'exécutent sur des clusters Managed Service for Apache Spark, définissez la valeur sur "Détection automatique". Si les jobs s'exécutent 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. |
| Nom de référence | Non | Oui | Nom qui identifie de manière unique cette source pour d'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 chemin d'accès par une barre oblique inverse (/). Par exemple, gs://bucket/path/to/directory/. Pour faire correspondre 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é ou ne correspond, le pipeline échoue. |
| Format | Non | Oui | Format des données à lire. Le format doit être l'un des suivants :
|
| Taille de l'é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 1 000. |
| Remplacer | Oui | Non | Liste des colonnes avec les données correspondantes pour lesquelles 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 si le contenu entre guillemets doit être traité comme une valeur. Cette propriété n'est utilisée que pour les formats csv, tsv ou delimited. Par exemple, si cette propriété est définie sur "true", la sortie suivante affiche deux champs : 1, "a, b, c".
La valeur du premier champ est 1. Le deuxième a a, b, c. Les guillemets sont supprimés. Le délimiteur de saut de ligne ne peut pas être entre guillemets.Le plug-in suppose que les guillemets sont correctement fermés, par exemple, "a, b, c". Si vous n'insérez pas de guillemet de fin ("a,b,c,), une erreur se produit.La valeur par défaut est False (Faux). |
| 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 delimited. La valeur par défaut est False. |
| Taille minimale de la fraction | Oui | Non | Taille minimale, en octets, pour chaque partition d'entrée. Les partitions plus petites augmentent le niveau de parallélisme, mais nécessitent plus de ressources et de frais généraux.
Si la valeur Format est blob, vous ne pouvez pas fractionner les données. |
| Taille maximale de la répartition | Oui | Non | Taille maximale, en octets, pour chaque partition d'entrée. Les partitions plus petites augmentent le niveau de parallélisme, mais nécessitent plus de ressources et de frais généraux.
Si la valeur 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 à laquelle les chemins d'accès aux fichiers doivent correspondre pour être inclus dans l'entrée. Le chemin d'accès complet est comparé, et pas seulement le nom du 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 Pattern. |
| Champ "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. Si ce paramètre n'est pas spécifié, le chemin d'accès n'est pas inclus dans les enregistrements de sortie. Si ce paramètre est spécifié, le champ doit exister dans le schéma de sortie sous forme de chaîne. |
| Nom de fichier du chemin uniquement | Oui | Non | Si une propriété Champ "Chemin d'accès" est définie, n'utilisez que le nom du fichier et non l'URI du chemin d'accès. 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 une entrée vide | Oui | Non | Indique s'il faut autoriser un chemin d'accès à une entrée qui ne contient aucune donnée. Lorsque la valeur est définie sur False, le plug-in génère une erreur lorsqu'il n'y a aucune donnée à lire. Si la valeur est définie 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 | Indique si les fichiers sont chiffrés. Pour en savoir plus, consultez 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 nom de fichier pour le fichier de métadonnées de chiffrement. La valeur par défaut est metadata. |
| 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é Champ de chemin d'accès est définie, elle doit être présente dans le schéma sous forme de chaîne. |
Chiffrement des fichiers de données
Cette section décrit la propriété Chiffrement du fichier de données. Si vous le définissez sur true, les fichiers sont déchiffrés à l'aide de Streaming AEAD 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ées à l'emplacement gs://BUCKET/PATH_TO_DIRECTORY/file1.csv.enc
doit avoir un fichier de métadonnées à l'emplacement gs://BUCKET/
PATH_TO_DIRECTORY/file1.csv.enc.metadata. Le fichier de métadonnées contient un objet JSON avec 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 utilisées pour le chiffrement. |
key set |
Objet JSON représentant les informations de la collection de clés sérialisées 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
- En savoir plus sur les plug-ins dans Cloud Data Fusion