Déployer des transformations sur BigQuery

Cette page explique comment transférer des transformations JOIN vers BigQuery au lieu de Spark dans Cloud Data Fusion.

Pour en savoir plus, consultez la page Présentation du pushdown de transformation.

Avant de commencer

Le pushdown de transformation est disponible dans les versions 6.5.0 et ultérieures. Si le pipeline s'exécute dans un environnement antérieur, vous pouvez mettre à niveau votre instance vers la dernière version.

Activer le pushdown de transformation sur votre pipeline

Console

  1. Accédez à la page Instances.

    Accéder à la page "Instances"

  2. Ouvrez l'instance souhaitée et accédez à la page Liste des pipelines de l'interface utilisateur de Cloud Data Fusion.

  3. Sélectionnez le pipeline déployé souhaité pour l'ouvrir dans Pipeline Studio.

  4. Configurer

  5. Sélectionnez l'onglet Pushdown Transformation.

    Activer le pushdown de transformation

  6. Cliquez sur Activer le pushdown de transformation.

  7. Configurez le pushdown de transformation:

    • Ensemble de données BigQuery (obligatoire): nom de l'ensemble de données BigQuery utilisé pour organiser les tables temporaires utilisées pour l'exécution BigQuery. Un ensemble de données est contenu dans un projet client. Les ensembles de données sont des conteneurs de niveau supérieur utilisés pour organiser et contrôler l'accès aux tables et aux vues.

    • Type de compte de service (facultatif): sélectionnez l'une des options suivantes:

      • File Path (Chemin d'accès au fichier) : chemin d'accès au fichier dans lequel se trouve le compte de service.
      • JSON: contenu JSON du compte de service.
    • Chemin d'accès au fichier du compte de service (facultatif): chemin d'accès au système de fichiers local de la clé de compte de service utilisée pour l'autorisation. Peut être défini sur auto-detect lors de l'exécution sur un cluster Dataproc. Lors de l'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.

    • Service Account JSON (facultatif): contenu du fichier JSON du compte de service

    • ID du projet (facultatif): ID du projet Google Cloud, qui identifie un projet de manière unique. Vous le trouverez dans le tableau de bord de la console. Par défaut, il s'agit du projet en cours sur lequel l'instance est exécutée.

    • Nom de bucket temporaire (facultatif): bucket Google Cloud Storage dans lequel stocker les données temporaires. Elle est créée automatiquement si elle n'existe pas, mais n'est pas automatiquement supprimée. Les données Cloud Storage sont supprimées après leur chargement dans BigQuery. S'il n'est pas fourni, 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 (facultatif): saisissez le nom de l'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 US multi-region.

    • Conserver les tables BigQuery après l'exécution : (facultatif) sélectionnez cette option pour conserver toutes les tables temporaires BigQuery créées pendant l'exécution du pipeline. Cela peut servir à des fins de débogage et de validation. La valeur par défaut est No.

    • Valeur TTL de la table temporaire (en heures) (facultatif): définissez la valeur TTL de la table pour les tables temporaires BigQuery en nombre d'heures. Il s'agit d'une solution de sécurité en cas d'annulation soudaine du pipeline et d'interruption du processus de nettoyage (par exemple, en cas d'arrêt brut du cluster d'exécution). Définir cette valeur sur 0 désactive la valeur TTL de la table. La valeur par défaut est 72 (trois jours).

    • Job priority (Priorité de la tâche) (facultatif): priorité utilisée pour exécuter des tâches BigQuery. Sélectionnez l'une des options suivantes :

      • Batch: une tâche 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é est définie sur interactive.

      • 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 quotidien.

Surveiller l'évolution des performances dans les journaux

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

L'exemple de journal suivant montre les entrées de journal lorsque l'exécution du pipeline commence. Les journaux indiquent que les jointures de votre pipeline sont envoyées à BigQuery en vue de leur exécution:

  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 montre les noms de table 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>

À mesure que l'exécution se poursuit, les journaux indiquent l'achèvement des étapes d'envoi et, à terme, l'exécution des opérations de jointure. 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, vous recevez un message indiquant 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ébut de cette tâche d'exportation. Par 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 affichées dans les journaux.

Pour en savoir plus sur l'exécution des opérations JOIN BigQuery (telles que l'utilisation des ressources, le temps d'exécution, les causes d'erreur, etc.), vous pouvez afficher les données de la tâche BigQuery à l'aide de l'ID de tâche obtenu. dans les journaux de la tâche.

Étape suivante

  • En savoir plus sur la fonctionnalité Pushdown dans Cloud Data Fusion