Carica i dati Oracle in BigQuery

Per pianificare trasferimenti di dati ricorrenti dal database Oracle a BigQuery, crea una configurazione di trasferimento per specificare gli oggetti dati da trasferire e la frequenza con cui pianificare il trasferimento di dati. Dopo aver configurato la configurazione del trasferimento, il BigQuery Data Transfer Service trasferisce i dati più recenti in una tabella BigQuery in base alla pianificazione specificata.

Per scoprire di più sul funzionamento di un trasferimento Oracle, consulta Introduzione ai trasferimenti di dati Oracle.

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 non è disponibile un IP pubblico per una connessione al database Oracle, con i seguenti requisiti:
    • L'origine dati deve essere accessibile dalla subnet in cui si trova il collegamento 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 us-central1 regione. Per la multiregione eu, il collegamento di rete deve trovarsi nella europe-west4 regione.
  • L'intervallo di tempo minimo tra i trasferimenti Oracle ricorrenti è di 15 minuti. L'intervallo predefinito per un trasferimento ricorrente è di 24 ore.
  • Una singola configurazione di trasferimento può supportare una sola esecuzione di trasferimento di dati alla volta. Nel caso in cui sia pianificata l'esecuzione di un secondo trasferimento di dati prima del completamento del primo, solo il primo trasferimento di dati viene completato, mentre tutti gli altri trasferimenti di dati che si sovrappongono al primo vengono ignorati.
    • Per evitare trasferimenti ignorati all'interno di una singola configurazione del trasferimento, ti consigliamo di aumentare la durata del tempo tra i trasferimenti di dati di grandi dimensioni configurando la Frequenza di ripetizione.
  • Durante un trasferimento di dati, il connettore Oracle identifica le colonne delle chiavi indicizzate e partizionate per trasferire i dati in batch paralleli. Per questo motivo, ti consigliamo di specificare le colonne chiave primaria o di utilizzare le colonne indicizzate nella tabella per migliorare il rendimento e ridurre il tasso di errore nei trasferimenti di dati.
    • Se hai vincoli di chiave primaria o indicizzata, per la creazione di batch paralleli sono supportati solo i seguenti tipi di colonne:
      • INTEGER
      • TINYINT
      • SMALLINT
      • FLOAT
      • REAL
      • DOUBLE
      • NUMERIC
      • BIGINT
      • DECIMAL
      • DATE
    • I trasferimenti di dati Oracle che non utilizzano colonne di chiave primaria o indicizzate non possono supportare più di 2.000.000 di record per tabella.
  • Se l'istanza di macchina virtuale (VM) e il collegamento di rete configurato si trovano in regioni diverse, potrebbe verificarsi uno spostamento dei dati tra regioni quando trasferisci i dati da Oracle.

Limitazioni del trasferimento incrementale

I trasferimenti incrementali Oracle sono soggetti alle seguenti limitazioni:

  • Puoi scegliere solo le colonne TIMESTAMP come colonne watermark.
  • L'importazione incrementale è supportata solo per gli asset con colonne watermark valide.
  • I valori in una colonna watermark devono aumentare in modo monotono.
  • I trasferimenti incrementali non possono sincronizzare le operazioni di eliminazione nella tabella di origine.
  • Una singola configurazione del trasferimento può supportare solo l'acquisizione incrementale o completa.
  • Non puoi aggiornare gli oggetti nell'elenco asset dopo la prima esecuzione di importazione incrementale.
  • Non puoi modificare la modalità di scrittura in una configurazione del trasferimento dopo la prima esecuzione di importazione incrementale.
  • Non puoi modificare la colonna watermark o la chiave primaria dopo la prima esecuzione di importazione incrementale.
  • La tabella BigQuery di destinazione viene raggruppata utilizzando la chiave primaria fornita ed è soggetta alle limitazioni delle tabelle in cluster.
  • Quando aggiorni per la prima volta una configurazione del trasferimento esistente alla modalità di importazione incrementale, il primo trasferimento di dati dopo l'aggiornamento trasferisce tutti i dati disponibili dall'origine dati. Tutti i trasferimenti di dati incrementali successivi trasferiranno solo le righe nuove e aggiornate dall'origine dati.

Per scoprire di più sul funzionamento dei trasferimenti incrementali, consulta Trasferimenti completi o incrementali.

Prima di iniziare

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

Prerequisiti di Oracle

Quando crei un trasferimento Oracle, devi disporre anche delle seguenti informazioni sul database 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.

Prerequisiti di BigQuery

Ruoli BigQuery richiesti

Per ottenere le autorizzazioni necessarie per creare un trasferimento di dati BigQuery Data Transfer Service, chiedi all'amministratore di concederti il ruolo IAM Amministratore BigQuery (roles/bigquery.admin) nel tuo progetto. 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 di dati BigQuery Data Transfer Service. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare un trasferimento di dati BigQuery Data Transfer Service sono necessarie le seguenti autorizzazioni:

  • Autorizzazioni BigQuery Data Transfer Service:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • Autorizzazioni BigQuery:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

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

Per saperne di più, consulta Concedi l'accesso bigquery.admin.

Carica i dati Oracle in BigQuery

Aggiungi i dati Oracle in BigQuery configurando una configurazione del trasferimento utilizzando una delle seguenti opzioni:

Console

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

    Vai a Trasferimenti di 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.
    • Nella sezione Password, inserisci la password dell'utente che avvia la connessione al database Oracle.
    • Per Modalità TLS, seleziona un'opzione dal menu a discesa. Per scoprire di più sulle modalità TLS, consulta Configurazione TLS.
    • Per Certificato PEM attendibile, inserisci il certificato pubblico dell' autorità di certificazione (CA) che ha emesso il certificato TLS del server di database. Per scoprire di più, vedi Certificato del server attendibile (PEM).
    • Per Tipo di importazione, seleziona Completa o Incrementale.
    • Per Oggetti Oracle da trasferire, fai clic su Sfoglia:
      • Seleziona gli oggetti da trasferire al set di dati di destinazione BigQuery. In questo campo puoi anche inserire manualmente gli oggetti da includere nel trasferimento di dati.
      • Se hai selezionato Aggiungi come modalità di scrittura incrementale, devi selezionare una colonna come colonna watermark.
      • Se hai selezionato Esegui upsert come modalità di scrittura incrementale, devi selezionare una colonna come colonna watermark, e poi una o più colonne come chiave primaria.
  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 bq mk comando 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:

  • PROJECT_ID (facoltativo): il tuo Google Cloud ID progetto. 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 di 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 creata in formato JSON. Ad esempio: --params='{"param":"param_value"}'. Di seguito sono riportati i parametri per un trasferimento di dati Oracle:

    • connector.networkAttachment (facoltativo): il nome del collegamento di rete a cui connettersi al database Oracle.
    • connector.authentication.Username: il nome utente dell'account Oracle.
    • connector.authentication.Password: la 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.
    • connector.tls.mode: specifica una configurazione TLS da utilizzare con questo trasferimento:
      • ENCRYPT_VERIFY_CA_AND_HOST per crittografare i dati e verificare la CA e il nome host
      • ENCRYPT_VERIFY_CA per crittografare i dati e verificare solo la CA
      • ENCRYPT_VERIFY_NONE solo per la crittografia dei dati
      • DISABLE per nessuna crittografia o verifica
    • connector.tls.trustedServerCertificate: (facoltativo) fornisci uno o più certificati codificati in formato PEM. Obbligatorio solo se connector.tls.mode è ENCRYPT_VERIFY_CA_AND_HOST o ENCRYPT_VERIFY_CA.
    • ingestionType: specifica full o incremental. I trasferimenti incrementali sono supportati in anteprima. Per saperne di più, consulta Trasferimenti completi o incrementali.
    • writeMode: specifica WRITE_MODE_APPEND o WRITE_MODE_UPSERT.
    • watermarkColumns: specifica le colonne della tabella come colonne watermark. Questo campo è obbligatorio per i trasferimenti incrementali.
    • primaryKeys: specifica le colonne della tabella come chiavi primarie. Questo campo è obbligatorio per i trasferimenti incrementali.
    • assets: il percorso degli oggetti Oracle da trasferire a BigQuery, utilizzando il formato: DATABASE_NAME/SCHEMA_NAME/TABLE_NAME

Quando specifichi più asset durante un trasferimento incrementale, i valori dei campi watermarkColumns e primaryKeys corrispondono alla posizione dei valori nel campo assets. Nell'esempio seguente, dep_id corrisponde alla tabella DB1/USER1/DEPARTMENT, mentre report_by e report_title corrispondono alla tabella DB1/USER1/EMPLOYEES.

      "primaryKeys":[['dep_id'], ['report_by','report_title']],
      "assets":["DB1/USER1/DEPARTMENT","DB1/USER1/EMPLOYEES"],
  

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

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.tls.mode": "ENCRYPT_VERIFY_CA_AND_HOST",
        "connector.tls.trustedServerCertificate": "PEM-encoded certificate",
        "connector.networkAttachment":
        "projects/dev-project1/regions/us-central1/networkattachments/na1"
        "ingestionType":"incremental",
        "writeMode":"WRITE_MODE_APPEND",
        "watermarkColumns":["createdAt","createdAt"],
        "primaryKeys":[['dep_id'], ['report_by','report_title']]}'

API

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

Quando salvi la configurazione del trasferimento, il connettore Oracle attiva automaticamente un'esecuzione del trasferimento in base all'opzione di pianificazione. A ogni esecuzione del trasferimento, il connettore Oracle trasferisce tutti i dati disponibili da Oracle a BigQuery.

Per eseguire manualmente un trasferimento di dati al di fuori della pianificazione regolare, puoi avviare un'esecuzione di backfill.

Risoluzione dei problemi di configurazione del trasferimento

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

Passaggi successivi