Traduzir consultas com o tradutor SQL interativo

Neste documento, descrevemos como traduzir uma consulta de um dialeto SQL diferente para uma consulta do GoogleSQL pelo tradutor de SQL interativo do BigQuery. O tradutor de SQL interativo pode ajudar a reduzir o tempo e o esforço da migração de cargas de trabalho para o BigQuery. Este documento é destinado a usuários familiarizados com o Console do Google Cloud.

Se o local tiver suporte, use o recurso de regra de tradução (pré-lançamento) para personalizar a forma como o tradutor de SQL interativo traduz o SQL.

Limitações

É preciso fazer login com uma Conta do Google para usar o conversor de SQL interativo. O conversor de SQL interativo não é compatível com o uso de identidades federadas.

Antes de começar

Se o projeto da Google Cloud CLI foi criado antes de 15 de fevereiro de 2022, ative a API BigQuery Migration da seguinte maneira:

  1. No console do Google Cloud, acesse a página da API BigQuery Migration.

    Acesse a API BigQuery Migration

  2. Clique em Enable.

Permissões e papéis

Nesta seção, descrevemos as permissões do Identity and Access Management (IAM) necessárias para usar o tradutor de SQL interativo e os papéis predefinidos do IAM que concedem essas permissões. Nesta seção, também descrevemos as permissões necessárias para a definição de configurações de tradução adicionais.

Permissões para usar o conversor de SQL interativo

Para usar o tradutor de SQL interativo, você precisa desta permissão:

  • bigquerymigration.translation.translate

O papel predefinido do IAM a seguir fornece a permissão necessária para usar o conversor de SQL interativo:

  • roles/bigquerymigration.translationUser

Para executar uma consulta no tradutor interativo SQL, você precisa das mesmas permissões que precisaria para executar qualquer consulta no BigQuery. Por exemplo, para consultar uma tabela, é preciso ter permissão para ler os dados dela. Saiba mais em Como consultar dados do BigQuery.

Permissões para definir outras configurações de tradução

É possível definir configurações de tradução adicionais pelos campos Translation Config ID e Translation Configuration Source Location das configurações de tradução. Para definir essas configurações de tradução, você precisa destas permissões:

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

O papel predefinido do IAM a seguir fornece as permissões necessárias para definir configurações de tradução adicionais:

  • roles/bigquerymigration.viewer

Consulte mais informações sobre o IAM do BigQuery em Controle de acesso com o IAM.

Dialetos SQL compatíveis

O tradutor de SQL interativo do BigQuery traduz os seguintes dialetos SQL para o GoogleSQL:

  • SQL do Amazon Redshift
  • Apache HiveQL e CLI Beeline
  • IBM Netezza SQL e NZPLSQL
  • Teradata e Teradata Vantage
    • SQL
    • Basic Teradata Query (BTEQ)
    • Transporte paralelo do Teradata (TPT)

Além disso, a tradução dos seguintes dialetos SQL é suportada na versão de pré-lançamento:

  • SQL do Apache Spark
  • T-SQL do Azure Synapse
  • SQL do Greenplum
  • SQL do IBM DB2
  • SQL para MySQL
  • SQL da Oracle, PL/SQL, Exadata
  • SQL do PostgreSQL
  • Trino ou PrestoSQL
  • SQL do Snowflake
  • T-SQL do SQL Server
  • SQLite
  • SQL da Vertica

Locais

O conversor de SQL interativo está disponível nos seguintes locais de processamento:

Descrição da região Nome da região Detalhes
Ásia-Pacífico
Tóquio asia-northeast1
Mumbai asia-south1
Singapura asia-southeast1
Sydney australia-southeast1
Europa
UE multirregião eu
Varsóvia europe-central2
Finlândia europe-north1 Ícone de folha Baixo CO2
Madri europe-southwest1
Bélgica europe-west1 Ícone de folha Baixo CO2
Londres europe-west2 ícone de folha CO2 baixo
Frankfurt europe-west3 ícone de folha Baixo CO2
Países Baixos europe-west4
Zurique europe-west6 Ícone de folha Baixo CO2
Paris europe-west9 Ícone de folha Baixo CO2
Turim europe-west12
América
São Paulo southamerica-east1 Ícone de folha Baixo CO2
EUA multirregião us
Iowa us-central1 Ícone de folha CO2 baixo
Carolina do Sul us-east1
Norte da Virgínia us-east4
Columbus, Ohio us-east5
Dallas us-south1
Oregon us-west1 Ícone de folha Baixo CO2
Los Angeles us-west2
Salt Lake City us-west3

