Traduce consultas con el traductor interactivo de SQL

En este documento, se describe cómo traducir una consulta de un dialecto de SQL diferente a una consulta en GoogleSQL mediante el traductor de SQL interactivo de BigQuery. El traductor interactivo de SQL puede ayudar a reducir el tiempo y el esfuerzo cuando migras cargas de trabajo a BigQuery. Este documento está dirigido a usuarios familiarizados con la consola de Google Cloud.

Antes de comenzar

Si tu proyecto de Google Cloud CLI se creó antes del 15 de febrero de 2022, habilita la API de BigQuery Migration de la siguiente manera:

  1. En la consola de Google Cloud, ve a la página API de BigQuery Migration.

    Ir a la API de BigQuery Migration

  2. Haz clic en Habilitar.

Permisos y roles

En esta sección se describen los permisos de Identity and Access Management (IAM) que necesitarás para usar el traductor interactivo de SQL y las funciones predefinidas de IAM que otorgan esos permisos. En la sección, también se describen los permisos necesarios para establecer parámetros de configuración de traducción adicionales.

Permisos para usar el traductor interactivo de SQL

Para usar el traductor interactivo de SQL, necesitas el siguiente permiso:

  • bigquerymigration.translation.translate

La siguiente función predefinida de IAM proporciona el permiso que necesitas para usar el traductor interactivo de SQL:

  • roles/bigquerymigration.translationUser

Para ejecutar una consulta desde el traductor de SQL interactivo, necesitas los mismos permisos que necesitas para ejecutar cualquier consulta en BigQuery. Por ejemplo, a fin de consultar una tabla, debes tener permiso para leer los datos de la tabla. Para obtener más información, lee la sección Consulta datos de BigQuery.

Permisos para establecer opciones de configuración de traducción adicionales

Puedes establecer configuraciones de traducción adicionales mediante los campos ID de configuración de traducción y Ubicación del origen de la configuración de traducción en la configuración de traducción. Para establecer esta configuración de traducción, necesitas los siguientes permisos:

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

El siguiente rol predefinido de IAM proporciona los permisos que necesitas para establecer opciones de configuración de traducción adicionales:

  • roles/bigquerymigration.viewer

Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.

Dialectos de SQL compatibles

El traductor de SQL interactivo de BigQuery puede traducir los siguientes dialectos de SQL al lenguaje GoogleSQL:

  • SQL de Amazon Redshift
  • Apache HiveQL y Beeline CLI
  • SQL de IBM Netezza y NZPLSQL
  • Teradata y Teradata Vantage
    • SQL
    • Consulta básica de Teradata (BTEQ)
    • Teradata Parallel Transport (TPT)

Además, se admite la traducción de los siguientes dialectos de SQL en la vista previa:

  • SQL de Apache Spark
  • T-SQL de Azure Synapse
  • SQL de MySQL
  • SQL de Oracle, PL/SQL, Exadata
  • PostgreSQL SQL
  • Trino o PrestoSQL
  • SQL de Snowflake
  • SQL Server T-SQL
  • SQLite
  • SQL de Vertica

Traduce una consulta a GoogleSQL

Sigue estos pasos para traducir una consulta a GoogleSQL:

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a BigQuery

  2. En el panel Editor, haz clic en Más y, luego, selecciona Configuración de traducción.

  3. En Dialecto de origen, selecciona el dialecto de SQL que deseas traducir.

  4. Opcional. En Ubicación de procesamiento, selecciona la ubicación en la que deseas que se ejecute el trabajo de traducción. Por ejemplo, si estás en Europa y no quieres que tus datos pasen ningún límite de ubicación, selecciona la región eu.

  5. Haz clic en Guardar.

  6. En el panel Editor, haz clic en Más y, luego, selecciona Habilitar la traducción de SQL.

    El panel Editor se divide en dos paneles.

  7. En el panel izquierdo, ingresa la consulta que deseas traducir.

  8. Haz clic en Traducir.

    BigQuery traduce tu consulta en GoogleSQL y la muestra en el panel derecho. Por ejemplo, en la siguiente captura de pantalla se muestra SQL de Teradata traducido:

    Muestra una consulta de SQL de Teradata traducida a GoogleSQL.

  9. Opcional: Para ejecutar la consulta de GoogleSQL traducida, haz clic en Ejecutar.

  10. Para volver al editor de SQL, haz clic en Más y, luego, selecciona Inhabilitar la traducción de SQL (opcional).

    El panel del Editor regresa a un solo panel.

Mejora el rendimiento de los trabajos de traducción interactivos

Para mejorar la estabilidad y evitar problemas de tiempo de espera de la red en trabajos de traducción interactivos de larga duración (por ejemplo, usar un paquete de archivos de metadatos grande), habilita la API de traducción consolidada. La API de traducción consolidada combina el traductor interactivo y por lotes en un solo flujo de trabajo, lo que mejora la eficiencia y la estabilidad de tus trabajos de traducción interactivos.

Roles obligatorios

Para obtener los permisos que necesitas para usar la API de traducción consolidada con el traductor interactivo, pídele a tu administrador que te otorgue el rol de IAM de editor de MigrationWorkflow (roles/bigquerymigration.editor) en el recurso parent. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Este rol predefinido contiene los permisos necesarios para usar la API de traducción consolidada con el traductor interactivo. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para usar la API de traducción consolidada con el traductor interactivo:

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

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos

Habilita la API de traducción consolidada

Si deseas habilitar la API de traducción consolidada para el traductor interactivo, completa el formulario de lista de entidades permitidas de la API de traducción consolidada. Si deseas obtener más información para usar la API de traducción consolidada con el traductor de SQL por lotes, consulta las instrucciones de la API en Envía un trabajo de traducción.

Traduce una consulta con configuraciones adicionales

Puedes ejecutar una consulta interactiva con configuraciones de traducción adicionales si proporcionas un ID de configuración de traducción por lotes o con archivos de configuración almacenados en una carpeta de Cloud Storage. Las configuraciones de traducción pueden incluir metadatos de objeto SQL o información de asignación de objetos de la base de datos de origen que puedan mejorar la calidad de la traducción. Por ejemplo, incluye información o esquemas de DDL de la base de datos de origen para mejorar la calidad de la traducción interactiva de SQL.

Para especificar opciones de configuración de traducción, proporciona un ID de configuración de traducción por lotes y haz lo siguiente:

  1. En el editor de consultas, haz clic en Más > Configuración de traducción.
  2. En el campo ID de configuración de traducción, proporciona un ID de configuración de traducción por lotes para aplicar la misma configuración de traducción a partir de un trabajo de migración por lotes de BigQuery completado.

    Para encontrar el ID de configuración de la traducción por lotes de un trabajo, selecciona un trabajo de traducción por lotes de la página Traducción de SQL y haz clic en la pestaña Configuración de traducción. El ID de configuración de traducción por lotes se muestra como Nombre del recurso.

  3. Haz clic en Guardar.

Para especificar configuraciones de traducción, proporciona un archivo de origen de configuración de traducción y haz lo siguiente:

  1. En el editor de consultas, haz clic en Más > Configuración de traducción.
  2. En la sección Ubicación del origen de la configuración de traducción, especifica la ruta a un archivo de configuración de traducción almacenado en una carpeta de Cloud Storage.

    El traductor interactivo de SQL de BigQuery admite archivos de configuración que contienen metadatos de traducción y asignación de nombres de objetos. Para obtener información sobre cómo subir archivos a Cloud Storage, consulta Carga objetos desde un sistema de archivos.

  3. Haz clic en Guardar.

Limitaciones del tamaño del archivo de configuración

Cuando usas un archivo de configuración de traducción con el traductor interactivo de SQL de BigQuery, el tamaño del archivo de metadatos comprimido o del archivo de configuración YAML debe ser inferior a 50 MB. Si el tamaño del archivo supera los 50 MB, el traductor interactivo omite ese archivo de configuración durante la traducción y produce un mensaje de error similar al siguiente:

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

Un método que permite reducir el tamaño del archivo de metadatos es usar las marcas --database o --schema para extraer solo los metadatos de las bases de datos o los esquemas que son relevantes para las consultas de entrada de traducción. Para obtener más información sobre el uso de estas marcas cuando generas archivos de metadatos, consulta Marcas globales.

Limitaciones

El traductor interactivo de SQL no tiene información de esquema para las consultas que ingresas para la traducción. A fin de garantizar la traducción más precisa, ingresa las declaraciones del lenguaje de definición de datos (DDL) de todas las tablas usadas en una consulta antes de la consulta. Por ejemplo, si deseas traducir la consulta select table1.field1, table2.field1 from table1, table2 where table1.id = table2.id; de Amazon Redshift, debes ingresar las siguientes instrucciones de SQL en el traductor interactivo de SQL:

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;

Ubicaciones

El traductor interactivo de SQL está disponible en las siguientes ubicaciones de procesamiento:

  • us (EE.UU. multirregión)
  • eu (UE multirregión)
  • southamerica-east1 (São Paulo)
  • us-central1 (Iowa)
  • asia-northeast1 (Tokio)
  • asia-south1 (Bombay)
  • asia-southeast1 (Singapur)
  • australia-southeast1 (Sídney)
  • europe-central2 (Varsovia)
  • europe-north1 (Finlandia)
  • europe-west1 (Bélgica)
  • europe-west2 (Londres)
  • europe-west3 (Fráncfort)

Precios

No se aplican cargos por usar el traductor interactivo de SQL. Sin embargo, se aplican las tarifas normales al almacenamiento que se usa para almacenar archivos de entrada y salida. Para obtener más información, consulta los precios de almacenamiento.

¿Qué sigue?

Obtén más información sobre los siguientes pasos en la migración de almacenes de datos: