Exécuter des transformations dans BigQuery

Cette page explique comment exécuter des transformations vers BigQuery au lieu de Spark dans Cloud Data Fusion.

Pour en savoir plus, consultez la présentation de la création déroulante de la transformation.

Avant de commencer

La création déroulante de la transformation est disponible à partir de la version 6.5.0. Si votre pipeline s'exécute dans un environnement antérieur, vous pouvez mettre à niveau votre instance vers la dernière version.

Activer le déroulement de la transformation dans votre pipeline

Console

Pour activer la création déroulante de transformation sur un pipeline déployé, procédez comme suit:

  1. Accédez à votre instance :

    1. Dans la console Google Cloud, accédez à la page "Cloud Data Fusion".

    2. Pour ouvrir l'instance dans l'interface Web de Cloud Data Fusion, cliquez sur Instances, puis sur Afficher l'instance.

      Accéder à la page "Instances"

  2. Cliquez sur Menu > Liste.

    L'onglet du pipeline déployé s'ouvre.

  3. Cliquez sur le pipeline déployé souhaité pour l'ouvrir dans Pipeline Studio.

  4. Cliquez sur Configurer > Transformation Pushdown.

    Activer la création déroulante de transformation.

  5. Cliquez sur Activer la création déroulante de la transformation.

  6. Dans le champ Ensemble de données, saisissez un nom d'ensemble de données BigQuery.

    Facultatif: Pour utiliser une macro, cliquez sur M. Pour en savoir plus, consultez la page Ensembles de données.

  7. Facultatif: Configurez les options si nécessaire.

  8. Cliquez sur Enregistrer.

Configurations facultatives

