Traduire des requêtes avec le traducteur SQL interactif

Ce document explique comment traduire une requête d'un autre dialecte SQL en une requête GoogleSQL à l'aide de la traduction SQL interactive de BigQuery. La traduction SQL interactive peut vous aider à réduire le temps et les efforts liés à la migration des charges de travail vers BigQuery. Ce document est destiné aux utilisateurs qui connaissent déjà la console Google Cloud.

Avant de commencer

Si votre projet Google Cloud CLI a été créé avant le 15 février 2022, activez l'API BigQuery Migration comme suit :

  1. Dans la console Google Cloud, accédez à la page API BigQuery Migration.

    Accéder à l'API BigQuery Migration

  2. Cliquez sur Activer.

Autorisations et rôles

Cette section décrit les autorisations IAM (Identity and Access Management) dont vous avez besoin pour utiliser la traduction SQL interactive, ainsi que les rôles IAM prédéfinis qui accordent ces autorisations. Cette section décrit également les autorisations nécessaires pour configurer des configurations de traduction supplémentaires.

Autorisations nécessaires pour l'utilisation du traducteur SQL interactif

Pour utiliser le traducteur SQL interactif, vous devez disposer de l'autorisation suivante :

  • bigquerymigration.translation.translate

Le rôle IAM prédéfini suivant fournit l'autorisation dont vous avez besoin pour utiliser le traducteur SQL interactif :

  • roles/bigquerymigration.translationUser

Pour exécuter une requête à partir du traducteur SQL interactif, vous avez besoin des mêmes autorisations que pour une requête dans BigQuery. Par exemple, pour interroger une table, vous devez être autorisé à lire les données de la table. Pour en savoir plus, consultez la page Interroger des données BigQuery.

Autorisations permettant de définir des configurations de traduction supplémentaires

Vous pouvez définir des configurations de traduction supplémentaires à l'aide des champs ID de configuration de traduction et Emplacement source de la configuration de traduction dans les paramètres de traduction. Pour définir ces configurations de traduction, vous devez disposer des autorisations suivantes :

  • bigquerymigration.workflows.get
  • bigquerymigration.workflows.list

Le rôle IAM prédéfini suivant fournit les autorisations dont vous avez besoin pour définir des configurations de traduction supplémentaires :

  • roles/bigquerymigration.viewer

Pour plus d'informations sur BigQuery IAM, consultez la page Contrôle des accès avec IAM.

Dialectes SQL pris en charge

Le traducteur SQL interactif de BigQuery peut traduire le dialecte SQL suivant en langage GoogleSQL :

  • Amazon Redshift SQL
  • CLI Apache HiveQL et Beeline
  • IBM Netezza SQL et NZPLSQL
  • Teradata et Teradata Vantage
    • SQL
    • Basic Teradata Query (BTEQ)
    • Teradata Parallel Transport (TPT)

De plus, la traduction des dialectes SQL suivants est disponible en version bêta :

  • Apache Spark SQL
  • Azure Snapse T-SQL
  • MySQL SQL
  • Oracle SQL, PL/SQL et Exadata
  • PostgreSQL SQL
  • Trino ou PrestoSQL
  • Snowflake SQL
  • SQL Server T-SQL
  • SQLite
  • Vertica SQL

Traduire une requête en langage GoogleSQL

Pour traduire une requête en langage GoogleSQL, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans le volet Éditeur, cliquez sur Plus, puis sélectionnez Paramètres de traduction.

  3. Pour le champ Dialecte source, sélectionnez le dialecte SQL que vous souhaitez traduire.

  4. Facultatif. Dans le champ Emplacement du traitement, sélectionnez l'emplacement où vous souhaitez exécuter la tâche de traduction. Par exemple, si vous êtes en Europe et que vous ne souhaitez pas que vos données dépassent les limites d'emplacement, sélectionnez la région eu.

  5. Cliquez sur Enregistrer.

  6. Dans le volet Éditeur, cliquez sur Plus, puis sélectionnez Activer la traduction SQL.

    Le volet Éditeur se divise en deux volets.

  7. Dans le volet de gauche, saisissez la requête que vous souhaitez traduire.

  8. Cliquez sur Traduire.

    BigQuery traduit votre requête en langage GoogleSQL et l'affiche dans le volet de droite. Par exemple, la capture d'écran suivante montre le langage SQL Teradata traduit :

    Affichage d'une requête SQL Teradata traduite en langage GoogleSQL

  9. Facultatif : Pour exécuter la requête GoogleSQL traduite, cliquez sur Exécuter.

  10. Facultatif : Pour revenir à l'éditeur SQL, cliquez sur Plus, puis sélectionnez Désactiver la traduction SQL.

    Le volet Éditeur revient à un seul panneau.

Améliorer les performances des jobs de traduction interactive

Pour améliorer la stabilité et éviter les problèmes d'expiration de délai du réseau sur les jobs de traduction interactive de longue durée (par exemple, l'utilisation d'un package de fichiers de métadonnées volumineux), activez l'API de traduction consolidée. L'API de traduction consolidée combine le traducteur interactif et par lot en un seul workflow, ce qui améliore l'efficacité et la stabilité de vos jobs de traduction interactive.

Rôles requis

