Traduci query con il traduttore SQL interattivo

Questo documento descrive come tradurre una query da un dialetto SQL diverso in una query GoogleSQL utilizzando il traduttore SQL interattivo BigQuery. Il traduttore SQL interattivo può aiutarti a ridurre tempo e fatica durante la migrazione dei carichi di lavoro a BigQuery. Questo documento è destinato 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 l'SQL.

Prima di iniziare

Se il tuo progetto Google Cloud CLI è stato creato prima del 15 febbraio 2022, abilita l'API BigQuery Migration nel seguente modo:

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

    Vai all'API BigQuery Migration

  2. Fai clic su Abilita.

Autorizzazioni e ruoli

Questa sezione descrive le autorizzazioni di Identity and Access Management (IAM) necessarie 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 utilizzare il traduttore SQL interattivo, devi disporre della seguente autorizzazione:

  • bigquerymigration.translation.translate

Il seguente ruolo IAM predefinito fornisce l'autorizzazione necessaria per utilizzare il traduttore SQL interattivo:

  • roles/bigquerymigration.translationUser

Per eseguire una query dal traduttore SQL interattivo, devi disporre delle stesse autorizzazioni necessarie per eseguire qualsiasi query in BigQuery. Ad esempio, per eseguire query su una tabella, devi disporre dell'autorizzazione per leggere i dati della tabella. Per ulteriori informazioni, consulta Esecuzione di query sui dati di BigQuery.

Autorizzazioni per configurare configurazioni di traduzione aggiuntive

Puoi configurare ulteriori configurazioni di traduzione utilizzando i campi ID configurazione di traduzione e Posizione origine configurazione traduzione nelle impostazioni di traduzione. Per configurare queste configurazioni di traduzione, devi disporre delle seguenti autorizzazioni:

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

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

  • roles/bigquerymigration.viewer

Per ulteriori informazioni su BigQuery IAM, 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
  • Apache HiveQL e interfaccia a riga di comando Beeline
  • SQL Netezza e NZPLSQL di IBM Netezza
  • Teradata e Teradata Vantage
    • SQL
    • Query Teradata di base (BTEQ)
    • Trasporto parallelo di Teradata (TPT)

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

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

Località

Il traduttore SQL interattivo è disponibile nelle seguenti posizioni di elaborazione:

  • us (più regioni Stati Uniti)
  • eu (più regioni UE)
  • southamerica-east1 (San Paolo)
  • us-central1 (Iowa)
  • asia-northeast1 (Tokyo)
  • asia-south1 (Mumbai)
  • asia-southeast1 (Singapore)
  • australia-southeast1 (Sydney)
  • europe-central2 (Varsavia)
  • europe-north1 (Finlandia)
  • europe-west1 (Belgio)
  • europe-west2 (Londra)
  • europe-west3 (Francoforte)

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

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

Traduci una query in GoogleSQL

Per tradurre una query in GoogleSQL, procedi nel seguente modo:

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

    Vai a BigQuery

  2. Nel riquadro Editor, fai clic su Altro, quindi 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 eseguire il job di traduzione. Ad esempio, se ti trovi in Europa e non vuoi che i tuoi 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 la traduzione SQL.

    Il riquadro dell'Editor viene suddiviso in due riquadri.

  7. Nel riquadro a sinistra, inserisci la query da tradurre.

  8. Fai clic su Traduci.

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

    Visualizza una query SQL di 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 poi seleziona Disabilita traduzione SQL.

    Il riquadro dell'Editor torna a un unico riquadro.

Crea una regola di traduzione

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

Per creare una regola di traduzione SQL avanzata Gemini, segui questi passaggi:

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

    Pulsante Personalizza traduzione.

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

    • Nella richiesta Sostituisci un pattern SQL con un altro, specifica un pattern SQL da sostituire nel campo Sostituisci e un pattern SQL da sostituire nel campo Con.

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

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

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

  3. Fai clic su Anteprima.

  4. Nella finestra di dialogo Visualizza l'anteprima delle modifiche suggerite, esamina le modifiche apportate dalla traduzione SQL avanzata di Gemini nell'output di traduzione in base alla regola.

  5. (Facoltativo) Per aggiungere questa regola da utilizzare con le traduzioni future, seleziona la casella di controllo Aggiungi regola....

    Le regole vengono salvate in un file YAML di configurazione come specificato nel campo Posizione origine configurazione traduzione nelle impostazioni di traduzione. Per ulteriori informazioni sui file YAML di configurazione, consulta Tradurre una query con configurazioni aggiuntive. Un file YAML di configurazione può supportare fino a 10 regole di traduzione.

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

Migliora le prestazioni del job di traduzione interattivo

Per migliorare la stabilità e prevenire problemi di timeout di rete su job di traduzione interattivi a lunga esecuzione (ad esempio, utilizzando un pacchetto di file di metadati di grandi dimensioni), abilita l'API di traduzione consolidata. L'API di traduzione consolidata combina il traduttore interattivo e batch in un unico flusso di lavoro, migliorando l'efficienza e la stabilità dei tuoi job di traduzione interattivi.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per utilizzare l'API di traduzione consolidata con il traduttore interattivo, chiedi all'amministratore di concederti il ruolo IAM Editor MigrationWorkflow (roles/bigquerymigration.editor) per la risorsa parent. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questo ruolo predefinito contiene le autorizzazioni necessarie per utilizzare l'API di traduzione consolidata con il traduttore interattivo. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per utilizzare l'API di traduzione consolidata con il traduttore interattivo, sono necessarie le seguenti autorizzazioni:

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

Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

Abilita l'API di traduzione consolidata

Per attivare l'API di traduzione consolidata per il traduttore interattivo, compila il modulo di inserimento nella lista consentita dell'API Consolidated Translation. Per ulteriori informazioni sull'utilizzo dell'API di traduzione consolidata con il traduttore SQL batch, consulta le istruzioni per l'API in Inviare un job di traduzione.

Tradurre una query con configurazioni aggiuntive

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

Per specificare le configurazioni di traduzione fornendo un ID configurazione della traduzione batch:

  1. Nell'Editor query, fai clic su Altro > Impostazioni di traduzione.
  2. Nel campo ID configurazione traduzione, fornisci un ID configurazione di traduzione batch per applicare la stessa configurazione di traduzione da un job di migrazione batch BigQuery completato.

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

  3. Fai clic su Salva.

Per specificare le configurazioni di traduzione fornendo una posizione per i file di origine della configurazione della traduzione, procedi nel seguente modo:

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

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

  3. Fai clic su Salva.

Limitazioni delle dimensioni dei file di configurazione

Quando utilizzi un file di configurazione della traduzione con il traduttore SQL interattivo BigQuery, il file di metadati compresso o il file di configurazione YAML deve avere dimensioni inferiori a 50 MB. Se le dimensioni del file superano i 50 MB, il traduttore interattivo ignora il file di configurazione durante la traduzione e restituisce un messaggio di errore 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'utilizzo di questi flag quando 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.

Problemi di traduzione in RelationNotFound o AttributeNotFound

Per garantire la traduzione più accurata, puoi inserire le istruzioni DDL (Data Definition Language) per qualsiasi tabella utilizzata in una query prima della query stessa. Ad esempio, se vuoi tradurre la query select table1.field1, table2.field1 from table1, table2 where table1.id = table2.id; di Amazon Redshift, devi inserire 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;

Oltre ad aggiungere DDL, puoi anche risolvere gli errori RelationNotFound o AttributeNotFound utilizzando l'estrattore di metadati per generare pacchetti di metadati e assicurarti che siano presenti tutte le definizioni degli oggetti. Potrai quindi aggiungere il file dei metadati al percorso Origine della configurazione della traduzione, come descritto in Tradurre una query con configurazioni aggiuntive. L'aggiunta di metadati può risolvere la maggior parte degli errori di traduzione e altri errori causi indirettamente a causa della mancanza di metadati.

Prezzi

Non è previsto alcun costo per utilizzare il traduttore SQL interattivo. Tuttavia, lo spazio di archiviazione utilizzato per archiviare i file di input e di output comporta le normali tariffe. Per ulteriori informazioni, consulta i prezzi dell'archiviazione.

Passaggi successivi

Scopri di più sui seguenti passaggi nella migrazione dei data warehouse: