Caricare i dati Oracle in BigQuery

Puoi caricare i dati da Oracle a BigQuery utilizzando il connettore BigQuery Data Transfer Service per Oracle. Con BigQuery Data Transfer Service, puoi pianificare job di trasferimento ricorrenti che aggiungono i dati più recenti da Oracle a BigQuery.

Limitazioni

I trasferimenti Oracle sono soggetti alle seguenti limitazioni:

  • Il numero massimo di connessioni simultanee a un database Oracle è limitato e, di conseguenza, il numero di esecuzioni di trasferimento simultanee a un singolo database Oracle è limitato a questo importo massimo.
  • Devi configurare un collegamento di rete nei casi in cui un IP pubblico non è disponibile per una connessione al database Oracle, con i seguenti requisiti:
    • L'origine dati deve essere accessibile dalla subnet in cui si trova l'allegato di rete.
    • Il collegamento di rete non deve trovarsi nella subnet all'interno dell'intervallo 240.0.0.0/24.
    • I collegamenti di rete non possono essere eliminati se sono presenti connessioni attive al collegamento. Per eliminare un collegamento di rete, contatta l'assistenza clienti Google Cloud.
    • Per la multiregione us, il collegamento di rete deve trovarsi nella regione us-central1. Per la multiregione eu, il collegamento di rete deve trovarsi nella regione europe-west4.
  • La console Google Cloud supporta solo l'utilizzo del ruolo utente Oracle NORMAL per connettere Oracle a BigQuery Data Transfer Service. Devi utilizzare la CLI BigQuery per connetterti utilizzando i ruoli utente Oracle SYSDBA e SYSOPER.
  • L'intervallo di tempo minimo tra i trasferimenti Oracle ricorrenti è di 15 minuti. L'intervallo predefinito per un trasferimento ricorrente è 24 ore.
  • Se l'istanza di collegamento di rete e della macchina virtuale (VM) configurata si trovano in regioni diverse, potrebbe verificarsi lo spostamento di dati tra regioni quando trasferisci dati da Oracle.

Prima di iniziare

Le sezioni seguenti descrivono i passaggi da seguire prima di creare un trasferimento Oracle.

Prerequisiti di Oracle

Devi anche disporre delle seguenti informazioni sul database Oracle quando crei un trasferimento Oracle.

Nome parametro Descrizione
database Nome del database.
host

Nome host o indirizzo IP del database.

port

Numero di porta del database.

username

Nome utente per accedere al database.

password

Password per accedere al database.

connectionType

Il tipo di connessione. Può essere SERVICE, SID o TNS.

encryptionMode

La modalità di crittografia. Può essere FULL per la convalida SSL completa quando ti connetti al database Oracle oppure DISABLE per disabilitare la convalida SSL.

oracleObjects

Elenco degli oggetti Oracle da trasferire.

Prerequisiti di BigQuery

Ruoli BigQuery richiesti

Per ottenere le autorizzazioni necessarie per creare un trasferimento, chiedi all'amministratore di concederti il ruolo IAM BigQuery Admin (roles/bigquery.admin). Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per creare un trasferimento. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare un trasferimento sono necessarie le seguenti autorizzazioni:

  • bigquery.transfers.update sull'utente
  • bigquery.datasets.get sul set di dati di destinazione
  • bigquery.datasets.update sul set di dati di destinazione

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

Caricare i dati Oracle in BigQuery

Per aggiungere dati Oracle in BigQuery, puoi configurare un trasferimento di dati Oracle utilizzando una delle seguenti opzioni:

Console

  1. Vai alla pagina Trasferimenti di dati nella console Google Cloud .

    Vai a Trasferimenti dati

  2. Fai clic su Crea trasferimento.

  3. Nella sezione Tipo di origine, per Origine, seleziona Oracle.

  4. Nella sezione Dettagli origine dati, segui questi passaggi:

    • Per Collegamento di rete, seleziona un collegamento di rete esistente o fai clic su Crea collegamento di rete.
    • In Host, inserisci il nome host o l'IP del database.
    • In Porta, inserisci il numero di porta utilizzato dal database Oracle per le connessioni in entrata, ad esempio 1521.
    • In Nome database, inserisci il nome del database Oracle.
    • In Tipo di connessione, inserisci il tipo di URL di connessione, SERVICE, SID o TNS.
    • In Nome utente, inserisci il nome dell'utente che avvia la connessione al database Oracle.
    • In Password, inserisci la password dell'utente che avvia la connessione al database Oracle.
    • Per Encryption mode (Modalità di crittografia), seleziona FULL (COMPLETA) dal menu a discesa per attivare la convalida SSL completa quando ti connetti al database Oracle oppure DISABLE (DISABILITA) per disabilitare la convalida SSL.
    • Per Oracle objects to transfer (Oggetti Oracle da trasferire), fai clic su BROWSE (SFOGLIA) per selezionare le eventuali tabelle da trasferire al set di dati di destinazione BigQuery. In questo campo puoi anche inserire manualmente gli oggetti da includere nel trasferimento di dati.

      Configura la configurazione del trasferimento da Oracle

  5. Nella sezione Impostazioni destinazione, per Set di dati, seleziona il set di dati che hai creato per archiviare i dati.

  6. Nella sezione Nome configurazione di trasferimento, per Nome visualizzato, inserisci un nome per il trasferimento di dati.

  7. Nella sezione Opzioni di pianificazione:

    • Nell'elenco Frequenza di ripetizione, seleziona un'opzione per specificare la frequenza con cui viene eseguito questo trasferimento di dati. Per specificare una frequenza di ripetizione personalizzata, seleziona Personalizzata. Se selezioni On demand, l'esecuzione avviene quando attivi manualmente il trasferimento.
    • Se applicabile, seleziona Inizia ora o Inizia all'ora impostata e fornisci una data di inizio e un'ora di esecuzione.
  8. (Facoltativo) Nella sezione Opzioni di notifica, segui questi passaggi:

    • Per attivare le notifiche via email, fai clic sul pulsante di attivazione/disattivazione Notifica email. Quando attivi questa opzione, l'amministratore del trasferimento riceve una notifica via email quando l'esecuzione di un trasferimento non riesce.
    • Per attivare le notifiche di esecuzione del trasferimento Pub/Sub per questo trasferimento, fai clic sul pulsante di attivazione/disattivazione Notifiche Pub/Sub. Puoi selezionare il nome del tuo argomento oppure fare clic su Crea un argomento per crearne uno.
  9. Fai clic su Salva.