Pour obtenir les autorisations nécessaires pour utiliser l'API de traduction consolidée avec le traducteur interactif, demandez à votre administrateur de vous accorder le rôle IAM Éditeur MigrationWorkflow (roles/bigquerymigration.editor) sur la ressource parent. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ce rôle prédéfini contient les autorisations requises pour utiliser l'API de traduction consolidée avec le traducteur interactif. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Vous devez disposer des autorisations suivantes pour utiliser l'API de traduction consolidée avec le traducteur interactif :

  • bigquerymigration.workflows.create
  • bigquerymigration.workflows.get

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Activer l'API de traduction consolidée

Pour activer cette API pour le traducteur interactif, remplissez le formulaire d'ajout à la liste d'autorisation de l'API Consolidated Translation. Pour en savoir plus sur l'utilisation de l'API de traduction consolidée avec le traducteur SQL par lot, consultez les instructions de l'API dans Envoyer un job de traduction.

Traduire une requête avec des configurations supplémentaires

Vous pouvez exécuter une requête interactive avec des configurations de traduction supplémentaires en fournissant un ID de configuration de traduction par lot ou avec des fichiers de configuration stockés dans un dossier Cloud Storage. Les configurations de traduction peuvent inclure des métadonnées d'objets SQL ou des informations de mappage d'objets provenant de la base de données source, qui peuvent améliorer la qualité de la traduction. Par exemple, incluez des informations ou des schémas LDD de la base de données source pour améliorer la qualité de la traduction SQL interactive.

Pour spécifier des configurations de traduction en fournissant un ID de configuration de traduction par lot, procédez comme suit :

  1. Dans l'éditeur de requête, cliquez sur Plus > Paramètres de traduction.
  2. Dans le champ ID de configuration de la traduction, indiquez un ID de configuration de traduction par lot pour appliquer la même configuration de traduction à partir d'une tâche de migration par lot BigQuery terminée.

    Pour trouver l'ID de configuration d'une tâche de traduction par lot, sélectionnez une tâche de traduction par lot sur la page Traduction SQL, puis cliquez sur l'onglet Configuration de la traduction. L'ID de configuration de la traduction par lot est répertorié sous Nom de ressource.

  3. Cliquez sur Enregistrer.

Pour spécifier des configurations de traduction en fournissant un fichier source de configuration de traduction, procédez comme suit :

  1. Dans l'éditeur de requête, cliquez sur Plus > Paramètres de traduction.
  2. Dans le champ Emplacement source de la configuration de traduction, spécifiez le chemin d'accès à un fichier de configuration de traduction stocké dans un dossier Cloud Storage.

    La traduction SQL interactive de BigQuery accepte les fichiers de configuration contenant des métadonnées de traduction et le mappage de noms d'objet. Pour savoir comment importer des fichiers dans Cloud Storage, consultez la page Importer des objets à partir d'un système de fichiers.

  3. Cliquez sur Enregistrer.

Limites de taille des fichiers de configuration

Lorsque vous utilisez un fichier de configuration de traduction avec le traducteur SQL interactif de BigQuery, le fichier de métadonnées compressé ou le fichier de configuration YAML doit être inférieur à 50 Mo. Si la taille du fichier dépasse 50 Mo, le traducteur interactif ignore ce fichier de configuration lors de la traduction et génère un message d'erreur semblable à celui-ci :

CONFIG ERROR: Skip reading file "gs://metadata-file.zip". File size (150,000,000 bytes) exceeds limit (50 MB).

Une méthode permettant de réduire la taille du fichier de métadonnées consiste à utiliser les options --database ou --schema pour n'extraire que les métadonnées de bases de données ou de schémas pertinents pour les requêtes d'entrée de traduction. Pour en savoir plus sur l'utilisation de ces options lorsque vous générez des fichiers de métadonnées, consultez la page Options globales.

Limites

Le traducteur SQL interactif ne dispose d'aucune information de schéma concernant les requêtes que vous saisissez pour la traduction. Pour garantir une traduction plus précise, saisissez les instructions LDD (langage de définition de données) pour toutes les tables utilisées dans une requête avant la requête elle-même. Par exemple, si vous souhaitez traduire la requête Amazon Redshift select table1.field1, table2.field1 from table1, table2 where table1.id = table2.id;, vous devez saisir les instructions SQL suivantes dans le traducteur SQL interactif :

create table schema1.table1 (id int, field1 int, field2 varchar(16));
create table schema1.table2 (id int, field1 varchar(30), field2 date);

select table1.field1, table2.field1
from table1, table2
where table1.id = table2.id;

Emplacements

La traduction SQL interactive n'est disponible que dans les emplacements de traitement suivants :

  • us (États-Unis - multirégional)
  • eu (UE - multirégional)
  • southamerica-east1 (São Paulo)
  • us-central1 (Iowa)
  • asia-northeast1 (Tokyo)
  • asia-south1 (Mumbai)
  • asia-southeast1 (Singapour)
  • australia-southeast1 (Sydney)
  • europe-central2 (Varsovie)
  • europe-north1 (Finlande)
  • europe-west1 (Belgique)
  • europe-west2 (Londres)
  • europe-west3 (Francfort)

Tarification

L'utilisation du traducteur SQL interactif est gratuite. En revanche, le stockage des fichiers d'entrée et de sortie entraîne des frais normaux. Pour en savoir plus, consultez les tarifs de stockage.

Étapes suivantes

Découvrez les étapes suivantes de la migration d'entrepôts de données :