Migra código con el traductor de SQL por lotes

En este documento, se describe cómo usar el traductor de SQL por lotes en BigQuery para traducir secuencias de comandos escritas en otros dialectos de SQL a consultas de GoogleSQL. Este documento está dirigido a usuarios que estén familiarizados con la consola deGoogle Cloud .

Para obtener una lista de los dialectos de SQL compatibles con este traductor de SQL, consulta Dialectos de SQL compatibles.

Para obtener una lista de las ubicaciones de procesamiento compatibles, consulte Locations.

Antes de comenzar

Antes de enviar un trabajo de traducción, sigue estos pasos.

Habilita las traducciones de SQL

Habilita la API requerida y obtén los permisos necesarios para usar un traductor de SQL de BigQuery. Para obtener más información, consulte Habilitar traducciones SQL.

Permisos necesarios

Para obtener los permisos que necesitas para crear trabajos de traducción con el traductor interactivo, la API de Translation o el traductor de SQL por lotes, pídele a tu administrador que te otorgue los siguientes roles de IAM en el recurso parent:

  • Visualización y supervisión de trabajos de migración: Visualizador de MigrationWorkflow (roles/bigquerymigration.viewer)
  • Enviando trabajos de migración: Editor de flujo de trabajo de migración (roles/bigquerymigration.editor)
  • Accede a los buckets de Cloud Storage para archivos de entrada y salida: Administrador de objetos de Storage (roles/storage.objectAdmin): En el bucket de Cloud Storage de origen y destino.

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para crear trabajos de traducción con el traductor interactivo, la API de Translation o el traductor de SQL por lotes. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear trabajos de traducción con el traductor interactivo, la API de Translation o el traductor de SQL por lotes:

  • bigquerymigration.workflows.create
  • bigquerymigration.workflows.get
  • bigquerymigration.workflows.list
  • bigquerymigration.workflows.delete
  • bigquerymigration.subtasks.get
  • bigquerymigration.subtasks.list
  • storage.objects.get
  • storage.objects.list
  • storage.objects.create

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

Recopila los archivos de origen

Los archivos de origen deben ser archivos de texto que contengan SQL válido para el dialecto de origen. Los archivos de origen también pueden incluir comentarios. Haz todo lo posible para asegurarte de que SQL sea válido a través del uso de los métodos disponibles para ti.

Crea archivos de metadatos

Para ayudar a que el servicio genere resultados de traducción más precisos, te recomendamos que proporciones archivos de metadatos. Sin embargo, esto no es obligatorio.

Puedes usar la herramienta de extracción de línea de comandos dwh-migration-dumper para generar la información de metadatos o puedes proporcionar tus propios archivos de metadatos. Una vez que los archivos de metadatos están preparados, puedes incluirlos junto con los archivos de origen en la carpeta de origen de la traducción. El traductor los detecta automáticamente y los aprovecha para traducir archivos de origen; no necesitas establecer ninguna configuración adicional para habilitar esto.

Si deseas generar información de metadatos a través de la herramienta dwh-migration-dumper, consulta Genera metadatos para la traducción.

Si deseas proporcionar tus propios metadatos, recopila las declaraciones del lenguaje de definición de datos (DDL) para los objetos SQL del sistema de origen en archivos de texto separados.

Decide cómo enviar el trabajo de traducción

Tienes tres opciones para enviar un trabajo de traducción por lotes:

  • Cliente de traducción por lotes: Para configurar un trabajo, cambia parámetros de configuración de un archivo de configuración y envía el trabajo a través de la línea de comandos. No es necesario que subas de forma manual los archivos de origen a Cloud Storage con este enfoque. El cliente aún usa Cloud Storage para almacenar archivos durante el procesamiento del trabajo de traducción.

    El cliente de traducción por lotes heredado es un cliente de Python de código abierto que te permite traducir archivos de origen ubicados en tu máquina local y hacer que los archivos traducidos se envíen a un directorio local. Puedes configurar el cliente para uso básico cambiando algunos parámetros de configuración en su archivo de configuración. Si lo deseas, también puedes configurar el cliente para que aborde tareas más complejas, como el reemplazo de macros, y el procesamiento previo y posterior de las entradas y salidas de traducción. Para obtener más información, consulta el readme del cliente traducción por lotes.

  • Consola deGoogle Cloud : Configura y envía un trabajo a través de una interfaz de usuario. Este enfoque requiere que subas los archivos de origen a Cloud Storage.