.
Propriété Macros acceptées Versions de Cloud Data Fusion compatibles Description
Utiliser la connexion Non 6.7.0 et versions ultérieures Permet d'utiliser une connexion existante.
Connexion Oui 6.7.0 et versions ultérieures le nom de la connexion. Cette connexion fournit des informations sur le projet et le compte de service.
Facultatif: utilisez la macro pour la fonction ${conn(connection_name)}.
ID du projet de l'ensemble de données Oui 6.5.0 Si l'ensemble de données se trouve dans un projet différent de celui où le job BigQuery est exécuté, saisissez l'ID de projet de l'ensemble de données. Si aucune valeur n'est spécifiée, l'ID du projet dans lequel la tâche est exécutée est utilisé par défaut.
ID du projet Oui 6.5.0 ID de projet Google Cloud.
Type de compte de service Oui 6.5.0 Sélectionnez l'une des options suivantes:
  • File Path (Chemin d'accès au fichier) : chemin d'accès au compte de service.
  • JSON: le contenu JSON du compte de service.
La valeur par défaut est JSON.
Chemin d'accès au fichier du compte de service Oui 6.5.0 Chemin d'accès sur le système de fichiers local à la clé de compte de service utilisée pour l'autorisation. Il est défini sur auto-detect lors de l'exécution sur un cluster Dataproc. En cas d'exécution sur d'autres clusters, le fichier doit être présent sur chaque nœud du cluster. La valeur par défaut est auto-detect.
Fichier JSON du compte de service Oui 6.5.0 Contenu du fichier JSON du compte de service.
Nom de bucket temporaire Oui 6.5.0 Bucket Cloud Storage qui stocke les données temporaires. Il est automatiquement créé s'il n'existe pas, mais n'est pas supprimé automatiquement. Les données Cloud Storage sont supprimées après leur chargement dans BigQuery. Si cette valeur n'est pas fournie, un bucket unique est créé, puis supprimé une fois l'exécution du pipeline terminée. Le compte de service doit être autorisé à créer des buckets dans le projet configuré.
Emplacement Oui 6.5.0 Emplacement dans lequel l'ensemble de données BigQuery est créé. Cette valeur est ignorée si l'ensemble de données ou le bucket temporaire existe déjà. La valeur par défaut est l'emplacement multirégional US.
Nom de la clé de chiffrement Oui 6.5.1/0.18.1 Clé de chiffrement gérée par le client (CMEK) qui chiffre les données écrites dans un bucket, un ensemble de données ou une table créés par le plug-in. Si le bucket, l'ensemble de données ou la table existe déjà, cette valeur est ignorée.
Conserver les tables BigQuery une fois l'opération terminée Oui 6.5.0 Indique s'il faut conserver toutes les tables temporaires BigQuery créées pendant l'exécution du pipeline à des fins de débogage et de validation. La valeur par défaut est No.
Valeur TTL de la table temporaire (en heures) Oui 6.5.0 Définissez la valeur TTL des tables temporaires BigQuery, en heures. Cette fonctionnalité est utile en tant que sécurité intégrée si le pipeline est annulé et que le processus de nettoyage est interrompu (par exemple, si le cluster d'exécution est arrêté brusquement). Si vous définissez cette valeur sur 0, la valeur TTL de la table est désactivée. La valeur par défaut est 72 (3 jours).
Priorité du job Oui 6.5.0 Priorité utilisée pour exécuter les tâches BigQuery. Sélectionnez l'une des options suivantes :
  1. Par lot: une job par lot est mise en file d'attente et démarrée dès que des ressources inactives sont disponibles, généralement en quelques minutes. Si la tâche n'est pas démarrée dans les trois heures, sa priorité passe à "interactive".
  2. Interactive: une tâche interactive est exécutée dès que possible et est comptabilisée dans la limite de débit simultané et la limite de débit quotidienne.
La valeur par défaut est Batch (Lot).
Étapes pour forcer le pushdown Oui 6.7.0 Étapes compatibles à toujours exécuter dans BigQuery. Chaque nom d'étape doit figurer sur une ligne distincte.
Étapes pour ignorer le pushdown Oui 6.7.0 Étapes compatibles à ne jamais exécuter dans BigQuery. Chaque nom d'étape doit figurer sur une ligne distincte.
Utiliser l'API BigQuery Storage Read Oui 6.7.0 Indique si l'API BigQuery Storage Read doit être utilisée pour extraire des enregistrements de BigQuery pendant l'exécution du pipeline. Cette option peut améliorer les performances du bloc "Création déroulante de la transformation", mais entraîne des coûts supplémentaires. Pour ce faire, Scala 2.12 doit être installé dans l'environnement d'exécution.

Surveiller les variations de performances dans les journaux

Les journaux d'exécution du pipeline incluent des messages qui montrent les requêtes SQL exécutées dans BigQuery. Vous pouvez surveiller les étapes du pipeline qui sont transmises à BigQuery.

L'exemple suivant montre les entrées de journal lorsque l'exécution du pipeline commence. Les journaux indiquent que les opérations JOIN de votre pipeline ont été transférées vers BigQuery pour être exécutées:

  INFO  [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'Users' can be executed on BigQuery: true
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'UserProfile'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'UserDetails'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'Users'
  INFO  [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'UserPurchases' can be executed on BigQuery: true
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'Purchases'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'UserPurchases'
  INFO  [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'MostPopularNames' can be executed on BigQuery: true
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'FirstNameCounts'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'MostPopularNames'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@193] - Starting pull for dataset 'MostPopularNames'

L'exemple suivant présente les noms de tables qui seront attribués à chacun des ensembles de données impliqués dans l'exécution du pushdown:

  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset Purchases stored in table <TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset UserDetails stored in table <TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset FirstNameCounts stored in table <TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset UserProfile stored in table <TABLE_ID>

Au fur et à mesure de l'exécution, les journaux indiquent l'achèvement des étapes d'envoi et, à terme, l'exécution des opérations JOIN. Exemple :

  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@133] - Completed push for dataset 'UserProfile'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@133] - Completed push for dataset 'UserDetails'
  DEBUG [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@235] - Executing join operation for dataset Users
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQueryJoinDataset@118] - Creating table `<TABLE_ID>` using job: <JOB_ID> with SQL statement: SELECT `UserDetails`.id AS `id` , `UserDetails`.first_name AS `first_name` , `UserDetails`.last_name AS `last_name` , `UserDetails`.email AS `email` , `UserProfile`.phone AS `phone` , `UserProfile`.profession AS `profession` , `UserProfile`.age AS `age` , `UserProfile`.address AS `address` , `UserProfile`.score AS `score` FROM `your_project.your_dataset.<DATASET_ID>` AS `UserProfile` LEFT JOIN `your_project.your_dataset.<DATASET_ID>` AS `UserDetails` ON `UserProfile`.id = `UserDetails`.id
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQueryJoinDataset@151] - Created BigQuery table `<TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@245] - Executed join operation for dataset Users

Une fois toutes les étapes terminées, un message indique que l'opération Pull est terminée. Cela indique que le processus d'exportation BigQuery a été déclenché et que les enregistrements commenceront à être lus dans le pipeline après le démarrage de cette tâche d'exportation. Exemple :

DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@196] - Completed pull for dataset 'MostPopularNames'

Si l'exécution du pipeline rencontre des erreurs, celles-ci sont décrites dans les journaux.

Pour en savoir plus sur l'exécution des opérations JOIN BigQuery, telles que l'utilisation des ressources, la durée d'exécution et les causes d'erreur, vous pouvez afficher les données de tâche BigQuery à l'aide de l'ID de tâche qui apparaît dans les journaux de la tâche.

Examiner les métriques du pipeline

Pour en savoir plus sur les métriques fournies par Cloud Data Fusion pour la partie du pipeline exécutée dans BigQuery, consultez la page Métriques de pipeline de transfert vers BigQuery.

Étapes suivantes