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.

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 tradutor 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 tradutor 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 configurações de tradução adicionais

É 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 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

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 Save.

  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.

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 MigrateWorkflow Editor (roles/bigquerymigration.editor) Papel 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 Save.

Para especificar configurações de tradução fornecendo um arquivo de origem de 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 um arquivo de configuração de tradução armazenado 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 Save.

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

Quando você usa um arquivo de configuração de tradução com o tradutor de SQL interativo do BigQuery, o arquivo de metadados compactado ou 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.

Limitações

O tradutor SQL interativo não tem informações de esquema para as consultas inseridas para tradução. 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;

Locais

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

  • us (EUA multirregional)
  • eu (UE multirregião)
  • southamerica-east1 (São Paulo)
  • us-central1 (Iowa)
  • asia-northeast1 (Tóquio)
  • asia-south1 (Mumbai)
  • asia-southeast1 (Singapura)
  • australia-southeast1 (Sydney)
  • europe-central2 (Varsóvia)
  • europe-north1 (Finlândia)
  • europe-west1 (Bélgica)
  • europe-west2 (Londres)
  • europe-west3 (Frankfurt)

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: