Oracle Database per DataStage connettore
Utilizzare il connettore Oracle Database per DataStage in DataStage® per accedere al database Oracle ed eseguire funzioni di lettura, scrittura e caricamento.
Prerequisito
Crea la connessione. Per istruzioni, consultare Connessione a un'origine dati in DataStage e Oracle Database per DataStage connection.
Lettura dei dati dal Oracle Database per il connettore DataStage come sorgente
Per configurare il connettore per leggere le righe in una tabella o in una vista Oracle , è necessario specificare la tabella o la vista di origine o definire un'istruzione SELECT completa o un blocco PL/SQL.
Le proprietà disponibili per la Modalità di lettura dipendono dal fatto che si scelga la modalità Seleziona o PL/SQL .
- Lettura dei dati dal database Oracle Database per DataStage
- Dall'area di disegno del job, fare doppio clic sul connettore Oracle Database per DataStage .
- Nella scheda Output, fare clic su Utilizzo.
- Impostare Modalità di lettura su Seleziona o PL/SQL
- Se si imposta Modalità di lettura su Seleziona, utilizzare uno di questi metodi per specificare l'origine dei dati:
- Impostare Genera SQL in un runtime su Sì , quindi immettere il nome della tabella o della vista nella proprietà Nome tabella . Utilizzare la sintassi schema_name.table_name, dove schema_name è il proprietario della tabella. Se non si specifica schema_name, il connettore utilizza lo schema che appartiene all'utente attualmente connesso. Dalla proprietà Ambito tabella è possibile scegliere a quale parte della tabella accedere.
- Impostare Genera SQL in un runtime su No, quindi specificare l'istruzione SELECT nella proprietà Seleziona istruzione .
- Impostare Genera SQL in un runtime su No, quindi immettere il nome file completo del file che contiene l'istruzione SQL nella proprietà Seleziona istruzione .
- Se si imposta Modalità di lettura su PL/SQL, utilizzare uno di questi metodi per specificare l'origine dei dati:
- Immettere il blocco PL/SQL manualmente nella proprietà Blocco PL/SQL .
- Immettere il nome completo del file che contiene il blocco PL/SQL nella proprietà Blocco PL/SQL .
Il blocco PL/SQL specificato deve iniziare con la parola chiave DECLARE o BEGIN e deve terminare con la parola chiave END ed è necessario immettere un punto e virgola dopo la parola chiave END.
- È possibile configurare le proprietà facoltative:
- Nella scheda Sessione :
- Conteggio righe di precaricamento: impostare un valore diverso da
1
per questa proprietà per precaricare il numero di righe prima dal database Oracle . - Dimensione buffer di ricerca: immettere il valore per recuperare il numero di record che possono rientrare nella dimensione buffer specificata.
- Trasferimento contenuto BFILE: trasferire il contenuto del file esterno invece dell'ubicazione del file durante il trasferimento dei valori della colonna BFILE.
È possibile specificare istruzioni Before / After SQL che verranno eseguite una volta prima o dopo l'elaborazione dei dati oppure una volta su ciascun nodo prima o dopo l'elaborazione dei dati.
- Conteggio righe di precaricamento: impostare un valore diverso da
- Nella scheda Transazione :
- Livello di isolamento: specificare il grado in cui i dati a cui accede il connettore Oracle Database per DataStage sono bloccati o isolati da altre transazioni, unità di lavoro o processi in esecuzione contemporaneamente.
- Conteggio record: il numero di record per transazione. Il valore
0
indica tutti i record disponibili. - Contrassegna fine della movimentazione: scegliere come il connettore gestisce l'elaborazione batch.
- Nella scheda Sessione :
- Fare clic su Salva.
Lettura dei dati partizionati
In un job che utilizza più nodi, ciascun nodo specificato per lo stage legge un sottoinsieme distinto di dati dalla tabella origine.
- Lettura dei dati partizionati dal database Oracle Database per DataStage
- Nella scheda Output, impostare Abilita letture con partizioni su Sì.
- Impostare la Modalità di lettura su Seleziona, quindi definire l'istruzione SELECT che il connettore utilizza al runtime:
- Impostare Genera SQL in un runtime su Sì, quindi immettere il nome della tabella o della vista nella proprietà Nome tabella . Utilizzare la sintassi schema_name.table_name, dove schema_name è il proprietario della tabella. Se non si specifica schema_name, il connettore utilizza lo schema che appartiene all'utente attualmente connesso. Il connettore genera ed esegue automaticamente l'istruzione SELECT.
Per leggere i dati da una particolare partizione di una tabella partizionata, impostare la proprietà Ambito tabella su Partizione singola e specificare il nome partizione nella proprietà Nome partizione . Il connettore aggiunge automaticamente una clausola PARTITION(partition_name) all'istruzione SELECT generata. Per leggere i dati da una particolare partizione secondaria della tabella con partizioni composta, impostare la proprietà Ambito tabella su Singola partizione secondaria.
- Impostare Genera SQL in un runtime su No, quindi specificare l'istruzione SELECT nella proprietà Seleziona istruzione . È possibile immettere l'istruzione SQL o immettere il nome file completo del file che contiene l'istruzione SQL.
- Impostare Genera SQL in un runtime su Sì, quindi immettere il nome della tabella o della vista nella proprietà Nome tabella . Utilizzare la sintassi schema_name.table_name, dove schema_name è il proprietario della tabella. Se non si specifica schema_name, il connettore utilizza lo schema che appartiene all'utente attualmente connesso. Il connettore genera ed esegue automaticamente l'istruzione SELECT.
- Scegliere il Metodo di lettura partizionato che si desidera utilizzare. Il metodo di partizionamento predefinito è Rowid range.
- Se si sceglie il metodo partizionato Intervallo ID riga o Intervallo minimo e massimo , nella proprietà Nome partizione o partizione secondaria per letture partizionate , specificare il nome della partizione o della partizione secondaria utilizzata dai metodi di lettura partizionati.
Se non si specifica un valore per la proprietà Nome partizione o partizione secondaria per letture partizionate , il connettore utilizza l'intera tabella come input per il metodo di lettura partizionato.
- Se si sceglie il metodo di lettura partizionato Modulo o Intervallo minimo e massimo , in Nome colonna per letture partizionate, immettere il nome della colonna dalla tabella di origine da utilizzare per il metodo. La colonna deve essere una colonna esistente nella tabella, deve essere di tipo dati NUMBER(p) , dove p è la precisione del numero e deve avere una scala di zero.
- Nella proprietà Nome tabella per letture suddivise in partizioni , specificare il nome della tabella utilizzata dal metodo di lettura suddiviso in partizioni per definire i sottoinsiemi di dati letti da ciascun nodo dalla tabella di origine. Se non si specifica un nome tabella, il connettore utilizza il valore della proprietà Genera SQL in un runtime per determinare il nome tabella. Se Genera SQL al runtime è impostato su Sì, il connettore utilizza il nome tabella specificato nella proprietà Nome tabella . Se la proprietà Genera SQL in un runtime è impostata su No, il connettore esamina l'istruzione SELECT specificata nella proprietà Istruzione Select e utilizza il nome della prima tabella specificato nella clausola FROM.
- Se si sceglie il metodo partizionato Intervallo ID riga o Intervallo minimo e massimo , nella proprietà Nome partizione o partizione secondaria per letture partizionate , specificare il nome della partizione o della partizione secondaria utilizzata dai metodi di lettura partizionati.
- Fare clic su Salva.
Scrittura dei dati nel connettore Oracle Database per DataStage come target
Per configurare il connettore in modo che scriva le righe nella tabella o nella vista scrivibile Oracle Database per DataStage , è necessario specificare la tabella o la vista di destinazione o definire le istruzioni SQL o il blocco PL/SQL.
- Scrittura dei dati in Oracle Database per DataStage
- Dall'area di disegno del job, fare doppio clic sul connettore Oracle Database per DataStage .
- Nella scheda Input, fare clic su Utilizzo.
- Specificare il modo in cui il connettore Oracle Database per DataStage scrive i dati in una tabella Oracle o in una vista scrivibile:
Tabella 1. Metodi per scrivere i dati in una Oracle Database per la vista scrivibile o tabella DataStage Metodo Procedura Genera automaticamente l'SQL al runtime - Impostare Genera SQL al runtime su Sì.
- Impostare Modalità di scrittura su Inserisci, Inserisci solo nuove righe, Aggiorna, Elimina, Inserisci e aggiorna, Aggiorna e inseriscio Elimina e inserisci.
- Immettere il nome della tabella di destinazione nella proprietà Nome tabella .
Immettere l'SQL manualmente - Impostare Genera SQL al runtime su No.
- Impostare Modalità di scrittura su Inserisci, Inserisci solo nuove righe, Aggiorna, Elimina, Inserisci e aggiorna, Aggiorna e inseriscio Elimina e inserisci.
- Immettere istruzioni SQL nei campi che corrispondono alla modalità di scrittura selezionata.
Specificare un blocco PL/SQL - Impostare la Modalità di scrittura su PL/SQL.
- Immettere il blocco PL/SQL nella proprietà Blocco PL/SQL .
Il blocco PL/SQL deve iniziare con la parola chiave DECLARE o BEGIN e terminare con la parola chiave END. È necessario includere un carattere punto e virgola dopo la parola chiave END.
Carica in massa i dati - Impostare Modalità di scrittura su Caricamento di massa.
- Immettere il nome della tabella nella proprietà Nome tabella . Utilizzare la sintassi schema_name.table_name, dove schema_name è il proprietario della tabella. Se non si specifica schema_name, il connettore utilizza lo schema che appartiene all'utente attualmente connesso.
- Fare clic su Salva.
Configurazione del caricamento di massa dei dati
Quando si utilizza il connettore Oracle Database for DataStage per caricare in massa i dati in un database Oracle , è possibile abilitare o disabilitare i vincoli e i trigger. È inoltre possibile configurare la cache della data, gestire gli indici, impostare le opzioni per il caricamento di massa dei record e abilitare la modalità manuale.
- Impostazione del caricamento di massa
- Nella proprietà Modalità di scrittura , scegliere il metodo Caricamento di massa e specificare la tabella in cui scrivere nella proprietà Nome tabella .
- Configurare il connettore per disattivare i vincoli prima di caricare in massa i dati e abilitare i vincoli dopo il caricamento in massa dei dati:
- Impostare Esegui operazioni prima del caricamento di massa su Sì.
- Impostare Disabilita vincoli su Sì.
- Impostare Esegui operazioni dopo caricamento di massa su Sì.
- Impostare Abilita vincoli su Sì.
- Nel campo Nome tabella eccezioni , immettere il nome della tabella eccezioni.
Se la tabella delle eccezioni non esiste, il connettore la creerà.
Se la tabella delle eccezioni esiste già, il connettore elimina i dati presenti nella tabella e li utilizza.
- Configurare il connettore per disabilitare i trigger prima di caricare in massa i dati e abilitare i trigger dopo il caricamento in massa dei dati:
- Impostare Esegui operazioni prima del caricamento di massa su Sì.
- Impostare Disabilita trigger su Sì.
- Impostare Esegui operazioni dopo caricamento di massa su Sì.
- Impostare Abilita trigger su Sì.
- Per controllare come gestire gli indici di tabella durante un caricamento di massa, impostare la proprietà Opzione di manutenzione indice .
- Per ricreare gli indici dopo un caricamento di massa:
- Impostare Esegui operazioni dopo caricamento di massa su Sì.
- Impostare Ricrea indici su Sì.
- Facoltativo: per attivare o disattivare il parallelismo e la registrazione nel log di ripristino quando l'indice viene rigenerato, specificare valori non predefiniti per le proprietà Clausola parallela e Clausola di registrazione .
Per impostazione predefinita, le clausole parallele e di registrazione non vengono incluse nell'istruzione ALTER INDEX.
- Facoltativo: per arrestare il lavoro se un'istruzione di rigenerazione dell'indice ha esito negativo, impostare Non riuscito in caso di errore per la rigenerazione dell'indice su Sì.
Se la rigenerazione di un indice ha esito negativo, il connettore registra un errore irreversibile.
- Se si prevede di caricare in massa i dati nelle tabelle che contengono le colonne DATE o TIMESTAMP, abilitare e configurare la cache di data:
- Impostare Utilizza cache di dati Oracle su Sì.
- Facoltativo: nella proprietà Dimensione cache , immettere il numero massimo di voci che la cache memorizza.
- Facoltativo: impostare Disabilita cache quando è piena su Sì.
Quando il numero di voci nella cache raggiunge il numero specificato nella proprietà Dimensione cache e la successiva ricerca nella cache risulta in un mancato riscontro, la cache viene disabilitata.
- Impostare le opzioni per controllare il caricamento di massa dei record:
- Impostare Dimensione matrice su un valore compreso tra 1 e 999.999.999.
Il valore di default è 2,000.
- Impostare la proprietà Consenti sessioni di caricamento simultanee su Sì.
- Impostare Dimensione buffer su un valore compreso tra 4 e 100.240, che rappresenta la dimensione del buffer in KB.
Il valore predefinito è 1,024.
- Impostare Dimensione matrice su un valore compreso tra 1 e 999.999.999.
- Per abilitare la modalità manuale:
- Impostare Modalità Manaul su Sì.
- Facoltativo: nella proprietà Directory for data and control files , specificare una directory in cui salvare i file di controllo e di dati.
- Facoltativo: nella proprietà Nome file di controllo , specificare un nome per il file di controllo.
- Nella proprietà Nome file di dati , specificare il nome del file di dati.
Se non si specifica un valore per il nome del file di dati, il connettore genera il nome nel formato servername_tablename.dat.
- Nella proprietà Opzioni di caricamento , specificare le opzioni di caricamento di massa da includere nel file di controllo generato dal connettore.
Il valore contiene parametri passati al programma di utilità Oracle SQL* Loader quando il programma di utilità viene richiamato per elaborare i file di dati e di controllo. Il valore predefinito è OPTIONS (DIRECT = FALSE, PARALLEL = TRUE).
Il parametro DIRECT = FALSE indica a Oracle SQL* Loader di utilizzare il caricamento del percorso convenzionale invece del caricamento del percorso diretto. Il parametro PARALLEL=TRUE indica al programma di utilità che i dati possono essere caricati in parallelo da più sessioni simultanee.
La parola OPTIONS e le parentesi devono essere incluse nel valore specificato per la proprietà. Il connettore salva questo valore di proprietà nel file di controllo generato e non controlla la sintassi del valore.
Scrittura di dati partizionati
In un job che utilizza più nodi, i record che arrivano sul link di input del connettore vengono distribuiti su più nodi. Quindi, i record vengono scritti in parallelo da tutti i nodi al database di destinazione.
Il tipo di partizione predefinito è Auto, che seleziona il tipo di partizione in base a varie impostazioni per gli stage nel job. Invece di utilizzare l'opzione Auto, è preferibile selezionare un tipo di partizione in base alla propria conoscenza dei dati effettivi e della tabella di destinazione su cui il connettore scrive al runtime.
- Impostazione di un metodo partizionato
- Nell'area di disegno del job, fare doppio clic sul connettore Oracle Database per DataStage .
- Nella scheda Input, fare clic sulla scheda Partizionamento .
- Scegliere il Tipo di partizione:
Tabella 2. Tipi di partizionamento per il connettore Oracle Database for DataStage Tipo di partizione Descrizione Auto DataStage determina il miglior metodo di partizionamento da utilizzare a seconda del tipo di stage e di cosa ha fatto lo stage precedente nel job. Intero Ogni istanza di uno stage su ogni nodo di elaborazione riceve il dataset completo come input. È più probabile utilizzare questo metodo di partizionamento con stage che creano tabelle di ricerca dal relativo input. Casuale I record vengono distribuiti casualmente in tutti i nodi di elaborazione in questa partizione. Come round robin, il partizionamento casuale può ribilanciare le partizioni di un dataset di input per assicurare che ogni nodo di elaborazione riceva una partizione di dimensioni approssimativamente uguali. Round robin Il primo record va al primo nodo di elaborazione, il secondo al secondo nodo di elaborazione e così via. Quando DataStage raggiunge l'ultimo nodo di elaborazione nel sistema, viene riavviato. Questo metodo è utile per ridimensionare le partizioni di un dataset di input che non hanno la stessa dimensione. Uguale Lo stage che utilizza il dataset come input non esegue il ripartizionamento e prende come input l'output delle partizioni dallo stage precedente. Con questo metodo di partizionamento, i record rimangono sullo stesso nodo di elaborazione, ossia non vengono ridistribuiti. DataStage utilizza questo metodo quando si passano i dati tra gli stage nel job. Modulo Il partizionamento si basa su una colonna chiave modulo il numero di partizioni. Il partitioner del modulo assegna ogni record di un dataset di input a una partizione del relativo dataset di output come determinato da un campo chiave specificato nel dataset di input. Hash Il partizionamento è basato su una funzione di una o più colonne (le chiavi di partizionamento hash) in ogni record. Il partitioner hash esamina uno o più campi di ciascun record di input (i campi chiave hash). I record con gli stessi valori per tutti i campi chiave hash vengono assegnati allo stesso nodo di elaborazione. Range Divide un dataset in partizioni di dimensioni approssimativamente uguali, ognuna delle quali contiene record con colonne chiave all'interno di un intervallo specificato. Questo metodo è utile anche per garantire che i record correlati siano nella stessa partizione.