bq

Inserisci il comando bq mk e fornisci il flag di creazione del trasferimento --transfer_config:

bq mk
    --transfer_config
    --project_id=PROJECT_ID
    --data_source=DATA_SOURCE
    --display_name=DISPLAY_NAME
    --target_dataset=DATASET
    --params='PARAMETERS'

Dove:

  • (Facoltativo) PROJECT_ID: il tuo ID progetto Google Cloud . Se non viene fornito --project_id per specificare un progetto particolare, viene utilizzato il progetto predefinito.
  • DATA_SOURCE: l'origine dati oracle.
  • DISPLAY_NAME: il nome visualizzato per la configurazione del trasferimento. Il nome del trasferimento dei dati può essere qualsiasi valore che ti consenta di identificare il trasferimento se devi modificarlo in un secondo momento.
  • DATASET: il set di dati di destinazione per la configurazione del trasferimento.
  • PARAMETERS: i parametri per la configurazione del trasferimento creato in formato JSON. Ad esempio: --params='{"param":"param_value"}'. Di seguito sono riportati i parametri per un trasferimento di dati Oracle:

    • connector.networkAttachment (facoltativo): nome dell'allegato di rete a cui connettersi al database Oracle.
    • connector.authentication.Username: il nome utente dell'account Oracle.
    • connector.authentication.Password: password dell'account Oracle.
    • connector.database: il nome del database Oracle.
    • connector.endpoint.host: il nome host o l'IP del database.
    • connector.endpoint.port: il numero di porta utilizzato dal database Oracle per le connessioni in entrata, ad esempio 1520.
    • connector.connectionType: il tipo di URL di connessione, SERVICE, SID o TNS.
    • assets: il percorso degli oggetti Oracle da trasferire a BigQuery, utilizzando il formato: DATABASE_NAME/SCHEMA_NAME/TABLE_NAME

Ad esempio, il seguente comando crea un trasferimento di dati Oracle nel progetto predefinito con tutti i parametri richiesti:

bq mk
    --transfer_config
    --target_dataset=mydataset
    --data_source=oracle
    --display_name='My Transfer'
    --params='{"assets":["DB1/USER1/DEPARTMENT","DB1/USER1/EMPLOYEES"],
        "connector.authentication.username": "User1",
        "connector.authentication.password":"ABC12345",
        "connector.database":"DB1",
        "connector.endpoint.host":"192.168.0.1",
        "connector.endpoint.port":1520,
        "connector.connectionType":"SERVICE",
        "connector.networkAttachment":
        "projects/dev-project1/regions/us-central1/networkattachments/na1"}'

API

Utilizza il metodo projects.locations.transferConfigs.create e fornisci un'istanza della risorsa TransferConfig.

Mappatura dei tipi di dati

La seguente tabella mappa i tipi di dati Oracle ai tipi di dati BigQuery corrispondenti.

Tipo di dati Oracle Tipo di dati BigQuery
BFILE BYTES
BINARY_DOUBLE FLOAT
BINARY_FLOAT FLOAT
BLOB BYTES
CHAR STRING
CLOB STRING
DATE DATETIME
FLOAT FLOAT
INTERVAL DAY TO SECOND STRING
INTERVAL YEAR TO MONTH STRING
LONG STRING
LONG RAW BYTES
NCHAR STRING
NCLOB STRING
NUMBER (without precision and scale) STRING
NUMBER (with precision and scale lower than the BigQuery Numeric range) NUMERIC
NUMBER (with precision and scale lower than the BigQuery BigNumeric range) BIGNUMERIC
NUMBER (with precision and scale greater than the BigQuery BigNumeric range) STRING
NVARCHAR2 STRING
RAW BYTES
ROWID STRING
TIMESTAMP DATETIME
TIMESTAMP WITH LOCAL TIME ZONE DATETIME
TIMESTAMP WITH TIME ZONE TIMESTAMP
UROWID STRING
VARCHAR STRING
VARCHAR2 STRING

Risolvere i problemi di configurazione del trasferimento

Se riscontri problemi durante la configurazione del trasferimento dei dati, consulta Problemi di trasferimento di Oracle.

Prezzi

Il trasferimento dei dati Oracle in BigQuery non prevede costi durante l'anteprima di questa funzionalità.

Passaggi successivi