Crea archivos YAML de configuración

De forma opcional, puedes crear y usar archivos YAML de configuración de configuración para personalizar tus traducciones por lotes. Estos archivos se pueden usar para transformar el resultado de la traducción de varias maneras. Por ejemplo, puedes crear un archivo YAML de configuración para cambiar el caso de un objeto SQL durante la traducción.

Si quieres utilizar el Google Cloud consola o la API de migración de BigQuery para un trabajo de traducción por lotes, puedeCargue el archivo de configuración YAML en el bucket de Cloud Storage que contiene los archivos fuente. .

Si deseas usar el cliente de traducción por lotes, puedes colocar el archivo YAML de configuración en la carpeta de entrada de traducción local.

Sube archivos de entrada a Cloud Storage

Si quieres utilizar el Google Cloud Para realizar una traducción mediante la consola o la API de migración de BigQuery, debe cargar los archivos de origen que contienen las consultas y los scripts que desea traducir en Cloud Storage. También puedes subir cualquier archivo de metadatos o archivos YAML de configuración al mismo bucket de Cloud Storage y directorio que contiene los archivos de origen. Para obtener más información sobre cómo crear buckets y cargar archivos en Cloud Storage, consulte Crear buckets y Cargar objetos desde un sistema de archivos.

Cómo controlar las funciones de SQL no admitidas con UDF auxiliares

Al traducir SQL de un dialecto de origen a BigQuery, es posible que algunas funciones no tengan un equivalente directo. Para solucionar esto, el Servicio de Migración de BigQuery (y la comunidad de BigQuery en general) proporcionan funciones definidas por el usuario (UDF, por sus siglas en inglés) que replican el comportamiento de estas funciones de dialecto de origen no compatibles.

Estas UDF suelen encontrarse en el conjunto de datos públicos de bqutil, lo que permite que las consultas traducidas hagan referencia a ellas inicialmente con el formato bqutil.<dataset>.<function>(). Por ejemplo, bqutil.fn.cw_count().

Consideraciones importantes para los entornos de producción:

Si bien bqutil ofrece acceso conveniente a estas UDF de ayuda para la traducción y las pruebas iniciales, no se recomienda depender directamente de bqutil para las cargas de trabajo de producción por varios motivos:

  1. Control de versiones: El proyecto bqutil aloja la versión más reciente de estas UDF, lo que significa que sus definiciones pueden cambiar con el tiempo. Depender directamente de bqutil podría provocar un comportamiento inesperado o cambios que rompan las reglas en sus consultas de producción si se actualiza la lógica de una UDF.
  2. Aislamiento de dependencias: Implementar funciones definidas por el usuario (UDF) en su propio proyecto aísla su entorno de producción de los cambios externos.
  3. Personalización: Es posible que debas modificar u optimizar estas UDF para que se adapten mejor a tu lógica empresarial específica o a tus requisitos de rendimiento. Esto solo es posible si forman parte de tu propio proyecto.
  4. Seguridad y administración: Es posible que las políticas de seguridad de tu organización restrinjan el acceso directo a conjuntos de datos públicos, como bqutil, para el procesamiento de datos de producción. Copiar UDFs a tu entorno controlado se alinea con esas políticas.

Implementación de funciones definidas por el usuario (UDF) auxiliares en su proyecto:

Para un uso de producción confiable y estable, debes implementar estas UDF auxiliares en tu propio proyecto y conjunto de datos. Esto te da control total sobre su versión, personalización y acceso. Para obtener instrucciones detalladas sobre cómo implementar estas UDF, consulta la guía de implementación de UDF en GitHub. Esta guía proporciona los scripts y los pasos necesarios para copiar las funciones definidas por el usuario (UDF) en su entorno.

Envía un trabajo de traducción

Sigue estos pasos para iniciar un trabajo de traducción, ver su progreso y ver los resultados.

Console

En estos pasos, se da por sentado que ya subiste archivos de origen a un bucket de Cloud Storage.

  1. En la consola de Google Cloud , ve a la página Traducción de SQL.

    Ir a Traducción de SQL

  2. En el panel Traducción de SQL, haz clic en Iniciar traducción.

  3. En Configuración de traducción, ingresa lo siguiente:

    1. En Nombre visible, escribe un nombre para el trabajo de traducción. El nombre puede contener letras, números o guiones bajos.
    2. 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. El trabajo de traducción tiene un mejor rendimiento cuando eliges la misma ubicación que tu bucket de archivos de origen.
    3. En Dialecto de origen, selecciona el dialecto de SQL que deseas traducir.
    4. En Dialecto de destino, selecciona GoogleSQL.
  4. Haz clic en Siguiente.

  5. En Detalles de la ubicación del archivo, especifica las rutas de Cloud Storage que se usarán para la entrada y salida de la traducción. Puedes escribir las rutas en el formato bucket_name/folder_name/ o usar la opción Explorar para navegar a una carpeta.

    1. En Ubicación del directorio de salida, especifica una ruta de acceso a la carpeta de Cloud Storage de destino para los archivos traducidos. Este directorio sirve como directorio raíz para todos los resultados de la traducción.
    2. Elige una o más ubicaciones de directorios de entrada que contengan la ruta de acceso a los archivos SQL que se traducirán.
    3. A cada directorio de entrada se le puede asignar opcionalmente un nombre de subdirectorio de Salida debajo del directorio raíz de salida si es necesario.
  6. Haz clic en Siguiente.

  7. Selecciona la configuración opcional que necesites para personalizar los metadatos y cualquier resultado de traducción adicional.

  8. Puedes personalizar aún más el comportamiento de la traducción creando archivos YAML de configuración y colocándolos en el bucket de Cloud Storage de entrada. Estos archivos se pueden usar para renombrar objetos, habilitar optimizaciones, mejorar las traducciones con Gemini y mucho más. Para obtener más información sobre los archivos YAML de configuración, consulta Crea un archivo YAML de configuración.

  9. Haz clic en Crear para iniciar el trabajo de traducción.

Una vez que se crea el trabajo de traducción, puedes ver su estado en la lista de trabajos de traducción.

Cliente de traducción por lotes

  1. Instala el cliente de traducción por lotes y Google Cloud CLI.

  2. Genera un archivo de credenciales de gcloud CLI.

  3. En el directorio de instalación del cliente de traducción por lotes, usa el editor de texto que prefieras para abrir el archivo config.yaml y modificar los siguientes parámetros de configuración:

    • project_number: Escribe el número de proyecto que deseas usar para el trabajo de traducción por lotes. Puedes encontrarlo en el panel Información del proyecto en la Google Cloud página de bienvenida de la consola del proyecto.
    • gcs_bucket: Escribe el nombre del bucket de Cloud Storage que el cliente de traducción por lotes usa para almacenar archivos durante el procesamiento del trabajo de traducción.
    • input_directory: Escriba la ruta absoluta o relativa al directorio que contiene los archivos fuente y cualquier archivo de metadatos.
    • output_directory: Escribe la ruta de acceso absoluta o relativa al directorio de destino de los archivos traducidos.
  4. Guarda los cambios y cierra el archivo config.yaml.

  5. Coloca tus archivos de origen y metadatos en el directorio de entrada.

  6. Ejecuta el cliente de traducción por lotes con el siguiente comando:

    bin/dwh-migration-client
    
  7. Crea un trabajo de traducción.

    • En el siguiente ejemplo, se muestra un comando para crear un trabajo de traducción. El comando ejecutará el flujo de trabajo y mostrará el resultado si este se realiza correctamente.

      gcloud bq migration-workflows create --location=us --config-file=CONFIG_FILE_NAME.json
    • En el siguiente ejemplo, se muestra un comando para crear y ejecutar el flujo de trabajo con la marca --async. El comando creará y ejecutará el flujo de trabajo y devolverá inmediatamente un enlace al mismo.

      gcloud bq migration-workflows create --location=LOCATION  --config-file=CONFIG_FILE_NAME.json --async
    • En el siguiente ejemplo, se muestra un comando para enumerar tus trabajos de traducción:

      gcloud bq migration-workflows list --location=LOCATION

    Reemplaza lo siguiente:

    • LOCATION: Es la ubicación del proyecto Google Cloud que ejecuta este trabajo de traducción.
    • CONFIG_FILE_NAME: el nombre del archivo config.yaml. Una vez que se crea el trabajo de traducción, puedes ver su estado en la lista de trabajos de traducción en la consola de Google Cloud .
  8. Es opcional. Una vez que se haya completado el trabajo de traducción, borra los archivos que creó en el bucket de Cloud Storage que especificaste para evitar costos de almacenamiento.

Interfaz de línea de comandos de BigQuery

Puedes ejecutar el traductor de SQL por lotes con la herramienta de línea de comandos de bq siguiendo estos pasos:

  1. Crea un archivo de configuración de traducción en formato YAML o JSON. En este archivo, debe definir la ruta al archivo de origen, el destino de la salida y los dialectos de origen y destino de su traducción.

    El siguiente ejemplo muestra un archivo YAML de configuración de traducción para una traducción de Teradata a BigQuery:

    tasks:
    translation_task:
      type: Teradata2BigQuery_Translation
      translationDetails:
        sourceTargetMapping:
        - sourceSpec:
            baseUri: gs://bq-translations/input
          targetSpec:
            relativePath: output
        targetBaseUri: gs://bq-translations
        targetTypes:
        - sql
        sourceEnvironment:
          defaultDatabase: default_db
          schemaSearchPath:
          - foo

    En el siguiente ejemplo, se muestra un archivo JSON de configuración de traducción para una traducción de Teradata a BigQuery:

    {
    "tasks": {
      "translation_task": {
        "type": "Teradata2BigQuery_Translation",
        "translationDetails": {
          "sourceTargetMapping": [
            {
              "sourceSpec": {
                "literal": {
                  "literalString": "sel 1",
                  "relativePath": "my_input_1"
                },
                "encoding": "UTF-8"
              }
            },
            {
              "sourceSpec": {
                "literal": {
                  "literalString": "sel 2",
                  "relativePath": "my_input_2"
                },
                "encoding": "UTF-8"
              }
            }
          ],
          "targetReturnLiterals": [
            "sql/my_input_1",
            "sql/my_input_2"
          ]
        }
      }
    }
    }
  2. Una vez creada la configuración de traducción, ejecute el siguiente comando para iniciar el proceso de traducción.

    bq mk --migration_workflow --location=LOCATION --config_file=CONFIG_FILE_NAME.json

    Reemplaza lo siguiente:

    • LOCATION: Es la ubicación del proyecto Google Cloud que ejecuta este trabajo de traducción.
    • CONFIG_FILE_NAME: Es el nombre del archivo config.yaml.
  • Para ver detalles sobre un trabajo de traducción específico, ejecuta el siguiente comando:

    bq show --migration_workflow projects/PROJECT_ID/ locations/us/workflows/WORKFLOW_ID

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID del Google Cloud proyecto que está ejecutando este trabajo de traducción.
    • WORKFLOW_ID: Es el ID del trabajo de traducción.
  • Para ver los resultados de un trabajo de traducción específico, ejecuta el siguiente comando:

    gcloud bq migration-workflows describe projects/PROJECT_ID    /locations/us/workflows/WORKFLOW_ID
  • Para quitar un trabajo de traducción de la lista, ejecuta el siguiente comando:

    bq rm --migration_workflow projects/PROJECT_ID/locations/us/workflows/WORKFLOW_ID
  • Para enumerar todos tus trabajos de traducción, ejecuta el siguiente comando:

    bq ls --migration_workflow --location=LOCATION

Explora el resultado de la traducción

Después de ejecutar el trabajo de traducción, puedes ver información sobre el trabajo en la Google Cloud consola. Si usaste la Google Cloud consola para ejecutar el trabajo, puedes ver sus resultados en el bucket de Cloud Storage de destino que especificaste. Si usaste el cliente de traducción por lotes para ejecutar el trabajo, puedes ver sus resultados en el directorio de salida que especificaste. El traductor de SQL por lotes genera los siguientes archivos en el destino especificado:

  • Los archivos traducidos
  • El informe de resumen de traducción en formato CSV
  • La asignación de nombres de salida consumida en formato JSON
  • Son los archivos de sugerencias de IA.

Salida de la consola deGoogle Cloud

