Traduci le query con il traduttore SQL interattivo

Questo documento descrive come tradurre una query da un dialetto SQL diverso in una query GoogleSQL utilizzando BigQuery un traduttore SQL interattivo. Il traduttore SQL interattivo può aiutarti a ridurre il tempo e l'impegno per la migrazione dei carichi di lavoro a BigQuery. Questo documento è rivolto agli utenti che hanno familiarità con la console Google Cloud.

Se la tua posizione è supportata, puoi utilizzare la funzionalità delle regole di traduzione (anteprima) per personalizzare il modo in cui il traduttore SQL interattivo traduce SQL.

Limitazioni

Devi aver eseguito l'accesso con un Account Google per utilizzare il traduttore SQL interattivo. Il traduttore SQL interattivo non supporta l'utilizzo di identità federate.

Prima di iniziare

Se il tuo progetto Google Cloud CLI è stato creato prima del 15 febbraio 2022, attiva l'API BigQuery Migration come segue:

  1. Nella console Google Cloud, vai alla pagina API BigQuery Migration.

    Vai all'API BigQuery Migration

  2. Fai clic su Attiva.

di Gemini Advanced.

Autorizzazioni e ruoli

Questa sezione descrive le autorizzazioni di Identity and Access Management (IAM) di cui hai bisogno per utilizzare il traduttore SQL interattivo, inclusi i ruoli IAM predefiniti che concedono queste autorizzazioni. La sezione descrive anche le autorizzazioni necessarie per configurare configurazioni di traduzione aggiuntive.

Autorizzazioni per utilizzare il traduttore SQL interattivo

Per ottenere le autorizzazioni necessarie per usare il traduttore interattivo, chiedi all'amministratore di concederti Ruolo IAM Editor MigrationWorkflow (roles/bigquerymigration.editor) per la risorsa parent. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per utilizzare il traduttore interattivo. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per utilizzare il traduttore interattivo sono necessarie le seguenti autorizzazioni:

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

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Autorizzazioni per configurare configurazioni di traduzione aggiuntive

Puoi configurare configurazioni di traduzione aggiuntive utilizzando il pulsante Traduzione nei campi ID configurazione e Posizione di origine configurazione della traduzione nel impostazioni di traduzione. Per configurare queste configurazioni di traduzione, devi le seguenti autorizzazioni:

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

Il seguente ruolo IAM predefinito fornisce le autorizzazioni necessarie per configurare ulteriori configurazioni di traduzione:

  • roles/bigquerymigration.viewer

Per ulteriori informazioni su IAM di BigQuery, consulta Controllo dell'accesso con IAM.

Dialetti SQL supportati

Il traduttore SQL interattivo di BigQuery può tradurre i seguenti dialetti SQL in GoogleSQL:

  • SQL di Amazon Redshift
  • Interfaccia a riga di comando Apache HiveQL e Beeline
  • IBM Netezza SQL e NZPLSQL
  • Teradata e Teradata Vantage:
    • SQL
    • Query Teradata di base (BTEQ)
    • Teradata Parallel Transport (TPT)

Inoltre, la traduzione dei seguenti dialetti SQL è supportata in anteprima:

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

Località

Il traduttore SQL interattivo è disponibile nelle seguenti versioni località di elaborazione:

Descrizione regione Nome regione Dettagli
Asia Pacifico
Tokyo asia-northeast1
Mumbai asia-south1
Singapore asia-southeast1
Sydney australia-southeast1
Europa
Multiregione UE eu
Varsavia europe-central2
Finlandia europe-north1 icona foglia A basse emissioni di CO2
Madrid europe-southwest1 icona foglia A basse emissioni di CO2
Belgio europe-west1 icona foglia A basse emissioni di CO2
Londra europe-west2 icona foglia A basse emissioni di CO2
Francoforte europe-west3 icona foglia Bassi livelli di CO2
Paesi Bassi europe-west4 icona foglia A basse emissioni di CO2
Zurigo europe-west6 icona foglia Bassi livelli di CO2
Parigi europe-west9 icona foglia A basse emissioni di CO2
Torino europe-west12
Americhe
Québec northamerica-northeast1 icona foglia Bassi livelli di CO2
San Paolo southamerica-east1 icona foglia A basse emissioni di CO2
Multiregione Stati Uniti us
Iowa us-central1 icona foglia A basse emissioni di CO2
Carolina del Sud us-east1
Virginia del Nord us-east4
Columbus, Ohio us-east5
Dallas us-south1 icona foglia Bassi livelli di CO2
Oregon us-west1 icona foglia A basse emissioni di CO2
Los Angeles us-west2
Salt Lake City us-west3

La regola di traduzione è disponibile nelle seguenti località di elaborazione:

  • us (multiregione Stati Uniti)
  • eu (UE (più regioni)
  • us-central1 (Iowa)
  • europe-west4 (Paesi Bassi)

Traduci una query in GoogleSQL

Segui questi passaggi per tradurre una query in GoogleSQL:

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro Editor, fai clic su Altro e poi seleziona Impostazioni di traduzione.

  3. Per Dialetto di origine, seleziona il dialetto SQL che vuoi tradurre.

  4. Facoltativo. In Località di elaborazione, seleziona la località in cui vuoi di traduzione automatica da eseguire. Ad esempio, se ti trovi in Europa e non vuoi che i dati superino i confini di località, seleziona la regione eu.

  5. Fai clic su Salva.

  6. Nel riquadro Editor, fai clic su Altro e seleziona Abilita SQL traduzione automatica.

    Il riquadro Editor si suddivide in due riquadri.

  7. Nel riquadro di sinistra, inserisci la query che vuoi tradurre.

  8. Fai clic su Traduci.

    BigQuery traduce la query in GoogleSQL e la visualizza nel riquadro corretto. Ad esempio, lo screenshot seguente mostra il codice SQL di Teradata tradotto:

    Visualizza una query SQL Teradata tradotta in GoogleSQL

  9. (Facoltativo) Per eseguire la query GoogleSQL tradotta, fai clic su Esegui.

  10. (Facoltativo) Per tornare all'editor SQL, fai clic su Altro e seleziona Disabilita la traduzione SQL.

    Il riquadro Editor torna a un singolo riquadro.

Configurare il traduttore SQL interattivo

Puoi configurare il traduttore SQL interattivo per modificare il modo in cui traduce il codice SQL di origine. Puoi farlo fornendo le tue regole da utilizzare con Gemini in un file di configurazione YAML o fornendo un file di configurazione YAML contenente metadati degli oggetti SQL o informazioni sulla mappatura degli oggetti.

Creare una regola di traduzione

Puoi personalizzare il modo in cui il traduttore SQL interattivo consente di tradurre in SQL creando regole di traduzione. Il traduttore SQL interattivo aggiusta le traduzioni in base alle regole di traduzione SQL avanzate di Gemini che gli assegni, consentendoti di personalizzare i risultati della traduzione in base alle tue esigenze di migrazione. Questa funzionalità è supportata solo in determinate località.

Per creare una regola di traduzione SQL avanzata di Gemini, esegui una delle seguenti operazioni:

Console

Per creare una regola di traduzione SQL avanzata di Gemini:

  1. Dopo aver eseguito una traduzione interattiva, fai clic su Personalizza.

    Personalizza il pulsante di traduzione.

  2. Utilizza uno o entrambi i seguenti prompt per creare una regola di traduzione:

    • Nel prompt Sostituisci un pattern SQL con un altro, specifica un pattern SQL che vuoi sostituire nel campo Sostituisci e un pattern SQL per sostituirlo nel campo Con.

      Un pattern SQL può contenere un numero qualsiasi di istruzioni, clausole o funzioni in uno script SQL. Quando crei una regola utilizzando questo prompt, la traduzione SQL avanzata di Gemini identifica eventuali istanze del pattern SQL nell'output della traduzione e lo sostituisce dinamicamente con un altro pattern SQL. Ad esempio, puoi utilizzare questo prompt per creare una regola che sostituisce tutte le occorrenze di months_between (X,Y) con date_diff(X,Y,MONTH).

    • Nel campo Descrivi una modifica all'output di traduzione, descrivi una modifica all'output della traduzione SQL in linguaggio naturale.

      Quando crei una regola utilizzando questo prompt, la traduzione SQL migliorata da Gemini identifica la richiesta e apporta la modifica specificata all'output della traduzione.

  3. Fai clic su Anteprima.

  4. Nella finestra di dialogo Anteprima delle modifiche suggerite, esamina le modifiche apportate dal la traduzione SQL migliorata di Gemini nell'output di traduzione basato in base alla regola.

  5. (Facoltativo) Per aggiungere questa regola da usare nelle traduzioni future, seleziona la casella di controllo Aggiungi regola.

    Le regole vengono salvate nel file YAML di configurazione predefinita o __default.ai_config.yaml. Questo file YAML di configurazione viene salvato nella cartella Cloud Storage come specificato nel campo Posizione di origine della configurazione della traduzione nelle impostazioni di traduzione. Un file YAML di configurazione può supportare fino a 10 regole di traduzione ed è soggetto a limitazioni relative alle dimensioni dei file di configurazione.

  6. Per applicare le modifiche suggerite all'output di traduzione, fai clic su Applica.

YAML

Puoi creare una regola di traduzione SQL avanzata con Gemini creando un file YAML di configurazione e caricandolo su Cloud Storage.

Requisiti

Il file YAML della regola di traduzione deve avere il suffisso .ai_config.yaml. Ad esempio, rules_1.ai_config.yaml

Limitazioni

Campi supportati

L'esempio seguente mostra come creare un file YAML della regola di traduzione avanzata di Gemini utilizzando un prompt in linguaggio naturale.

rewrite_target: TARGET
instruction: NL_PROMPT

Sostituisci quanto segue:

  • TARGET: specifica se vuoi applicare di traduzione automatica all'SQL di input, SOURCE_SQL o SQL di output, TARGET_SQL (predefinito).
  • NL_PROMPT: descrivi in linguaggio naturale una modifica al codice SQL di destinazione. La versione migliorata di Gemini La traduzione SQL identifica la richiesta e rende modifica

Puoi anche creare un file YAML di una regola di traduzione con più traduzioni (fino a 10). Ogni regola può essere costituita da un prompt in linguaggio naturale (instruction) che descrive una regola e da uno o più esempi per sostituire un pattern SQL (input) con un altro (output). Una regola di traduzione può utilizzare il campo instruction, uno o più campi examples o entrambi i tipi di campi per descrivere la regola.

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


Sostituisci quanto segue:

  • (Facoltativo) NL_RULE_1: in linguaggio naturale, per descrivere una regola di traduzione.
  • (Facoltativo) RULE_1_INPUT_1: un pattern SQL che vuoi essere sostituite.
  • (Facoltativo) RULE_1_OUTPUT_1: il pattern SQL previsto dopo Il campo input è stato sostituito.

    Puoi aggiungere altri translation_rules (fino a 10) e altri examples come necessaria.

Per esempi di regola di traduzione SQL migliorata di Gemini File YAML, consulta Esempi di file YAML delle regole di traduzione.

Applica un file YAML di una regola di traduzione alla tua prossima traduzione

Per applicare un file YAML delle regole di traduzione:

  1. Nell'editor delle query, fai clic su Altro > Impostazioni di traduzione.
  2. Nel campo Posizione di origine configurazione della traduzione, specifica la percorso del file YAML della regola di traduzione archiviato in Cloud Storage .
  3. Fai clic su Salva.

Esempi di file YAML delle regole di traduzione

Di seguito sono riportati alcuni esempi di file YAML delle regole di traduzione SQL migliorate da Gemini.

Esempio 1: specificare una funzione da sostituire con un'altra.

translation_rules:
- instruction:  "Remove upper() function"
  examples:
  - input: "upper(X)"
    output: "X"

Esempio 2: specifica più regole di traduzione in un unico file 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."

Tradurre con un ID configurazione di traduzione batch

Puoi eseguire una query interattiva con le stesse configurazioni di traduzione di un job di traduzione batch fornendo un ID configurazione di traduzione batch.

  1. Nell'editor delle query, fai clic su Altro > Impostazioni di traduzione.
  2. Nel campo Translation Configuration ID (ID configurazione traduzione), fornisci una traduzione batch ID configurazione per applicare la stessa configurazione di traduzione da un'istanza completata Job di migrazione batch BigQuery.

    Per trovare l'ID di configurazione della traduzione batch di un job, seleziona un job di traduzione batch dalla pagina Traduzione SQL e poi fai clic sulla scheda Configurazione traduzione. L'ID configurazione traduzione batch è indicato come Nome risorsa.

  3. Fai clic su Salva.

Traduzione con configurazioni aggiuntive

Puoi eseguire una query interattiva con configurazioni di traduzione aggiuntive specificando i file YAML di configurazione in una cartella di Cloud Storage. Le configurazioni di traduzione potrebbero includere metadati degli oggetti SQL o informazioni di mappatura degli oggetti dal database di origine che possono migliorare la qualità della traduzione. Ad esempio, includi informazioni o schemi DDL dal database di origine per migliorare la qualità interattiva della traduzione SQL.

Per specificare le configurazioni della traduzione fornendo una posizione per la traduzione di origine della configurazione, segui questi passaggi:

  1. Nell'editor delle query, fai clic su Altro > Impostazioni di traduzione.
  2. Nel campo Posizione di origine della configurazione della traduzione, specifica il percorso ai file di configurazione della traduzione archiviati in una cartella Cloud Storage.

    Il traduttore SQL interattivo di BigQuery supporta i file di configurazione contenenti metadati di traduzione e la mappatura dei nomi degli oggetti. Per informazioni su come caricare file su Cloud Storage, consulta Caricare oggetti da un file system.

  3. Fai clic su Salva.

Limiti delle dimensioni del file di configurazione

Quando utilizzi un file di configurazione della traduzione con BigQuery traduttore SQL interattivo, il file di metadati compresso o il file di configurazione YAML deve essere inferiore a 50 MB. Se le dimensioni del file superano i 50 MB, lo spazio il traduttore ignora il file di configurazione durante la traduzione e produce simile al seguente:

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

Un metodo per ridurre le dimensioni del file dei metadati consiste nell'utilizzare i flag --database o --schema per estrarre solo i metadati per i database o gli schemi pertinenti per le query di input della traduzione. Per ulteriori informazioni sull'uso di questi flag quando se generi file di metadati, consulta la sezione Flag globali.

Risolvere gli errori di traduzione

Di seguito sono riportati errori comuni che si verificano durante l'utilizzo del traduttore SQL interattivo.

RelationNotFound o AttributeNotFound

Per garantire la traduzione più accurata, puoi inserire le istruzioni DDL (Data Definition Language) per tutte le tabelle utilizzate in una query prima della query stessa. Ad esempio, se vuoi tradurre la query Amazon Redshift select table1.field1, table2.field1 from table1, table2 where table1.id = table2.id;, inserisci le seguenti istruzioni SQL nel traduttore SQL interattivo:

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;

Prezzi

L'utilizzo del traduttore SQL interattivo non prevede costi. Tuttavia, lo spazio di archiviazione utilizzato per archiviare i file di input e di output comporta le normali tariffe. Per ulteriori informazioni, consulta Prezzi dello spazio di archiviazione.

Passaggi successivi

Scopri di più sui seguenti passaggi della migrazione del data warehouse: