Source de lot BigQuery

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

Le plug-in source BigQuery vous permet de vous connecter et de charger des données à partir de tables BigQuery. Les données d'une table BigQuery sont exportées vers un emplacement temporaire dans Cloud Storage, puis lues dans le pipeline à partir de cet emplacement.

Avant de commencer

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

Avant d'utiliser le plug-in de source par lot BigQuery, accordez les rôles ou 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. Pour information, il dispose des autorisations suivantes :

  • bigquery.datasets.get
  • bigquery.tables.create
  • bigquery.tables.get
  • bigquery.tables.updateData
  • bigquery.tables.update
  • bigquery.tables.export

Si vous utilisez un compte de service d'espace de noms en plus du compte de service par défaut au moment de la conception, ajoutez-lui les autorisations de la liste précédente.

Compte de service Compute Engine

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

  • Utilisateur de job BigQuery (roles/bigquery.jobUser) : ce rôle prédéfini contient l'autorisation bigquery.jobs.create requise.
  • Éditeur de données BigQuery (roles/bigquery.dataEditor). Ce rôle prédéfini contient les autorisations requises suivantes :

    • bigquery.datasets.get
    • bigquery.tables.create
    • bigquery.tables.get
    • bigquery.tables.updateData
    • bigquery.tables.update
    • bigquery.tables.export

Ces rôles et autorisations peuvent également être attribués au niveau de l'ensemble de données ou de la table BigQuery, selon votre cas d'utilisation.

  • Rédacteur des anciens buckets Storage (roles/storage.legacyBucketWriter). Ce rôle prédéfini contient les autorisations requises suivantes :

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

Ce rôle et ces autorisations peuvent également être attribués au bucket Cloud Storage, en fonction de votre cas d'utilisation.

Configurer le plug-in

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

    1. Saisissez un libellé pour le nœud BigQuery (par exemple, BigQuery tables).
    2. 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 à BigQuery, procédez comme suit :

      1. Dans le champ ID du projet, laissez la valeur sur "Détection automatique".
      2. Si l'ensemble de données BigQuery se trouve dans un autre projet, saisissez son ID dans le champ ID du projet de l'ensemble de données.
      3. Dans le champ Type de compte de service, sélectionnez l'une des options suivantes et saisissez le contenu dans le champ suivant :

        • Chemin d'accès au fichier
        • JSON

      Connexion réutilisable

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

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

      4. 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.

    3. Dans le champ Nom de référence, saisissez un nom à utiliser pour la lignée.

    4. Facultatif : Si votre ensemble de données est déjà disponible dans votre instance, cliquez sur Parcourir et sélectionnez les données à lire.

    5. Dans le champ Ensemble de données, saisissez le nom de l'ensemble de données contenant la table.

    6. Dans le champ Table, saisissez le nom de la table.

    7. Pour tester la connectivité, cliquez sur Obtenir un schéma.

    8. Facultatif : Dans le champ Date de début de la partition, saisissez la chaîne de date de début inclusive (par exemple, 2021-01-11).

    9. Facultatif : Dans le champ Date de fin de la partition, saisissez la chaîne de date de fin incluse (par exemple, 2024-01-11).

    10. Facultatif : Dans le champ Filtrer, saisissez une clause WHERE BigQuery.

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

    12. Facultatif : Dans le champ Nom de la clé de chiffrement, saisissez le nom de la clé de chiffrement Cloud Key Management Service (Cloud KMS). Pour en savoir plus, consultez Obtenir le nom de ressource de la clé.

    13. Facultatif : Activez l'option Activer les vues de requête. Si vous les activez, procédez comme suit :

      • Dans le champ Projet de création de table temporaire, saisissez le nom du projet dans lequel la table temporaire est créée.
      • Dans le champ Ensemble de données de création de table temporaire, saisissez le nom de l'ensemble de données dans lequel la table temporaire est créée.
    14. Facultatif : Cliquez sur Valider et corrigez les erreurs détectées.

    15. Cliquez sur Fermer. Les propriétés sont enregistrées et vous pouvez continuer à créer votre pipeline de données dans l'interface Web de Cloud Data Fusion.

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 dans lequel le job BigQuery s'exécute.
La valeur par défaut est auto-detect.
ID du projet de l'ensemble de données Oui Non Utilisé uniquement lorsque l'option Utiliser la connexion est désactivée. Si l'ensemble de données se trouve dans un projet différent de celui dans lequel le job BigQuery s'exécute, cette valeur correspond à l'identifiant unique global du projet contenant l'ensemble de données BigQuery. Si aucune valeur n'est spécifiée, le champ est défini par défaut sur la valeur ID du projet. Le rôle Lecteur de données BigQuery doit être attribué au compte de service spécifié pour lire les données BigQuery du projet.
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 fichier où se trouve le 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 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.
Ensemble de données Oui Oui Ensemble de données auquel appartient la table. Un ensemble de données est contenu dans un projet spécifique. Les ensembles de données sont des conteneurs de niveau supérieur qui organisent et contrôlent l'accès aux tables et aux vues.
Table Oui Oui Table à partir de laquelle lire. Une table contient des enregistrements individuels organisés en lignes. Chaque enregistrement est composé de colonnes (également appelées champs). Chaque table est définie par un schéma qui décrit les noms de colonne, les types de données et d'autres informations.
Date de début de la partition Oui Non Date de début inclusive de la partition, spécifiée sous la forme yyyy-mm-dd. Si aucune valeur n'est fournie, toutes les partitions jusqu'à la date de fin de partition seront lues.
Date de fin de la partition Oui Non Date de fin exclusive de la partition, spécifiée sous la forme yyyy-mm-dd. Si aucune valeur n'est indiquée, toutes les partitions à partir de la date de début de la partition sont lues.
Filter Oui Non Requête SQL qui filtre les données selon les conditions spécifiées. Par exemple, cette requête renvoie toutes les lignes de la table Roster dont la colonne SchoolID a la valeur SchoolID > 52 :
SELECT * FROM Roster WHERE SchoolID > 52;. Cela équivaut à la clause WHERE dans BigQuery.
Nom de bucket temporaire Oui Non Bucket Cloud Storage pour le stockage temporaire des données. Il est créé automatiquement s'il n'existe pas. Les données temporaires sont supprimées après avoir été lues. Si aucun nom n'est fourni, un bucket unique est créé, puis supprimé une fois l'exécution terminée.
Nom de la clé de chiffrement Oui Non Clé qui chiffre les données écrites dans un bucket créé par le plug-in. Si le bucket existe, cette valeur est ignorée. Pour en savoir plus, consultez CMEK.
Activer l'interrogation des vues Oui Non Indique si les vues logiques et matérialisées BigQuery sont autorisées. Étant donné que les vues BigQuery ne sont pas activées par défaut, leur interrogation peut entraîner une surcharge de performances.
La valeur par défaut est "Non".
Projet de création de tables temporaires Oui Non Cet argument n'est utilisé que lorsque l'option Activer les vues de requête est activée. Nom du projet dans lequel la table temporaire doit être créée. La valeur par défaut est le projet dans lequel se trouve la table.
Ensemble de données de création de tables temporaires Oui Non Ensemble de données du projet spécifié dans lequel la table temporaire doit être créée. La valeur par défaut correspond à l'ensemble de données dans lequel se trouve la table.
Schéma de sortie Oui Oui Schéma de la table à lire. Vous pouvez l'obtenir en cliquant sur Obtenir un schéma.

Mappages des types de données

Le tableau suivant liste les types de données BigQuery avec les types CDAP correspondants.

Type de données BigQuery Type de données du schéma CDAP
BOOL boolean
BYTES bytes
DATE date
DATETIME datetime, string
FLOAT64 double
GEO unsupported
INT64 long
NUMERIC decimal
BIGNUMERIC decimal
REPEATED array
STRING string, datetime (format ISO 8601)
STRUCT record
TIME time (en microsecondes)
TIMESTAMP timestamp (en microsecondes)
JSON unsupported

Étapes suivantes