Para ver los detalles del trabajo de traducción, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Traducción de SQL.

    Ir a Traducción de SQL

  2. En la lista de trabajos de traducción, busca el trabajo del que deseas ver los detalles de la traducción. Luego, haz clic en el nombre del trabajo de traducción. Podrás ver una visualización de Sankey que ilustra la calidad general del trabajo, el número de líneas de código de entrada (excluyendo las líneas en blanco y los comentarios) y una lista de los problemas que surgieron durante el proceso de traducción. Debes priorizar las correcciones de izquierda a derecha. Los problemas en una etapa inicial pueden causar problemas adicionales en etapas posteriores.

  3. Mantén el puntero sobre las barras de error o advertencia y revisa las sugerencias para determinar los próximos pasos para depurar el trabajo de traducción.

  4. Selecciona la pestaña Resumen de registro para ver un resumen de los problemas de traducción, incluidas las categorías de problema, las acciones sugeridas y la frecuencia con la que ocurrió cada problema. Puedes hacer clic en las barras de visualización de Sankey para filtrar los problemas. También puede seleccionar una categoría de problema para ver los mensajes de registro asociados con esa categoría.

  5. Selecciona la pestaña Mensajes de registro para ver más detalles sobre cada problema de traducción, incluida la categoría de problema, el mensaje de problema específico y un vínculo al archivo en el que se produjo el problema. Puedes hacer clic en las barras de visualización de Sankey para filtrar los problemas. Puedes seleccionar un problema en la pestaña Mensaje de registro para abrir la pestaña Código que muestra el archivo de entrada y salida si es aplicable.

  6. Haga clic en la pestaña Detalles del trabajo para ver los detalles de configuración del trabajo de traducción.

Informe de resumen

El informe de resumen es un archivo CSV que contiene una tabla de todos los mensajes de advertencia y error que se encontraron durante el trabajo de traducción.

Para ver el archivo de resumen en la consola Google Cloud , siga estos pasos:

  1. En la consola de Google Cloud , ve a la página Traducción de SQL.

    Ir a Traducción de SQL

  2. En la lista de trabajos de traducción, busca el que te interesa y, luego, haz clic en su nombre o en Más opciones > Mostrar detalles.

  3. En la pestaña Detalles del trabajo, en la sección Informe de traducción, haga clic en translation_report.csv.

  4. En la página Detalles del objeto, haz clic en el valor de la fila URL autenticada para ver el archivo en tu navegador.

En la siguiente tabla, se describen las columnas de archivos de resumen:

Columna Descripción
Marca de tiempo La marca de tiempo en la que ocurrió el problema.
FilePath La ruta de acceso al archivo de origen con el que está asociado el problema.
Nombre del archivo El nombre del archivo de origen con el que está asociado el problema.
ScriptLine El número de línea en la que ocurrió el problema.
ScriptColumn El número de columna en la que ocurrió el problema.
TranspilerComponent El componente interno del motor de traducción en el que se produjo la advertencia o el error. Esta columna puede estar vacía.
Entorno Es el entorno del dialecto de traducción asociado con la advertencia o el error. Esta columna puede estar vacía.
ObjectName Es el objeto de SQL en el archivo de origen que está asociado con la advertencia o el error. Esta columna puede estar vacía.
Gravedad La gravedad del problema, ya sea una advertencia o un error.
Categoría La categoría del problema de traducción.
SourceType Es la fuente de este problema. El valor de esta columna puede ser SQL, que indica un problema en los archivos SQL de entrada, o METADATA, que indica un problema en el paquete de metadatos.
Mensaje El mensaje de advertencia o de error del problema de traducción.
ScriptContext El fragmento de SQL en el archivo de origen que está asociado con el problema.
Acción La acción que te recomendamos que realices para resolver el problema.

Pestaña Código

La pestaña Código te permite revisar más información sobre los archivos de entrada y salida para un trabajo de traducción en particular. En la pestaña Código, puedes examinar los archivos usados en un trabajo de traducción, revisar una comparación en paralelo de un archivo de entrada y su traducción para detectar errores y ver resúmenes de registros y mensajes para un archivo específico en un trabajo.

Para acceder a la pestaña Código, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Traducción de SQL.

    Ir a Traducción de SQL

  2. En la lista de trabajos de traducción, busca el que te interesa y, luego, haz clic en su nombre o en Más opciones > Mostrar detalles.

  3. Seleccionar la pestaña Código. La pestaña de código consta de los siguientes paneles:

    Visualiza la pestaña de código en la página de traducción de SQL.

    • Explorador de archivos: Contiene todos los archivos SQL que se usan para la traducción. Haz clic en un archivo para ver su entrada y salida de traducción, y cualquier problema de traducción.
    • Entrada mejorada con Gemini: Es la entrada de SQL que tradujo el motor de traducción. Si especificaste reglas de personalización de Gemini para el SQL fuente en la configuración de Gemini, el traductor primero transforma la entrada original y, luego, traduce la entrada mejorada con Gemini. Para ver la entrada original, haz clic en Ver entrada original.
    • Resultado de la traducción: Es el resultado de la traducción. Si especificaste reglas de personalización de Gemini para el SQL de destino en la configuración de Gemini, la transformación se aplica al resultado traducido como un resultado mejorado por Gemini. Si hay un resultado mejorado por Gemini disponible, puedes hacer clic en el botón Sugerencia de Gemini para revisarlo.
  4. Opcional: Para ver un archivo de entrada y su archivo de salida en el traductor interactivo SQL de BigQuery, haga clic en Editar. Puedes editar los archivos y guardar el archivo de salida en Cloud Storage.