O recurso de regra de tradução está disponível nos seguintes locais de processamento:

  • us (EUA multirregional)
  • eu (UE multirregião)
  • us-central1 (Iowa)
  • europe-west4 (Países Baixos)

Traduzir uma consulta em GoogleSQL

Siga estas etapas para traduzir uma consulta em GoogleSQL:

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No painel Editor, clique em Mais e selecione Configurações de tradução.

  3. Em Dialeto de origem, selecione o dialeto SQL que você quer traduzir.

  4. Opcional. Em local de processamento, selecione o local em que você quer que o trabalho de tradução seja executado. Por exemplo, se você estiver na Europa e não quiser que seus dados cruzem os limites de local, selecione a região eu.

  5. Clique em Salvar.

  6. No painel Editor, clique em Mais e selecione Ativar tradução do SQL.

    O painel Editor é dividido em dois.

  7. No painel esquerdo, digite a consulta que você quer traduzir.

  8. Clique em Traduzir.

    O BigQuery traduz a consulta em GoogleSQL e a exibe no painel direito. Por exemplo, a captura de tela a seguir mostra o Teradata SQL traduzido:

    Exibe uma consulta SQL do Teradata traduzida para o GoogleSQL

  9. Opcional: para executar a consulta traduzida do GoogleSQL, clique em Executar.

  10. Opcional: para retornar ao editor SQL, clique em Mais e selecione Desativar tradução do SQL.

    O painel Editor retorna para um único painel.

Criar uma regra de tradução

É possível personalizar a forma como o tradutor de SQL interativo converte o SQL criando regras de tradução. O conversor de SQL interativo ajusta as traduções com base nas regras de conversão SQL aprimoradas do Gemini atribuídas a ele, permitindo personalizar os resultados de conversão com base nas necessidades de migração. Esse recurso é compatível apenas com determinados locais.

Para criar uma regra de conversão de SQL aprimorada do Gemini, faça o seguinte:

  1. Depois de executar uma tradução interativa, clique em Personalizar.

    Botão "Personalizar tradução".

  2. Use uma ou as duas solicitações a seguir para criar uma regra de tradução:

    • No prompt Substituir um padrão SQL por outro, especifique um padrão SQL que você queira substituir no campo Substituir e um padrão SQL para substituir. no campo With.

      Um padrão SQL pode conter qualquer número de instruções, cláusulas ou funções em um script SQL. Quando você cria uma regra usando esse prompt, a tradução de SQL aprimorada do Gemini identifica todas as instâncias desse padrão de SQL na saída da tradução e as substitui dinamicamente por outro padrão de SQL. Por exemplo, use essa solicitação para criar uma regra que substitua todas as ocorrências de months_between (X,Y) por date_diff(X,Y,MONTH).

    • No campo Descrever uma alteração na saída de tradução, descreva uma mudança na saída de tradução do SQL na linguagem natural.

      Quando você cria uma regra usando esse prompt, a tradução do SQL aprimorada do Gemini identifica a solicitação e faz a alteração especificada na saída da tradução.

  3. Clique em Visualização.

  4. Na caixa de diálogo Visualizar alterações sugeridas, revise as mudanças feitas pela tradução aprimorada do SQL do Gemini para o resultado da tradução com base na sua regra.

  5. Opcional: para adicionar essa regra para uso em traduções futuras, marque a caixa de seleção Adicionar regra....

    As regras são salvas em um arquivo YAML de configuração, conforme especificado no campo Translation Configuration Source Location nas configurações de tradução. Para mais informações sobre arquivos YAML de configuração, consulte Traduzir uma consulta com configurações adicionais. Um arquivo YAML de configuração pode aceitar até 10 regras de tradução.

  6. Para aplicar as mudanças sugeridas à saída da tradução, clique em Aplicar.

Melhorar o desempenho do job de tradução interativo

Para melhorar a estabilidade e evitar problemas de tempo limite da rede em jobs de tradução interativos de longa duração (por exemplo, usando um grande pacote de arquivos de metadados), ative a API consolidada de tradução. A API consolidada de tradução combina os tradutores interativos e em lote em um único fluxo de trabalho, melhorando a eficiência e a estabilidade dos seus jobs de tradução interativos.

Funções exigidas

Para receber as permissões necessárias para usar a API consolidada de tradução com o tradutor interativo, peça ao administrador para conceder a você o papel MigrateWorkflow Editor (roles/bigquerymigration.editor) do IAM no recurso parent. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esse papel predefinido contém as permissões necessárias para usar a API consolidada de tradução com o tradutor interativo. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para usar a API consolidada de tradução com o tradutor interativo:

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

Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos.

Ativar a API consolidada de tradução

Para ativar a API consolidada de tradução para o tradutor interativo, preencha o formulário de lista de permissões da API Consolidated Translation. Para mais informações sobre como usar a API consolidada com o conversor de SQL em lote, consulte as instruções da API em Enviar um job de tradução.

Traduzir uma consulta com configurações adicionais

Execute uma consulta interativa com configurações de tradução adicionais fornecendo um ID de configuração de tradução em lote ou com arquivos de configuração armazenados em uma pasta do Cloud Storage. As configurações de tradução podem incluir metadados de objetos SQL ou informações de mapeamento de objetos do banco de dados de origem que podem melhorar a qualidade da tradução. Por exemplo, inclua informações DDL ou esquemas do banco de dados de origem para melhorar a qualidade da tradução de SQL interativa.

Para especificar configurações de tradução fornecendo um ID de configuração de tradução em lote, faça o seguinte:

  1. No Editor de consultas, clique em Mais > Configurações de tradução.
  2. No campo ID de configuração de tradução, forneça um ID de configuração para tradução em lote para aplicar a mesma configuração de tradução de um job de migração em lote concluído do BigQuery.

    Para encontrar o ID de configuração de tradução em lote de um job, selecione um job de tradução em lote na página Tradução de SQL e clique na guia Configuração de tradução. O ID de configuração de tradução em lote é listado como Nome do recurso.

  3. Clique em Salvar.

Para especificar as configurações de tradução fornecendo um local para os arquivos de origem da configuração de tradução, faça o seguinte:

  1. No Editor de consultas, clique em Mais > Configurações de tradução.
  2. No campo Translation Configuration Source Location, especifique o caminho para os arquivos de configuração de tradução armazenados em uma pasta do Cloud Storage.

    O tradutor de SQL interativo do BigQuery oferece suporte a arquivos de configuração que contêm metadados de tradução e mapeamento de nome de objeto. Consulte informações sobre como fazer upload de arquivos para o Cloud Storage em Fazer upload de objetos de um sistema de arquivos.

  3. Clique em Salvar.

Limitações de tamanho do arquivo de configuração

Ao usar um arquivo de configuração de tradução com o conversor de SQL interativo do BigQuery, o arquivo de metadados compactado ou o arquivo de configuração YAML precisa ser menor que 50 MB. Se o tamanho do arquivo exceder 50 MB, o tradutor interativo pula esse arquivo de configuração durante a tradução e produz uma mensagem de erro semelhante a esta:

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

Um método para reduzir o tamanho do arquivo de metadados é usar as sinalizações --database ou --schema para extrair apenas metadados de bancos de dados ou esquemas relevantes para as consultas de entrada de tradução. Para mais informações sobre como usar essas sinalizações ao gerar arquivos de metadados, consulte Sinalizações globais.

Resolver erros de tradução

Os erros a seguir costumam ser encontrados ao usar o conversor de SQL interativo.

Problemas de tradução do RelationNotFound ou AttributeNotFound

Para garantir a conversão mais precisa, insira as instruções da linguagem de definição de dados (DDL) para todas as tabelas usadas em uma consulta antes da consulta. Por exemplo, para traduzir a consulta do Amazon Redshift select table1.field1, table2.field1 from table1, table2 where table1.id = table2.id;, é necessário inserir as seguintes instruções SQL no tradutor de SQL interativo:

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;

Preços

Não há custo para usar o conversor de SQL interativo. No entanto, o armazenamento usado para armazenar arquivos de entrada e saída incorre em taxas normais. Para mais informações, consulte preços de armazenamento.

A seguir

Saiba mais sobre as seguintes etapas na migração do armazenamento de dados: