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.
Limitaciones
Debes acceder con una Cuenta de Google para usar el traductor interactivo de SQL. El traductor de SQL interactivo no admite el uso de identidades federadas.
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 obtener los permisos que necesitas para usar 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 a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para usar 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 el traductor interactivo:
-
bigquerymigration.workflows.create
-
bigquerymigration.workflows.get
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
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
- Greenplum SQL
- IBM DB2 SQL
- 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 |
CO2 bajo | |
Bélgica | europe-west1 |
CO2 bajo | |
Londres | europe-west2 |
CO2 bajo | |
Fráncfort | europe-west3 |
CO2 bajo | |
Países Bajos | europe-west4 |
CO2 bajo | |
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 |
CO2 bajo | |
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.
Configura el traductor de SQL interactivo
Puedes configurar el traductor de SQL interactivo para ajustar la forma en que este traduce tu SQL de origen. Para ello, proporciona tus propias reglas para usar con Gemini en un archivo de configuración de YAML o proporciona un archivo de configuración de YAML que contenga metadatos de objetos SQL o información de asignación de objetos.
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 se admite en ciertas ubicaciones.
Para crear una regla de traducción de SQL mejorada con Gemini, haz una de las siguientes acciones:
Console
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 cambios sugeridos, revisa los cambios que realizó 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 el archivo YAML de configuración predeterminado o
__default.ai_config.yaml
. Este archivo YAML de configuración se guarda en la carpeta de Cloud Storage como se especifica en el campo Ubicación del origen de la configuración de traducción en la configuración de traducción. Un archivo YAML de configuración puede admitir hasta 10 reglas de traducción y está sujeto a limitaciones de tamaño de archivo de configuración.Para aplicar los cambios sugeridos al resultado de la traducción, haz clic en Aplicar.
YAML
Para crear una regla de traducción de SQL mejorada con Gemini, crea un archivo YAML de configuración y súbelo a Cloud Storage.
Requisitos
El archivo YAML de la regla de traducción debe tener el sufijo .ai_config.yaml
.
Por ejemplo, rules_1.ai_config.yaml
Limitaciones
- Solo puedes aplicar un archivo YAML de reglas de traducción en el traductor interactivo de SQL.
- Cada archivo YAML de reglas de traducción admite hasta 10 reglas y está sujeto a limitaciones de tamaño de archivo de configuración.
Campos disponibles
En el siguiente ejemplo, se muestra cómo puedes crear un archivo YAML de reglas de traducción mejoradas con Gemini usando una instrucción de lenguaje natural.
rewrite_target: TARGET
instruction: NL_PROMPT
Reemplaza lo siguiente:
TARGET
: Especifica si deseas aplicar la regla de traducción a tu SQL de entrada,SOURCE_SQL
, o al SQL de salida,TARGET_SQL
(predeterminado).NL_PROMPT
: En lenguaje natural, describe un cambio en el SQL de destino. La traducción de SQL mejorada con Gemini identifica la solicitud y realiza el cambio especificado.
También puedes crear un archivo YAML de reglas de traducción con varias reglas de traducción (hasta 10). Cada regla puede constar de una instrucción en lenguaje natural (instruction
) que describe una regla y uno o más ejemplos para reemplazar un patrón de SQL (input
) por otro (output
). Una regla de traducción puede usar el campo instruction
, uno o más campos examples
, o ambos tipos de campos para describir tu regla.
rewrite_target: TARGET
instruction: NL_PROMPT
translation_rules:
- instruction: NL_RULE_1
examples:
- input: RULE_1_INPUT_1
output: RULE_1_OUTPUT_1
- input: RULE_1_INPUT_2
output: RULE_1_OUTPUT_2
- instruction: NL_RULE_2
examples:
- input: RULE_2_INPUT_1
output: RULE_2_OUTPUT_1
…
…
Reemplaza lo siguiente:
NL_RULE_1
(opcional): En lenguaje natural, describe una regla de traducción.RULE_1_INPUT_1
(opcional): Es un patrón de SQL que deseas reemplazar.RULE_1_OUTPUT_1
(opcional): Es el patrón de SQL esperado después de reemplazarinput
.Puedes agregar más
translation_rules
(hasta 10) y másexamples
según sea necesario.
Para obtener ejemplos de archivos YAML de reglas de traducción de SQL mejorados con Gemini, consulta Ejemplos de archivos YAML de reglas de traducción.
Aplica un archivo YAML de reglas de traducción a tu próxima traducción
Para aplicar un archivo YAML de reglas de traducción, haz lo siguiente:
- En el editor de consultas, haz clic en Más > Configuración de traducción.
- En el campo Ubicación del origen de la configuración de traducción, especifica la ruta de acceso al archivo YAML de la regla de traducción almacenado en una carpeta de Cloud Storage.
- Haz clic en Guardar.
Ejemplos de archivos YAML de reglas de traducción
Los siguientes ejemplos son de archivos YAML de reglas de traducción de SQL mejorados con Gemini.
Ejemplo 1: Especifica una función que se reemplazará por otra.
translation_rules:
- instruction: "Remove upper() function"
examples:
- input: "upper(X)"
output: "X"
Ejemplo 2: Especifica varias reglas de traducción en un solo archivo YAML.
translation_rules:
- instruction: "Remove upper() function"
examples:
- input: "upper(X)"
output: "X"
- instruction: "Insert a comment at the head that explains each statement in detail."
Traduce con un ID de configuración de traducción por lotes
Puedes ejecutar una consulta interactiva con las mismas configuraciones de traducción que un trabajo de traducción por lotes si proporcionas un ID de configuración de traducción por lotes.
- 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.
Cómo traducir con parámetros de configuración adicionales
Puedes ejecutar una consulta interactiva con configuraciones de traducción adicionales si especificas archivos YAML 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 configuraciones de traducción, proporciona una ubicación a los archivos de origen de 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