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.
Si tu ubicación es compatible, puedes usar la función de reglas de traducción (Vista previa) para personalizar la forma en que el traductor interactivo de SQL traduce SQL.
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:
En la consola de Google Cloud, ve a la página API de BigQuery Migration.
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 a 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
Ubicaciones
El traductor interactivo de SQL está disponible en las siguientes ubicaciones de procesamiento:
Descripción de la región | Nombre de la región | Detalles | |
---|---|---|---|
Asia-Pacífico | |||
Tokio | asia-northeast1 |
||
Bombay | asia-south1 |
||
Singapur | asia-southeast1 |
||
Sídney | australia-southeast1 |
||
Europa | |||
UE multirregión | eu |
||
Varsovia | europe-central2 |
||
Finlandia | europe-north1 |
CO2 bajo | |
Madrid | europe-southwest1 |
||
Bélgica | europe-west1 |
CO2 bajo | |
Londres | europe-west2 |
CO2 bajo | |
Fráncfort | europe-west3 |
CO2 bajo | |
Países Bajos | europe-west4 |
||
Zúrich | europe-west6 |
CO2 bajo | |
París | europe-west9 |
CO2 bajo | |
Turín | europe-west12 |
||
América | |||
São Paulo | southamerica-east1 |
CO2 bajo | |
EE.UU. multirregión | us |
||
Iowa | us-central1 |
CO2 bajo | |
Carolina del Sur | us-east1 |
||
Virginia del Norte | us-east4 |
||
Columbus, Ohio | us-east5 |
||
Dallas | us-south1 |
||
Oregón | us-west1 |
CO2 bajo | |
Los Ángeles | us-west2 |
||
Salt Lake City | us-west3 |
La función de regla de traducción está disponible en las siguientes ubicaciones de procesamiento:
us
(EE.UU. multirregión)eu
(UE multirregión)us-central1
(Iowa)europe-west4
(Países Bajos)
Traduce una consulta a GoogleSQL
Sigue estos pasos para traducir una consulta a GoogleSQL:
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel Editor, haz clic en Más y, luego, selecciona Configuración de traducción.
En Dialecto de origen, selecciona el dialecto de SQL que deseas traducir.
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
.Haz clic en Guardar.
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.
En el panel izquierdo, ingresa la consulta que deseas traducir.
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:
Opcional: Para ejecutar la consulta de GoogleSQL traducida, haz clic en Ejecutar.
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.
Crea una regla de traducción
Puedes personalizar la forma en que el traductor interactivo de SQL traduce SQL mediante la creación de reglas de traducción. El traductor interactivo de SQL ajusta sus traducciones según cualquier regla de traducción de SQL mejorada por Gemini que le asignes, lo que te permite personalizar los resultados de traducción según tus necesidades de migración. Esta función solo es compatible con ciertas ubicaciones.
Para crear una regla de traducción de SQL mejorada con Gemini, haz lo siguiente:
Después de ejecutar una traducción interactiva, haz clic en Personalizar.
Usa uno de los siguientes mensajes o ambos para crear una regla de traducción:
En el mensaje Reemplazar un patrón de SQL por otro, especifica un patrón de SQL que desees reemplazar en el campo Reemplazar y un patrón SQL para reemplazar en el campo Con.
Un patrón de SQL puede contener cualquier cantidad de instrucciones, cláusulas o funciones en una secuencia de comandos de SQL. Cuando creas una regla con este mensaje, la traducción de SQL mejorada de Gemini identifica cualquier instancia de ese patrón de SQL en el resultado de la traducción y lo reemplaza de forma dinámica por otro patrón de SQL. Por ejemplo, puedes usar este mensaje para crear una regla que reemplace todos los casos de
months_between (X,Y)
pordate_diff(X,Y,MONTH)
.En el campo Describe un cambio en el resultado de la traducción, describe un cambio en el resultado de la traducción de SQL en lenguaje natural.
Cuando creas una regla con este mensaje, la traducción de SQL mejorada por Gemini identifica la solicitud y realiza el cambio especificado en el resultado de la traducción.
Haz clic en Vista previa.
En el diálogo Vista previa de los cambios sugeridos, revisa los cambios realizados por la traducción de SQL mejorada por Gemini en el resultado de la traducción según tu regla.
Opcional: Para agregar esta regla a fin de usarla con traducciones futuras, selecciona la casilla de verificación Agregar regla….
Las reglas se guardan en un archivo YAML de configuración como se especifica en el campo Ubicación del origen de la configuración de traducción en la configuración de traducción. Para obtener más información sobre los archivos YAML de configuración, consulta Traduce una consulta con configuraciones adicionales. Un archivo YAML de configuración puede admitir hasta 10 reglas de traducción.
Para aplicar los cambios sugeridos al resultado de la traducción, haz clic en Aplicar.
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:
- En el editor de consultas, haz clic en Más > Configuración de traducción.
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.
Haz clic en Guardar.
Para especificar opciones de configuración de traducción, proporciona una ubicación a los archivos fuente de la configuración de traducción y haz lo siguiente:
- En el editor de consultas, haz clic en Más > Configuración de traducción.
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.
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.
Soluciona problemas de errores de traducción
Los siguientes son errores que se suelen encontrar cuando se usa el traductor interactivo de SQL.
Problemas de traducción de RelationNotFound
o AttributeNotFound
Para 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;
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:
- Descripción general de la migración
- Evaluación de la migración
- Descripción general de transferencia de datos y esquemas
- Traducción de SQL por lotes
- Canalizaciones de datos
- Seguridad y administración de los datos
- Herramienta de validación de datos