# Google Cloud Storage

Google Cloud Storage est le service de stockage d'objets unifié de Google pour le stockage des et l'accès aux données sur l'infrastructure Google Cloud. Il offre une haute disponibilité, une redondance globale et s'intègre à l'écosystème Google Cloud plus large.

Qlik Talend Cloud utilise un compte de service Google Cloud avec un accès en lecture sur le compartiment cible pour se connecter à Google Cloud Storage (GCS). Le connecteur récupère les fichiers auprès du compartiment spécifié, découvre automatiquement les schémas en échantillonnant le contenu des fichiers et effectue une réplication de données incrémentielle basée sur les horodatages de modification des fichiers.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Connecting-Google-Cloud-Storage.htm)

#### Instantané des fonctions

Présentation générale de ce connecteur, y compris des liens utiles et les fonctions supportées.

| Caractéristique/Fonctionnalité | Détails du support |
| --- | --- |
| Projets Qlik Talend Data Integration supportés | [Projets de réplication](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/data-replication-task.htm) uniquement. Les projets de pipeline de données ne sont pas supportés. |
| [Méthodes de mise à jour de la cible](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/Change-processing.htm) | Tâches de réplication :<br><br><ul><li><p>Appliquer les modifications</p></li><li><p>Stocker les modifications</p></li></ul><br><br>Tâches de dépôt temporaire de données dans un lac de données :<br><br><ul><li><p>Change Data Capture (CDC)</p></li></ul> |
| [Connexion à des applications SaaS](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm#Managing) | La génération manuelle de métadonnées n'est pas nécessaire. |
| [Évolution automatique du schéma](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Schema) | Seule l'opération Modifier le type de données de la colonne est supportée. |
| Réplication de colonnes LOB (NCLOB, CLOB et BLOB) | Non supporté. |
| Opération CDC planifiée | Requis. C'est ainsi que la cible est mise à jour en fonction des modifications apportées à la source.<br><br>Pour les tâches de réplication, consultez [Planification de tâches](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings.htm#Scheduli2).<br><br>Pour les tâches de dépôt temporaire dans un lac, consultez [Planification de CDC pour les tâches de dépôt temporaire dans un lac](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/landing-datalakes-settings.htm#Scheduli2). |
| Notifications | Partiellement supporté<br><br>[Définition de notifications en cas de modifications du fonctionnement](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Notifications.htm) |
| Monitoring | CDC uniquement, car Chargement complet n'est pas pertinent pour ce connecteur.<br><br>[Surveillance d'une tâche de données individuelle](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Introduction/Monitoring-data-tasks.htm) |
| Désimbrication automatique des charges utiles des colonnes JSON | Non supporté. Les charges utiles des colonnes JSON des jeux de données sources ne sont pas automatiquement désimbriquées sur la cible. |

## Préparation pour l'authentification

Pour pouvoir accéder à vos données, vous devez authentifier la connexion à l'aide des informations d'identification de votre compte.

Note InformationsAssurez-vous que le compte que vous utilisez dispose d'un accès en lecture sur les tables à récupérer.

Pour pouvoir configurer votre compte Google Cloud Storage, vous avez besoin des éléments suivants :

* Un projet Google Cloud Platform (GCP) avec l'API Cloud Storage activée.

* Un compartiment Google Cloud Storage (GCS) contenant les fichiers à répliquer.

* Un compte de service avec un accès en lecture sur le compartiment.

  Le rôle recommandé est Storage Object Viewer (`roles/storage.objectViewer`), qui accorde les autorisations `storage.objects.get` et `storage.objects.list` requises. Pour plus d'informations, consultez la [documentation sur les rôles IAM Google Cloud Storage](https://docs.cloud.google.com/storage/docs/access-control/iam-roles).

* Un fichier de clé JSON de compte de service téléchargé pour le compte de service.

Pour créer un compte de service et récupérer vos identifiants :

1. Connectez-vous à votre compte [Google Cloud](https://accounts.google.com/v3/signin/identifier?authuser=0&ec=GAlAywI&hl=en&flowName=GlifWebSignIn&flowEntry=AddSession&dsh=S-1020015778%3A1777897358935634).

2. Accédez à IAM & Admin &gt; Service Accounts.

3. Cliquez sur Create Service Account.

4. Saisissez un nom et une description pour le compte de service, puis cliquez sur Create and Continue.

5. Attribuez au compte de service le rôle Storage Object Viewer ou un rôle personnalisé disposant d'autorisations `storage.objects.get` et `storage.objects.list`.

6. Cliquez sur Continue et sur Done.

7. Dans le compte de service que vous venez de créer, cliquez sur le menu Actions.

8. Accédez à Manage keys &gt; Add key &gt; Create new key.

9. Sélectionnez JSON et cliquez sur Create.

   Le fichier de clé JSON est téléchargé directement sur votre poste. Ce fichier inclut les champs `project_id`, `client_email`, et `private_key` nécessaires pour établir la connexion.

   Vous ne pouvez télécharger le fichier de clé qu'une seule fois. Assurez-vous de le stocker en lieu sûr et de le sauvegarder, car il donne accès à vos ressources Google Cloud.

### Formats de fichier supportés

* Texte délimité : CSV, TSV, PSV, TXT (avec délimiteur configurable)
* JSON Lines `.jsonl`
* Parquet (`.parquet`)
* Avro (`.avro`)
* Fichiers compressés au format gzip (`.gz`) contenant l'un des formats ci-dessus
* Archives ZIP contenant des fichiers CSV, JSON Lines, TXT, TSV, PSV ou Gzip

## Création de la connexion

Pour plus d'informations, consultez [Connexion à des applications SaaS](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm).

1. Complétez les propriétés de connexion requises.

2. Fournissez un nom pour la connexion dans Nom de la connexion.

3. Sélectionnez Ouvrir les métadonnées de connexion pour définir les métadonnées de la connexion lors de sa création.

4. Cliquez sur Créer.

Paramètres de connexion

| Paramètre | Description |
| --- | --- |
| Data gateway | Sélectionnez une Passerelle de déplacement des données si cela est nécessaire pour votre cas d'utilisation.<br><br>Note Informations<br><br>Ce champ n'est pas disponible avec l'abonnement Démarreur Qlik Talend Cloud, car il ne supporte pas Passerelle de déplacement des données. Si vous avez un autre niveau d'abonnement et si vous ne souhaitez pas utiliser Passerelle de déplacement des données, sélectionnez Aucune.<br><br>Pour des informations sur les avantages de Passerelle de déplacement des données et les cas d'utilisation qui la nécessitent, consultez [Passerelle de données Qlik - Déplacement des données](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm). |
| Date de début | Saisissez la date, au format `MM/DD/YYYY`, à partir de laquelle les données doivent être répliquées de votre source vers votre cible. |
| Client Email | E-mail client du fichier de clé JSON du compte de service. |
| ID de projet | ID de projet du fichier de clé JSON du compte de service. |
| Compartiment | Nom du compartiment Google Cloud Storage (GCS) dans lequel les fichiers sont stockés, par exemple, `my-gcs-bucket`.<br><br>N'incluez pas le préfixe `gs://`. |
| Tables | Configurez les tables de sorte à pouvoir déterminer les fichiers qui sont lus et la manière dont leur contenu est interprété. Chaque définition de table comprend un modèle de recherche de fichiers, un nom de table et des paramètres facultatifs pour un comportement avancé. |
| Private Key | Clé privée du fichier de clé JSON du compte de service. |

### Configuration d'une table

Chaque entrée de la configuration de table spécifie une table logique créée à partir de fichiers dans le compartiment cible. Vous pouvez configurer les propriétés suivantes pour chaque table :

| Propriété | Obligatoire ou facultatif | Description |
| --- | --- | --- |
| Table Name | Obligatoire | Spécifiez un nom pour la table logique, par exemple, `my_orders_csv`. Ce nom apparaîtra comme le nom du flux dans Qlik Talend Cloud. |
| Search Pattern | Obligatoire | Saisissez une expression régulière correspondant aux noms de fichier, par exemple, `.*\.csv$` pour sélectionner tous les fichiers CSV. Le connecteur utilise la syntaxe de modèle de recherche regex et glob. Dans une expression régulière (regex), `*.csv` ne correspond pas aux noms de fichier CSV, car `*` doit suivre une expression à répéter. Utilisez des modèles tels que `\.csv$` ou `.*\.csv$` pour faire correspondre des noms de fichier comme `report.csv` et `my.data.csv`. |
| Search Prefix | Facultatif | Fournissez un préfixe de chemin d'accès dans le compartiment pour affiner la recherche de fichiers, par exemple `exports/orders/`. L'utilisation d'un préfixe améliore les performances en limitant le nombre de fichiers analysés. |
| Key Properties | Facultatif | Répertoriez un ou plusieurs noms de colonne, séparés par des virgules, pour définir la clé primaire. Par exemple : `id` ou `id,date`. |
| Date Overrides | Facultatif | Répertoriez les noms de colonne, séparés par des virgules, à traiter comme des champs date-time. Utilisez cette option si ces champs ne sont pas automatiquement détectés lors de la découverte de schéma. |
| Delimiter | Facultatif | Spécifiez le caractère qui sépare les valeurs dans vos fichiers. Par défaut, il s'agit de `,` (virgule). Utilisez `\t` pour les fichiers délimités par des tabulations (TSV) ou `\|` pour les fichiers séparés par des barres verticales (PSV). Si cette valeur est laissée vide, le système détecte automatiquement le délimiteur en fonction de l'extension de fichier. |

### Tables répliquées

Les tables sont créées en fonction de la configuration de table (voir ci-dessus). Chaque table correspond à un ensemble de fichiers dans le compartiment Google Cloud Storage (GCS) qui correspondent à la fois au modèle de recherche spécifié et à tout préfixe facultatif. Le connecteur découvre automatiquement les schémas en échantillonnant jusqu'à cinq fichiers par table, en lisant une ligne toutes les cinq lignes, avec un maximum de 1 000 enregistrements par fichier.

La réplication est incrémentielle et utilise les horodatages de modification des fichiers pour suivre les modifications. Lors de chaque extraction, le connecteur ne traite que les fichiers qui ont été modifiés depuis la dernière synchronisation aboutie, telle qu'enregistrée par le signet de synchronisation.

Les colonnes système suivantes sont ajoutées à chaque table par défaut :

| Colonne | Description |
| --- | --- |
| `_sdc_source_bucket` | Nom du compartiment Google Cloud Storage (GCS) dans lequel l'enregistrement a été lu. |
| `_sdc_source_file` | Chemin d'accès complet au fichier contenant l'enregistrement. |
| `_sdc_source_lineno` | Numéro de ligne de l'enregistrement dans le fichier. |
| `_sdc_extra` | Toutes les colonnes supplémentaires trouvées lors de l'analyse qui ne correspondent pas au schéma découvert. S'applique uniquement aux fichiers JSONL. |

## Limitations et considérations générales

* Les identifiants de compte de service (`project_id`, `client_email`, `private_key`) doivent être fournis comme des valeurs individuelles extraites du fichier de clé JSON ; le chargement de fichier n'est pas supporté.
* Les fichiers compressés au format gzip (`.gz`) sont supportés. Le connecteur lit le nom de fichier original de l'en-tête gzip pour déterminer le format de fichier interne. Les fichiers gzip créés avec `--no-name` (sans nom de fichier stocké dans l'en-tête) sont ignorés.
* La compression imbriquée (par exemple, un fichier `.gz` à l'intérieur d'un autre `.gz` ou un fichier `.zip` à l'intérieur d'un autre `.zip`) n'est pas supportée. Ces fichiers sont ignorés.
* Les fichiers portant l'extension `.csv`, `.txt`, `.tsv`, `.psv` ou `.jsonl` sont vérifiés, à la recherche d'octets magiques gzip, et sont décompressés s'ils sont compressés au format gzip, même si le fichier n'a pas d'extension `.gz`.
* Le champ `search_pattern` utilise la syntaxe de modèle de recherche regex et glob. Dans une expression régulière (regex), `*.csv` ne correspond pas aux noms de fichier CSV, car `*` doit suivre une expression à répéter. Utilisez `.*\.csv$` pour faire correspondre des noms de fichier tels que `report.csv` et `my.data.csv`.
* Le connecteur intègre une logique de nouvelle tentative intégrée avec un backoff exponentiel pour les limites de débit d'API Google Cloud Storage (GCS) (`429`) et les erreurs de serveur transitoires (`500`, `502`, `503`, `504`). Jusqu'à cinq tentatives sont effectuées avant l'échec.
* Les fichiers sans extension reconnue sont ignorés et un avertissement est émis.