Traduza consultas com o tradutor de SQL interativo
Este documento descreve como traduzir uma consulta de um dialeto SQL diferente para uma consulta GoogleSQL através do tradutor de SQL interativo do BigQuery. O tradutor de SQL interativo pode ajudar a reduzir o tempo e o esforço quando migra cargas de trabalho para o BigQuery. Este documento destina-se a utilizadores que estão familiarizados com a Trusted Cloud consola.
Se a sua localização for suportada, pode usar a funcionalidade de regra de tradução para personalizar a forma como o tradutor de SQL interativo traduz o SQL.
Antes de começar
Se o seu projeto da Google Cloud CLI foi criado antes de 15 de fevereiro de 2022, ative a API BigQuery Migration da seguinte forma:
Na Trusted Cloud consola, aceda à página API BigQuery Migration.
Clique em Ativar.
Autorizações e funções
Esta secção descreve as autorizações da gestão de identidade e de acesso (IAM) de que precisa para usar o tradutor de SQL interativo, incluindo as funções da IAM predefinidas que concedem essas autorizações. A secção também descreve as autorizações necessárias para configurar configurações de tradução adicionais.
Autorizações para usar o tradutor de SQL interativo
Para receber as autorizações de que precisa para usar o tradutor interativo,
peça ao seu administrador que lhe conceda a função de IAM de
Editor do MigrationWorkflow (roles/bigquerymigration.editor
)
no recurso parent
.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém as autorizações necessárias para usar o tradutor interativo. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para usar o tradutor interativo:
-
bigquerymigration.workflows.create
-
bigquerymigration.workflows.get
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Autorizações para configurar configurações de tradução adicionais
Pode configurar configurações de tradução adicionais através dos campos ID da configuração de tradução e Localização de origem da configuração de tradução nas definições de tradução. Para configurar estas configurações de tradução, precisa das seguintes autorizações:
bigquerymigration.workflows.get
bigquerymigration.workflows.list
A seguinte função de IAM predefinida fornece as autorizações de que precisa para configurar configurações de tradução adicionais:
roles/bigquerymigration.viewer
Para mais informações sobre a IAM do BigQuery, consulte o artigo Controlo de acesso com a IAM.
Dialetos de SQL suportados
O tradutor de SQL interativo do BigQuery pode traduzir os seguintes dialetos de SQL para GoogleSQL:
- SQL do Amazon Redshift
- Apache HiveQL e CLI Beeline
- IBM Netezza SQL e NZPLSQL
- Teradata e Teradata Vantage:
- SQL
- Basic Teradata Query (BTEQ)
- Teradata Parallel Transport (TPT)
Além disso, a tradução dos seguintes dialetos de SQL é suportada na pré-visualização:
- Apache Spark SQL
- Azure Synapse T-SQL
- Greenplum SQL
- IBM DB2 SQL
- MySQL SQL
- Oracle SQL, PL/SQL, Exadata
- SQL PostgreSQL
- Trino ou PrestoSQL
- SQL do Snowflake
- SQL Server T-SQL
- SQLite
- Vertica SQL
Processamento de funções SQL não suportadas com UDFs auxiliares
Quando traduz SQL de um dialeto de origem para o BigQuery, algumas funções podem não ter um equivalente direto. Para resolver este problema, o serviço de migração do BigQuery (e a comunidade do BigQuery em geral) disponibilizam funções definidas pelo utilizador (UDFs) auxiliares que replicam o comportamento destas funções de dialeto de origem não suportadas.
Estas FDU são frequentemente encontradas no conjunto de dados público bqutil
, o que permite que as consultas traduzidas as referenciem inicialmente através do formato bqutil.<dataset>.<function>()
. Por exemplo, bqutil.fn.cw_count()
.
Considerações importantes para ambientes de produção:
Embora o bqutil
ofereça acesso conveniente a estas FDU auxiliares para tradução e testes iniciais, a confiança direta no bqutil
para cargas de trabalho de produção não é recomendada por vários motivos:
- Controlo de versões: o projeto
bqutil
aloja a versão mais recente destas FDU, o que significa que as respetivas definições podem mudar ao longo do tempo. A utilização direta debqutil
pode levar a um comportamento inesperado ou a alterações significativas nas suas consultas de produção se a lógica de uma FDU for atualizada. - Isolamento de dependências: a implementação de FDU no seu próprio projeto isola o ambiente de produção de alterações externas.
- Personalização: pode ter de modificar ou otimizar estas FDU para se adequarem melhor à sua lógica de negócio específica ou aos requisitos de desempenho. Isto só é possível se estiverem no seu próprio projeto.
- Segurança e governação: as políticas de segurança da sua organização podem restringir o acesso direto a conjuntos de dados públicos, como o
bqutil
, para o tratamento de dados de produção. A cópia de FDU para o seu ambiente controlado está alinhada com essas políticas.
Implementar UDFs auxiliares no seu projeto:
Para uma utilização de produção fiável e estável, deve implementar estas UDFs auxiliares no seu próprio projeto e conjunto de dados. Isto dá-lhe controlo total sobre a versão, a personalização e o acesso. Para instruções detalhadas sobre como implementar estas FDU, consulte o guia de implementação de FDUs no GitHub. Este guia fornece os scripts e os passos necessários para copiar as FDUs para o seu ambiente.
Localizações
O tradutor de SQL interativo está disponível nas seguintes localizações de processamento:
Descrição da região | Nome da região | Detalhes | |
---|---|---|---|
Ásia-Pacífico | |||
Deli | asia-south2 |
||
Hong Kong | asia-east2 |
||
Jacarta | asia-southeast2 |
||
Melbourne | australia-southeast2 |
||
Mumbai | asia-south1 |
||
Osaca | asia-northeast2 |
||
Seul | asia-northeast3 |
||
Singapura | asia-southeast1 |
||
Sydney | australia-southeast1 |
||
Taiwan | asia-east1 |
||
Tóquio | asia-northeast1 |
||
Europa | |||
Bélgica | europe-west1 |
|
|
Berlim | europe-west10 |
||
Multirregional da UE | eu |
||
Finlândia | europe-north1 |
|
|
Frankfurt | europe-west3 |
||
Londres | europe-west2 |
|
|
Madrid | europe-southwest1 |
|
|
Milão | europe-west8 |
||
Países Baixos | europe-west4 |
|
|
Paris | europe-west9 |
|
|
Estocolmo | europe-north2 |
|
|
Turim | europe-west12 |
||
Varsóvia | europe-central2 |
||
Zurique | europe-west6 |
|
|
Americas | |||
Columbus, Ohio | us-east5 |
||
Dallas | us-south1 |
|
|
Iowa | us-central1 |
|
|
Las Vegas | us-west4 |
||
Los Angeles | us-west2 |
||
México | northamerica-south1 |
||
Virgínia do Norte | us-east4 |
||
Oregon | us-west1 |
|
|
Quebeque | northamerica-northeast1 |
|
|
São Paulo | southamerica-east1 |
|
|
Salt Lake City | us-west3 |
||
Santiago | southamerica-west1 |
|
|
Carolina do Sul | us-east1 |
||
Toronto | northamerica-northeast2 |
|
|
Multirregião dos EUA | us |
||
África | |||
Joanesburgo | africa-south1 |
||
MiddleEast | |||
Damã | me-central2 |
||
Doha | me-central1 |
||
Israel | me-west1 |
Por predefinição, a funcionalidade regra de tradução está disponível nas seguintes localizações de processamento:
us
(várias regiões nos EUA)eu
(multirregião da UE)us-central1
(Iowa)europe-west4
(Países Baixos)
As configurações de tradução baseadas no Gemini só estão disponíveis em localizações de processamento específicas. Para mais informações, consulte o artigo Localizações dos pontos finais do modelo da Google
Traduza uma consulta para GoogleSQL
Siga estes passos para traduzir uma consulta para GoogleSQL:
Na Trusted Cloud consola, aceda à página BigQuery.
No painel Editor, clique em Mais e, de seguida, selecione Definições de tradução.
Em Dialeto de origem, selecione o dialeto de SQL que quer traduzir.
Opcional. Para Localização de processamento, selecione a localização onde quer que a tarefa de tradução seja executada. Por exemplo, se estiver na Europa e não quiser que os seus dados atravessem limites de localizações, selecione a região
eu
.Clique em Guardar.
No painel Editor, clique em Mais e, de seguida, selecione Ativar tradução de SQL.
O painel Editor divide-se em dois painéis.
No painel esquerdo, introduza a consulta que quer traduzir.
Clique em Traduzir.
O BigQuery traduz a sua consulta para GoogleSQL e apresenta-a no painel direito. Por exemplo, a captura de ecrã seguinte mostra o SQL do Teradata traduzido:
Opcional: para executar a consulta GoogleSQL traduzida, clique em Executar.
Opcional: para voltar ao editor de SQL, clique em Mais e, de seguida, selecione Desativar tradução de SQL.
O painel do Editor volta a ser um único painel.
Use o Gemini com o tradutor de SQL interativo
Pode configurar o tradutor de SQL interativo para ajustar a forma como o tradutor de SQL interativo traduz o seu SQL de origem. Pode fazê-lo fornecendo as suas próprias regras para utilização com o Gemini num ficheiro de configuração YAML ou fornecendo um ficheiro YAML de configuração que contenha metadados de objetos SQL ou informações de mapeamento de objetos.
Crie e aplique regras de tradução melhoradas pelo Gemini
Pode personalizar a forma como o tradutor de SQL interativo traduz o SQL criando regras de tradução. O tradutor de SQL interativo ajusta as traduções com base nas regras de tradução de SQL melhoradas pelo Gemini que lhe atribuir, o que lhe permite personalizar os resultados da tradução com base nas suas necessidades de migração. Esta funcionalidade só é suportada em determinadas localizações.
Para criar uma regra de tradução de SQL melhorada pelo Gemini, pode criá-la na consola ou criar um ficheiro YAML de configuração e carregá-lo para o Cloud Storage.
Consola
Para criar uma regra de tradução de SQL melhorada pelo Gemini para o SQL de entrada, escreva uma consulta SQL de entrada no editor de consultas e, de seguida, clique em ASSIST > Personalizar. (Pré-visualizar)
Da mesma forma, para criar uma regra de tradução de SQL melhorada pelo Gemini para o SQL de saída, execute uma tradução interativa e, de seguida, clique em AJUDA > Personalizar esta tradução.
Quando o menu Personalizar aparecer, continue com os passos seguintes.
Use um ou ambos os comandos seguintes para criar uma regra de tradução:
No comando Localizar e substituir um padrão, especifique um padrão SQL que quer substituir no campo Substituir e um padrão SQL para o substituir no campo Por.
Um padrão SQL pode conter qualquer número de declarações, cláusulas ou funções num script SQL. Quando cria uma regra com este comando, a tradução de SQL melhorada do Gemini identifica todas as instâncias desse padrão de SQL na consulta SQL e substitui-as dinamicamente por outro padrão de SQL. Por exemplo, pode usar este comando para criar uma regra que substitua todas as ocorrências de
months_between (X,Y)
pordate_diff(X,Y,MONTH)
.No campo Descreva uma alteração à saída, escreva uma alteração à saída da tradução de SQL em linguagem natural.
Quando cria uma regra com este comando, a tradução de SQL melhorada pelo Gemini identifica o pedido e faz a alteração especificada à consulta SQL.
Clique em Pré-visualizar.
Na caixa de diálogo Sugestões geradas pelo Gemini, reveja as alterações feitas pela tradução de SQL melhorada pelo Gemini à consulta SQL com base na sua regra.
Opcional: para adicionar esta regra para utilização com traduções futuras, selecione a caixa de verificação Guardar este comando....
As regras são guardadas no ficheiro YAML de configuração predefinido ou
__default.ai_config.yaml
. Este ficheiro YAML de configuração é guardado na pasta do Cloud Storage, conforme especificado no campo Localização da origem da configuração de tradução nas definições de tradução. Se a Localização de origem da configuração de tradução ainda não estiver definida, é apresentado um navegador de pastas que lhe permite selecionar uma. Um ficheiro YAML de configuração está sujeito a limitações de tamanho do ficheiro de configuração.Para aplicar as alterações sugeridas à consulta SQL, clique em Aplicar.
YAML
Para criar uma regra de tradução de SQL melhorada pelo Gemini, pode criar um ficheiro YAML de configuração baseado no Gemini e carregá-lo para o Cloud Storage. Para mais informações, consulte o artigo Crie um ficheiro YAML de configuração baseado no Gemini.
Depois de carregar uma regra de tradução de SQL melhorada pelo Gemini e carregá-la para o Cloud Storage, pode aplicar a regra da seguinte forma:
Na Trusted Cloud consola, aceda à página BigQuery.
No editor de consultas, clique em Mais > Definições de tradução.
No campo Localização da origem da configuração de tradução, especifique o caminho para o ficheiro YAML baseado no Gemini armazenado numa pasta do Cloud Storage.
Clique em Guardar.
Depois de guardar, execute uma tradução interativa. O tradutor interativo sugere alterações às suas traduções com base nas regras no ficheiro YAML de configuração, se estiver disponível.
Se estiver disponível uma sugestão do Gemini para a entrada com base na sua regra, é apresentado o diálogo Pré-visualizar alterações sugeridas, que mostra possíveis alterações à entrada de tradução. (Pré-visualizar)
Se estiver disponível uma sugestão do Gemini para o resultado com base na sua regra, é apresentada uma faixa de notificação no editor de código. Para rever e aplicar estas sugestões, faça o seguinte:
Clique em Assistir > Ver sugestões em qualquer um dos lados do editor de código para rever as alterações sugeridas à consulta correspondente.
Na caixa de diálogo Sugestões geradas pelo Gemini, reveja as alterações feitas pelo Gemini à consulta SQL com base na sua regra de tradução.
Para aplicar as alterações sugeridas ao resultado da tradução, clique em Aplicar.
Atualize o ficheiro YAML de configuração baseado no Gemini
Para atualizar um ficheiro YAML de configuração existente, faça o seguinte:
Na caixa de diálogo Sugestões geradas no Gemini, clique em Ver ficheiro de configuração de regras do Gemini.
Quando o editor de configuração for apresentado, selecione o ficheiro YAML de configuração que quer editar.
Faça a alteração e clique em Guardar.
Clique em Concluído para fechar o editor YAML.
Execute uma tradução interativa para aplicar a regra atualizada.
Explicar uma tradução
Depois de executar uma tradução interativa, pode pedir uma explicação de texto gerada pelo Gemini. O texto gerado inclui um resumo da consulta SQL traduzida. O Gemini também identifica diferenças de tradução e inconsistências entre a consulta SQL de origem e a consulta GoogleSQL traduzida.
Para receber uma explicação da tradução de SQL gerada pelo Gemini, faça o seguinte:
Para criar uma explicação da tradução de SQL gerada pelo Gemini, clique em Assistir e, de seguida, em Explicar esta tradução.
Traduza com um ID de configuração de tradução em lote
Pode executar uma consulta interativa com as mesmas configurações de tradução que um trabalho de tradução em lote, fornecendo um ID de configuração de tradução em lote.
- No editor de consultas, clique em Mais > Definições de tradução.
No campo ID de configuração de tradução, indique um ID de configuração de tradução em lote para aplicar a mesma configuração de tradução de uma tarefa de migração em lote do BigQuery concluída.
Para encontrar o ID de configuração da tradução em lote de uma tarefa, selecione uma tarefa de tradução em lote na página Tradução de SQL e, de seguida, clique no separador Configuração da tradução. O ID da configuração de tradução em lote é apresentado como Nome do recurso.
Clique em Guardar.
Traduza com configurações adicionais
Pode executar uma consulta interativa com configurações de tradução adicionais especificando ficheiros YAML de configuração armazenados numa pasta do Cloud Storage. As configurações de tradução podem incluir metadados de objetos SQL ou informações de mapeamento de objetos da base de dados de origem que podem melhorar a qualidade da tradução. Por exemplo, inclua informações DDL ou esquemas da base de dados de origem para melhorar a qualidade da tradução de SQL interativa.
Para especificar configurações de tradução fornecendo uma localização para os ficheiros de origem da configuração de tradução, faça o seguinte:
- No editor de consultas, clique em Mais > Definições de tradução.
No campo Localização de origem da configuração de tradução, especifique o caminho para os ficheiros de configuração de tradução armazenados numa pasta do Cloud Storage.
O tradutor de SQL interativo do BigQuery suporta ficheiros ZIP de metadados que contêm metadados de tradução e mapeamento de nomes de objetos. Para ver informações sobre como carregar ficheiros para o Cloud Storage, consulte o artigo Carregue objetos a partir de um sistema de ficheiros.
Clique em Guardar.
Limitações do tamanho do ficheiro de configuração
Quando usa um ficheiro de configuração de tradução com o tradutor de SQL interativo do BigQuery, o ficheiro de metadados comprimido ou o ficheiro de configuração YAML tem de ter menos de 50 MB. Se o tamanho do ficheiro exceder 50 MB, o tradutor interativo ignora esse ficheiro de configuração durante a tradução e produz uma mensagem de erro semelhante à seguinte:
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 ficheiro de metadados é usar as flags --database
ou --schema
para extrair apenas metadados de bases de dados ou esquemas relevantes para as consultas de entrada de tradução. Para mais informações sobre a utilização destas flags quando gera ficheiros de metadados, consulte o artigo Flags globais.
Resolva problemas de erros de tradução
Seguem-se os erros encontrados com frequência quando usa o tradutor de SQL interativo.
Problemas de tradução de RelationNotFound
ou AttributeNotFound
Para garantir a tradução mais precisa,
pode introduzir as declarações da linguagem de definição de dados (DDL) para quaisquer tabelas usadas
numa consulta antes da própria consulta. Por exemplo, se quiser traduzir a consulta do Amazon Redshift select table1.field1, table2.field1
from table1, table2 where table1.id = table2.id;
, introduza as seguintes declaraçõ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 é cobrado qualquer valor pela utilização do tradutor de SQL interativo. No entanto, o armazenamento usado para guardar ficheiros de entrada e saída incorre nas taxas normais. Para mais informações, consulte os preços de armazenamento.
O que se segue?
Saiba mais sobre os seguintes passos na migração do armazém de dados:
- Vista geral da migração
- Avaliação da migração
- Vista geral do esquema e da transferência de dados
- Tradução de SQL em lote
- Data pipelines
- Segurança e governação de dados
- Ferramenta de validação de dados