Traduci query SQL con l'API Translation

Questo documento descrive come utilizzare l'API di traduzione in BigQuery per tradurre script scritti in altri dialetti SQL in query GoogleSQL. L'API Translation può semplificare il processo di migrazione dei carichi di lavoro a BigQuery.

Prima di iniziare

Prima di inviare un job di traduzione, completa i seguenti passaggi:

  1. Assicurati di disporre di tutte le autorizzazioni richieste.
  2. Abilitare l'API BigQuery Migration.
  3. Raccogli i file sorgente contenenti gli script e le query SQL da tradotto in inglese.
  4. Caricare i file di origine in Cloud Storage.

Autorizzazioni obbligatorie

Per ottenere le autorizzazioni necessarie per creare job di traduzione utilizzando l'API di traduzione, 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.

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare job di traduzione usando l'API di traduzione. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare job di traduzione utilizzando l'API di traduzione, sono necessarie le seguenti autorizzazioni:

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

Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati altri ruoli predefiniti.

Abilita l'API BigQuery Migration

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

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

    Vai all'API BigQuery Migration

  2. Fai clic su Attiva.

Carica i file di input su Cloud Storage

Se vuoi utilizzare la console Google Cloud o l'API BigQuery Migration per eseguire un job di traduzione, devi caricare i file di origine contenenti le query e gli script che vuoi tradurre in Cloud Storage. Tu puoi anche caricare qualsiasi file di metadati o file YAML di configurazione nello stesso bucket Cloud Storage contenente i file di origine. Per saperne di più sulla creazione di bucket e sul caricamento di file Cloud Storage, consulta Creare bucket e caricare oggetti da un file system.

Tipi di attività supportati

L'API di traduzione può tradurre i seguenti dialetti SQL in GoogleSQL:

  • SQL Amazon Redshift - Redshift2BigQuery_Translation
  • Interfaccia a riga di comando Apache HiveQL e Beeline - HiveQL2BigQuery_Translation
  • Apache Spark SQL - SparkSQL2BigQuery_Translation
  • T-SQL di Azure Synapse - AzureSynapse2BigQuery_Translation
  • SQL Greenplum - Greenplum2BigQuery_Translation
  • IBM Db2 SQL - Db22BigQuery_Translation
  • IBM Netezza SQL e NZPLSQL - Netezza2BigQuery_Translation
  • SQL MySQL - MySQL2BigQuery_Translation
  • Oracle SQL, PL/SQL, Exadata - Oracle2BigQuery_Translation
  • SQL PostgreSQL - Postgresql2BigQuery_Translation
  • Presto o Trino SQL - Presto2BigQuery_Translation
  • SQL Snowflake - Snowflake2BigQuery_Translation
  • SQLite - SQLite2BigQuery_Translation
  • T-SQL per SQL Server - SQLServer2BigQuery_Translation
  • Teradata e Teradata Vantage - Teradata2BigQuery_Translation
  • SQL vertica - Vertica2BigQuery_Translation

Località

L'API di traduzione è 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
Multiregionale 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 A basse emissioni di CO2
Paesi Bassi europe-west4 icona foglia A basse emissioni di CO2
Zurigo europe-west6 icona foglia A basse emissioni di CO2
Parigi europe-west9 icona foglia A basse emissioni di CO2
Torino europe-west12
Americhe
San Paolo southamerica-east1 icona foglia A basse emissioni di CO2
Stati Uniti (più regioni) 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 A basse emissioni di CO2
Oregon us-west1 icona foglia A basse emissioni di CO2
Los Angeles us-west2
Salt Lake City us-west3

Inviare un job di traduzione

Per inviare un job di traduzione utilizzando l'API di traduzione, utilizza projects.locations.workflows.create e fornisce un'istanza del metodo MigrationWorkflow con un tipo di attività supportato.

Esempio: creare una traduzione batch

Il seguente comando curl crea un job di traduzione batch in cui l'input e i file di output sono archiviati in Cloud Storage. Il campo source_target_mapping contiene un elenco che mappa le voci literal di origine a un relativo facoltativo del percorso dell'output di destinazione.

curl -d "{
  \"tasks\": {
      string: {
        \"type\": \"TYPE\",
        \"translation_details\": {
            \"target_base_uri\": \"TARGET_BASE\",
            \"source_target_mapping\": {
              \"source_spec\": {
                  \"base_uri\": \"BASE\"
              }
            },
        }
      }
  }
  }" \
  -H "Content-Type:application/json" \
  -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/PROJECT_ID/locations/LOCATION/workflows

Sostituisci quanto segue:

  • TYPE: il tipo di attività della traduzione, che determina il dialetto di origine e di destinazione.
  • TARGET_BASE: l'URI di base di tutte le traduzioni come output.
  • BASE: l'URI di base di tutti i file letti come fonti per la traduzione.
  • TOKEN: il token per l'autenticazione. Per generare un token, utilizza il comando gcloud auth print-access-token o OAuth 2.0 Playground (utilizza l'ambito https://www.googleapis.com/auth/cloud-platform).
  • PROJECT_ID: il progetto per elaborare una traduzione automatica.
  • LOCATION: la località in cui viene elaborato il job.

Il comando precedente restituisce una risposta che include un ID flusso di lavoro scritto nel formato projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID.

Esempio: crea un job di traduzione interattivo con input e output letterali stringa

Il seguente comando curl crea un job di traduzione con valore letterale stringa come input e output. Il campo source_target_mapping contiene un elenco che mappa il a un percorso relativo facoltativo per l'output di destinazione.

curl -d "{
  \"tasks\": {
      string: {
        \"type\": \"TYPE\",
        \"translation_details\": {
        \"source_target_mapping\": {
            \"source_spec\": {
              \"literal\": {
              \"relative_path\": \"PATH\",
              \"literal_string\": \"STRING\"
              }
            }
        },
        \"target_return_literals\": \"TARGETS\",
        }
      }
  }
  }" \
  -H "Content-Type:application/json" \
  -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/PROJECT_ID/locations/LOCATION/workflows

Sostituisci quanto segue:

  • TYPE: il tipo di attività della traduzione, che determina il dialetto di origine e di destinazione.
  • PATH: l'identificatore della voce letterale, simile a un nome file o un percorso.
  • STRING: stringa di dati di input letterali (ad esempio SQL) da tradurre.
  • TARGETS: i target previsti che l'utente vuole restituire direttamente nella risposta nel formato literal. Devono essere nel formato URI di destinazione (ad esempio, GENERATED_DIR + target_spec.relative_path + source_spec.literal.relative_path). Tutto ciò che non è incluso in questo elenco non viene restituito nella risposta. La directory generata GENERATED_DIR per le traduzioni SQL generiche è sql/.
  • TOKEN: il token per l'autenticazione. Per generare un token, utilizza il comando gcloud auth print-access-token o OAuth 2.0 Playground (utilizza l'ambito https://www.googleapis.com/auth/cloud-platform).
  • PROJECT_ID: il progetto per elaborare una traduzione automatica.
  • LOCATION: la località in cui si trova il lavoro vengono elaborati.

Il comando precedente restituisce una risposta che include un ID flusso di lavoro scritto nel formato projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID.

Esplora l'output di traduzione

Dopo aver eseguito il job di traduzione, recupera i risultati specificando l'ID flusso di lavoro del job di traduzione utilizzando :

curl \
-H "Content-Type:application/json" \
-H "Authorization:Bearer TOKEN" -X GET https://bigquerymigration.googleapis.com/v2alpha/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID

Sostituisci quanto segue:

  • TOKEN: il token per l'autenticazione. Per generare un token, utilizza il comando gcloud auth print-access-token o OAuth 2.0 Playground (utilizza l'ambito https://www.googleapis.com/auth/cloud-platform).
  • PROJECT_ID: il progetto per elaborare una traduzione automatica.
  • LOCATION: la località in cui si trova il lavoro vengono elaborati.
  • WORKFLOW_ID: l'ID generato quando crei un nel flusso di lavoro della traduzione.