Pestaña Configuración

Puedes agregar, cambiar el nombre, ver o editar tus archivos YAML de configuración en la pestaña Configuración.El Explorador de esquemas muestra la documentación de los tipos de configuración admitidos para ayudarte a escribir tus archivos YAML de configuración. Después de editar los archivos YAML de configuración, puedes volver a ejecutar el trabajo para usar la nueva configuración.

Para acceder a la pestaña de configuración, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Traducción de SQL.

    Ir a Traducción de SQL

  2. En la lista de trabajos de traducción, busca el que te interesa y, luego, haz clic en su nombre o en Más opciones > Mostrar detalles.

  3. En la ventana Detalles de la traducción, haz clic en la pestaña Configuración.

Visualiza la pestaña de configuración en la página de traducción de SQL.

Para agregar un nuevo archivo de configuración:

  1. Haz clic en more_vert Más opciones > Crear archivo YAML de configuración.
  2. Aparecerá un panel en el que podrás elegir el tipo, la ubicación y el nombre del nuevo archivo YAML de configuración.
  3. Haz clic en Crear.

Para editar un archivo de configuración existente:

  1. Haz clic en el archivo YAML de configuración.
  2. Edita el archivo y, luego, haz clic en Guardar.
  3. Haz clic en Volver a ejecutar para ejecutar un nuevo trabajo de traducción que use los archivos YAML de configuración editados.

Para cambiar el nombre de un archivo de configuración existente, haz clic en more_vert Más opciones > Cambiar nombre.

Archivo de asignación de nombres de salida consumido

Este archivo JSON contiene las reglas de asignación de nombres de salida que usó el trabajo de traducción. Las reglas en este archivo pueden diferir de las reglas de asignación de nombres de salida que especificaste para el trabajo de traducción debido a conflictos en las reglas de asignación de nombres o a la falta de reglas de asignación de nombres para los objetos SQL que se identificaron durante la traducción. Revisa este archivo para determinar si las reglas de asignación de nombres necesitan corrección. Si es así, crea nuevas reglas de asignación de nombres de salida que aborden cualquier problema que identifiques y ejecuta un nuevo trabajo de traducción.

Archivos traducidos

Para cada archivo de origen, se genera el archivo de salida correspondiente en la ruta de destino. El archivo de salida contiene la consulta traducida.

Depura consultas de SQL traducidas por lotes con el traductor interactivo de SQL

Puedes usar el traductor interactivo de SQL de BigQuery para revisar o depurar una consulta en SQL con los mismos metadatos o la misma información de asignación de objetos que la base de datos de origen. Después de completar un trabajo de traducción por lotes, BigQuery genera un ID de configuración de traducción que contiene información sobre los metadatos del trabajo, la asignación de objetos o la ruta de búsqueda del esquema, según corresponda para la consulta. Usa el ID de configuración de traducción por lotes con el traductor interactivo de SQL para ejecutar consultas de SQL con la configuración especificada.

Para iniciar una traducción interactiva de SQL a través de un ID de configuración de traducción por lotes, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Traducción de SQL.

    Ir a Traducción de SQL

  2. En la lista de trabajos de traducción, busca el trabajo que te interesa y, luego, haz clic en Más opciones > Abrir la traducción interactiva.

    El traductor interactivo de SQL de BigQuery ahora se abre con el ID de configuración de traducción por lotes correspondiente. Para ver el ID de configuración de traducción de la traducción interactiva, haz clic en Herramientas > Traducción de consultas > Configuración de traducción en el traductor de SQL interactivo.

Para depurar un archivo de traducción por lotes en el traductor interactivo de SQL, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Traducción de SQL.

    Ir a Traducción de SQL

  2. En la lista de trabajos de traducción, busca el que te interesa y, luego, haz clic en su nombre o en Más opciones > Mostrar detalles.

  3. En la ventana Detalles de la traducción, haz clic en la pestaña Código.

  4. En el explorador de archivos, haz clic en el nombre del archivo para abrirlo.

  5. Junto al nombre del archivo de salida, haz clic en Editar para abrir los archivos en el traductor de SQL interactivo (Vista previa).

    Verás los archivos de entrada y salida completados en el traductor interactivo de SQL, que ahora usa el ID de configuración de traducción por lotes correspondiente.

  6. Para guardar el archivo de salida editado en Cloud Storage, en el traductor interactivo de SQL, haz clic en Guardar > Guardar en GCS.

Limitaciones

El traductor no puede traducir funciones definidas por el usuario (UDF) de lenguajes que no sean SQL, ya que no puede analizarlas para determinar sus tipos de datos de entrada y salida. Esto provoca que la traducción de las instrucciones de SQL que hacen referencia a estas UDF sea inexacta. Para asegurarte de que se haga referencia de forma correcta a las UDF que no son de SQL durante la traducción, usa SQL válido para crear UDF de marcador de posición con las mismas firmas.

Por ejemplo, supongamos que tienes una UDF escrita en C que calcula la suma de dos números enteros. Para asegurarte de que las instrucciones de SQL que hacen referencia a esta UDF se traduzcan de forma correcta, crea una UDF de SQL de marcador de posición que comparta la misma firma que la UDF de C, como se muestra en el siguiente ejemplo:

CREATE FUNCTION Test.MySum (a INT, b INT)
  RETURNS INT
  LANGUAGE SQL
  RETURN a + b;

Guarda esta UDF de marcador de posición en un archivo de texto y, luego, incluye ese archivo como uno de los archivos de origen para el trabajo de traducción. Así, el traductor puede aprender la definición de la UDF y, además, identificar los tipos de datos de entrada y salida esperados.

Cuota y límites

  • Se aplican las cuotas de la API de BigQuery Migration.
  • Cada proyecto puede tener como máximo 10 tareas de traducción activas.
  • Si bien no existe un límite estricto en la cantidad total de archivos de origen y de metadatos, recomendamos mantener la cantidad de archivos por debajo de 1,000 para obtener un mejor rendimiento.

Soluciona problemas de errores de traducción

Problemas de traducción de RelationNotFound o AttributeNotFound

Después de traducir una consulta usando el traductor SQL por lotes , es posible que encuentre una traducción fallida con el error RelationNotFound o AttributeNotFound.

Puedes encontrar traducciones fallidas navegando a la página Detalles de la traducción y abriendo la pestaña Mensajes de registro.

La traducción funciona mejor con DDL de metadatos. Cuando no se pueden encontrar definiciones de objetos SQL, el motor de traducción genera problemas RelationNotFound o AttributeNotFound. Recomendamos usar el extractor de metadatos para generar paquetes de metadatos para garantizar que todas las definiciones de objetos estén presentes. Agregar metadatos es el primer paso recomendado para resolver la mayoría de los errores de traducción, ya que a menudo puede corregir muchos otros errores que se generan de forma indirecta por la falta de metadatos.

Si deseas obtener más información, consulta Genera metadatos para la traducción y la evaluación.

Cómo corregir problemas de traducción con Gemini

Para corregir los trabajos de traducción fallidos con los errores RelationNotFound o AttributeNotFound, también puedes usar Gemini para intentar resolver estos problemas con los siguientes pasos.

  1. Navega a la página Detalles de la traducción y abre la pestaña Mensajes de registro.

  2. Haga clic en la consulta que tenga el mensaje RelationNotFound o AttributeNotFound en la columna Categoría.

  3. Haz clic en el mensaje de error para navegar al archivo y a la línea que contienen el error en la pestaña de código.

  4. En la columna Acción, haga clic en Corrección sugerida.

  5. Selecciona una de las siguientes opciones: Aplicar o Aplicar y volver a ejecutar:

    • Haga clic en Aplicar para copiar el archivo de esquema generado desde el directorio de salida al directorio de entrada.
    • Haz clic en Aplicar y volver a ejecutar para copiar el archivo de esquema generado del directorio de salida al directorio de entrada y abrir una ventana de nueva ejecución.

Precios

No se aplican cargos por usar el traductor de SQL por lotes. 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: