Oracle Database für DataStage Anschluss

Verwenden Sie den Connector Oracle Database für DataStage in DataStage® , um auf das Oracle -Datenbanksystem zuzugreifen und Lese-, Schreib-und Ladefunktionen auszuführen.

Voraussetzung

Erstellen Sie die Verbindung. Anweisungen hierzu finden Sie in Verbindung zu einer Datenquelle in DataStage und in der Oracle Database für DataStage -Verbindung.

Lesen von Daten aus der Oracle Database für DataStage-Konnektor als Quelle

Um den Connector für das Lesen von Zeilen in einer Oracle -Tabelle oder -Sicht zu konfigurieren, müssen Sie die Quellentabelle oder -Sicht angeben oder eine vollständige Anweisung SELECT oder einen PL/SQL-Block definieren.

Die verfügbaren Eigenschaften für den Lesemodus hängen davon ab, ob Sie den Modus Auswählen oder PL/SQL auswählen.

Daten aus der Oracle Database für DataStage -Datenbank lesen
  1. Doppelklicken Sie im Erstellungsbereich für den Jobentwurf auf den Connector Oracle Database for DataStage .
  2. Klicken Sie auf der Registerkarte Ausgabeauf Verwendung.
  3. Setzen Sie Lesemodus auf Auswählen oder PL/SQL .
  4. Wenn Sie Lesemodus auf Auswählensetzen, verwenden Sie eine der folgenden Methoden, um die Quelle der Daten anzugeben:
    • Setzen Sie SQL zur Laufzeit generieren auf Ja und geben Sie dann den Namen der Tabelle oder Sicht in die Eigenschaft Tabellenname ein. Verwenden Sie die Syntax schema_name.table_name, wobei schema_name der Eigner der Tabelle ist. Wenn Sie schema_namenicht angeben, verwendet der Connector das Schema, das zu dem Benutzer gehört, der momentan verbunden ist. Über die Eigenschaft Tabellenbereich können Sie auswählen, auf welchen Teil der Tabelle zugegriffen werden soll.
    • Setzen Sie SQL zur Laufzeit generieren auf Neinund geben Sie dann die Anweisung SELECT in der Eigenschaft Anweisung auswählen an.
    • Setzen Sie SQL zur Laufzeit generieren auf Neinund geben Sie dann den vollständig qualifizierten Dateinamen der Datei, die die SQL-Anweisung enthält, in die Eigenschaft Anweisung auswählen ein.
  5. Wenn Sie Lesemodus auf PL/SQLsetzen, verwenden Sie eine der folgenden Methoden, um die Datenquelle anzugeben:
    • Geben Sie den PL/SQL-Block manuell in die Eigenschaft PL/SQL-Block ein.
    • Geben Sie den vollständig qualifizierten Dateinamen der Datei ein, die den PL/SQL-Block in der Eigenschaft PL/SQL-Block enthält.

    Der angegebene PL/SQL-Block muss mit dem Schlüsselwort DECLARE oder BEGIN beginnen und mit dem Schlüsselwort END enden. Nach dem Schlüsselwort END muss ein Semikolon eingegeben werden.

  6. Sie können optionale Eigenschaften konfigurieren:
    • Gehen Sie auf der Registerkarte Sitzung wie folgt vor:
      • Anzahl der Vorablesezugriffszeilen: Legen Sie für diese Eigenschaft einen anderen Wert als 1 fest, um so viele Zeilen vorab aus der Oracle -Datenbank abzurufen.
      • Puffergröße für Vorablesezugriff: Geben Sie den Wert ein, um so viele Datensätze abzurufen, wie in die angegebene Puffergröße passen.
      • BFILE-Inhalte übertragen: Übertragen Sie beim Übertragen von BFILE-Spaltenwerten externe Dateiinhalte anstelle der Dateiposition.

      Sie können Vorbereitungs-/Nachbereitungs-SQL -Anweisungen angeben, die einmal vor oder nach der Verarbeitung von Daten oder einmal auf jedem Knoten vor oder nach der Verarbeitung von Daten ausgeführt werden sollen.

    • Auf der Registerkarte Transaktion :
      • Isolationsstufe: Geben Sie den Grad an, bis zu dem die Daten, auf die der Oracle Database for DataStage -Connector zugreift, gesperrt oder von anderen gleichzeitig ausgeführten Transaktionen, Arbeitseinheiten oder Prozessen isoliert sind.
      • Datensatzanzahl: Die Anzahl der Datensätze pro Transaktion. Der Wert 0 steht für alle verfügbaren Datensätze.
      • Ende des Laufs markieren: Wählen Sie aus, wie der Connector die Stapelverarbeitung handhabt.
  7. Klicken Sie auf Speichern.

Lesen partitionierter Daten

In einem Job, der mehrere Knoten verwendet, liest jeder für die Stage angegebene Knoten eine bestimmte Untergruppe von Daten aus der Quellentabelle.

Partitionierte Daten aus der Oracle Database für DataStage -Datenbank lesen
  1. Setzen Sie auf der Registerkarte Ausgabedie Option Partitionierte Lesevorgänge aktivieren auf Ja.
  2. Setzen Sie Lesemodus auf Auswählenund definieren Sie dann die SELECT-Anweisung, die der Connector zur Laufzeit verwendet:
    • Setzen Sie SQL zur Laufzeit generieren auf Jaund geben Sie dann den Namen der Tabelle oder Sicht in die Eigenschaft Tabellenname ein. Verwenden Sie die Syntax schema_name.table_name, wobei schema_name der Eigner der Tabelle ist. Wenn Sie schema_namenicht angeben, verwendet der Connector das Schema, das zu dem Benutzer gehört, der momentan verbunden ist. Der Connector generiert die Anweisung SELECT automatisch und führt sie aus.

      Um Daten aus einer bestimmten Partition einer partitionierten Tabelle zu lesen, setzen Sie die Eigenschaft Tabellenbereich auf Einzelne Partition und geben Sie den Namen der Partition in der Eigenschaft Partitionsname an. Der Connector fügt dann automatisch eine Klausel PARTITION(partition_name) zur generierten Anweisung SELECT hinzu. Um Daten aus einer bestimmten Unterpartition der zusammengesetzten partitionierten Tabelle zu lesen, setzen Sie die Eigenschaft Tabellenbereich auf Einzelne Unterpartition.

    • Setzen Sie SQL zur Laufzeit generieren auf Neinund geben Sie dann die Anweisung SELECT in der Eigenschaft Anweisung auswählen an. Sie können die SQL-Anweisung oder den vollständig qualifizierten Dateinamen der Datei eingeben, die die SQL-Anweisung enthält.
  3. Wählen Sie die gewünschte Methode für partitioniertes Lesen aus. Die Standardpartitionierungsmethode ist Rowid range.
    • Wenn Sie die partitionierte Methode Rowid range oder Minimum and maximum range auswählen, geben Sie in der Eigenschaft Partitionsname oder Unterpartitionsname für partitionierte Lesevorgänge den Namen der Partition oder Unterpartition an, die von den partitionierten Lesemethoden verwendet wird.

      Wenn Sie keinen Wert für die Eigenschaft Partitions-oder Unterpartitionsname für partitionierte Lesevorgänge angeben, verwendet der Connector die gesamte Tabelle als Eingabe für die partitionierte Lesemethode.

    • Wenn Sie die Methode Modulus oder die Methode Minimaler und maximaler Bereich für partitionierte Lesevorgänge auswählen, geben Sie im Feld Spaltenname für partitionierte Lesevorgängeden Namen der Spalte aus der Quellentabelle ein, die für die Methode verwendet wird. Die Spalte muss eine vorhandene Spalte in der Tabelle sein, muss den Datentyp NUMBER(p) aufweisen, wobei p die Zahlengenauigkeit ist und einen Maßstab von null haben muss.
    • Geben Sie in der Eigenschaft Tabellenname für partitionierte Lesevorgänge den Namen der Tabelle an, die die partitionierte Lesemethode verwendet, um die Untergruppen von Daten zu definieren, die jeder Knoten aus der Quellentabelle liest. Wenn Sie keinen Tabellennamen angeben, verwendet der Connector den Wert der Eigenschaft SQL zur Laufzeit generieren , um den Tabellennamen zu bestimmen. Wenn SQL zur Laufzeit generieren auf Jagesetzt ist, verwendet der Connector den Tabellennamen, der in der Eigenschaft Tabellenname angegeben ist. Wenn die Eigenschaft SQL zu Laufzeit generieren auf Neingesetzt ist, prüft der Connector die Anweisung SELECT, die in der Eigenschaft Anweisung SELECT angegeben ist, und verwendet den ersten Tabellennamen, der in der Klausel FROM angegeben ist.
  4. Klicken Sie auf Speichern.

Schreiben von Daten in die Oracle Database für DataStage-Konnektor als Ziel

Um den Konnektor so zu konfigurieren, dass Zeilen in die Oracle Database für DataStage -Tabelle oder -modifizierbare Sicht geschrieben werden, müssen Sie die Zieltabelle oder -sicht angeben bzw. die SQL-Anweisungen bzw. den PL/SQL-Block definieren.

Daten in die Oracle Database für DataStage
  1. Doppelklicken Sie im Erstellungsbereich für den Jobentwurf auf den Connector Oracle Database for DataStage .
  2. Klicken Sie auf der Registerkarte Eingabeauf Verwendung.
  3. Geben Sie an, wie der Connector von Oracle Database for DataStage Daten in eine Oracle -Tabelle oder eine beschreibbare Ansicht schreibt:
    Tabelle 1. Methoden zum Schreiben von Daten in eine Oracle Database für DataStage -Tabelle oder -beschreibbare Sicht
    Methode Vorgehensweise
    SQL zur Laufzeit automatisch generieren
    • Setzen Sie SQL zur Laufzeit generieren auf Ja.
    • Setzen Sie Write mode auf Insert, Insert new rows only, Update, Delete, Insert then update, Update then insertoder Delete then insert.
    • Geben Sie den Namen der Zieltabelle in die Eigenschaft Tabellenname ein.
    SQL manuell eingeben
    • Setzen Sie SQL zur Laufzeit generieren auf Nein.
    • Setzen Sie Write mode auf Insert, Insert new rows only, Update, Delete, Insert then update, Update then insertoder Delete then insert.
    • Geben Sie SQL-Anweisungen in die Felder ein, die dem ausgewählten Schreibmodus entsprechen.
    PL/SQL-Block angeben
    • Setzen Sie den Schreibmodus auf PL/SQL.
    • Geben Sie den PL/SQL-Block in die Eigenschaft PL/SQL-Block ein.

    Der PL/SQL-Block muss mit dem Schlüsselwort DECLARE oder BEGIN beginnen und mit dem Schlüsselwort END enden. Nach dem Schlüsselwort END muss ein Semikolon angegeben werden.

    Laden von Massendaten
    • Setzen Sie Schreibmodus auf Laden von Massendaten.
    • Geben Sie den Namen der Tabelle in die Eigenschaft Tabellenname ein. Verwenden Sie die Syntax schema_name.table_name, wobei schema_name der Eigner der Tabelle ist. Wenn Sie schema_namenicht angeben, verwendet der Connector das Schema, das zu dem Benutzer gehört, der momentan verbunden ist.
  4. Klicken Sie auf Speichern.

Massenladen von Daten konfigurieren

Wenn Sie den Connector Oracle Database für DataStage zum Laden von Massendaten in eine Oracle -Datenbank verwenden, können Sie Integritätsbedingungen und Auslöser aktivieren oder inaktivieren. Sie können auch den Datumscache konfigurieren, Indizes verwalten, Optionen zum Laden von Massendatensätzen festlegen und den manuellen Modus aktivieren.

Massenladevorgang einrichten
  1. Wählen Sie in der Eigenschaft Schreibmodus die Methode Laden von Massendaten aus und geben Sie die Tabelle, in die geschrieben werden soll, in der Eigenschaft Tabellenname an.
  2. Konfigurieren Sie den Connector so, dass Einschränkungen inaktiviert werden, bevor Massendaten geladen werden, und aktivieren Sie Einschränkungen, nachdem Massendaten geladen wurden:
    1. Setzen Sie Operationen vor dem Laden von Massendaten ausführen auf Ja.
    2. Setzen Sie Bedingungen inaktivieren auf Ja.
    3. Setzen Sie Operationen nach dem Laden von Massendaten ausführen auf Ja.
    4. Setzen Sie Einschränkungen aktivieren auf Ja.
    5. Geben Sie im Feld Name der Ausnahmetabelle den Namen der Ausnahmetabelle ein.

      Wenn die Ausnahmetabelle nicht vorhanden ist, wird sie vom Connector erstellt.

      Wenn die Ausnahmetabelle bereits vorhanden ist, löscht der Connector alle Daten in der Tabelle und verwendet sie anschließend.

  3. Konfigurieren Sie den Connector, um Auslöser vor dem Laden von Massendaten zu inaktivieren und Auslöser nach dem Laden von Massendaten zu aktivieren:
    1. Setzen Sie Operationen vor dem Laden von Massendaten ausführen auf Ja.
    2. Setzen Sie Auslöser inaktivieren auf Ja.
    3. Setzen Sie Operationen nach dem Laden von Massendaten ausführen auf Ja.
    4. Setzen Sie Auslöser aktivieren auf Ja.
  4. Legen Sie die Eigenschaft Indexverwaltungsoption fest, um zu steuern, wie Tabellenindizes beim Laden von Massendaten verarbeitet werden.
  5. Gehen Sie wie folgt vor, um Indizes nach einem Massenladevorgang erneut zu erstellen:
    1. Setzen Sie Operationen nach dem Laden von Massendaten ausführen auf Ja.
    2. Setzen Sie Indizes erneut erstellen auf Ja.
    3. Optional: Um die Parallelität und die Protokollierung im Wiederherstellungsprotokoll zu aktivieren oder zu inaktivieren, wenn der Index erneut erstellt wird, geben Sie andere Werte als die Standardwerte für die Eigenschaften Parallelklausel und Protokollierungsklausel an.

      Standardmäßig sind Parallel-und Protokollierungsklauseln nicht in der Anweisung ALTER INDEX enthalten.

    4. Optional: Um den Job zu stoppen, wenn eine Anweisung zur Indexneuerstellung fehlschlägt, setzen Sie Fehlgeschlagen bei Fehler bei Indexneuerstellung auf Yes.

      Wenn eine Indexwiederherstellung fehlschlägt, protokolliert der Connector einen schwerwiegenden Fehler.

  6. Wenn Sie Massendaten in Tabellen laden möchten, die DATE-oder TIMESTAMP-Spalten enthalten, aktivieren und konfigurieren Sie den Datumscache:
    1. Setzen Sie Oracle -Datencache verwenden auf Ja.
    2. Optional: Geben Sie in der Eigenschaft Cachegröße die maximale Anzahl der Einträge ein, die im Cachespeicher gespeichert werden.
    3. Optional: Setzen Sie Cache inaktivieren, wenn voll auf Ja.

      Wenn die Anzahl der Einträge im Cache die mit der Eigenschaft Cachegröße angegebene Anzahl erreicht und bei der nächsten Suche im Cache ein Fehler auftritt, wird der Cache inaktiviert.

  7. Legen Sie Optionen fest, um das Laden von Massendatensätzen zu steuern:
    1. Setzen Sie Array-Größe auf den Wert 1-999.999.999.

      Der Standardwert ist 2.000.

    2. Setzen Sie die Eigenschaft Allow concurrent load sessions auf Yes.
    3. Setzen Sie Puffergröße auf einen Wert von 4 bis 100.240, der die Puffergröße in KB darstellt.

      Der Standardwert ist 1.024.

  8. So aktivieren Sie den manuellen Modus:
    1. Setzen Sie Manaul mode auf Yes.
    2. Optional: Geben Sie in der Eigenschaft Verzeichnis für Daten-und Steuerdateien ein Verzeichnis an, in dem die Steuer-und Datendateien gespeichert werden.
    3. Optional: Geben Sie in der Eigenschaft Name der Steuerdatei einen Namen für die Steuerdatei an.
    4. Geben Sie in der Eigenschaft Datendateiname den Namen der Datendatei an.

      Wenn Sie keinen Wert für den Datendateinamen angeben, generiert der Connector den Namen im servername_tablename.dat-Format.

    5. Geben Sie in der Eigenschaft Ladeoptionen die Optionen zum Laden von Massendaten an, die in die vom Connector generierte Steuerdatei eingeschlossen werden sollen.

      Der Wert enthält Parameter, die an das Dienstprogramm Oracle SQL* Loader übergeben werden, wenn das Dienstprogramm zur Verarbeitung der Steuer-und Datendateien aufgerufen wird. Der Standardwert ist OPTIONS (DIRECT = FALSE, PARALLEL = TRUE).

      Der Parameter DIRECT = FALSE weist den Oracle SQL* Loader an, die konventionelle Pfadlast anstelle der direkten Pfadlast zu verwenden. Der Parameter PARALLEL=TRUE teilt dem Dienstprogramm mit, dass die Daten parallel aus mehreren gleichzeitigen Sitzungen geladen werden können.

      Das Wort OPTIONS und die runden Klammern müssen in dem für die Eigenschaft angegebenen Wert enthalten sein. Der Connector speichert diesen Eigenschaftswert in der generierten Steuerdatei und überprüft nicht die Syntax des Werts.

Schreiben partitionierter Daten

In einem Job, der mehrere Knoten verwendet, werden Datensätze, die über den Eingabelink des Connectors eingehen, auf mehrere Knoten verteilt. Anschließend werden die Datensätze parallel von allen Knoten in die Zieldatenbank geschrieben.

Der Standardpartitionstyp ist Auto, der den Partitionstyp basierend auf den verschiedenen Einstellungen für die Stages im Job auswählt. Anstatt Autozu verwenden, ist es besser, einen Partitionstyp auf der Basis Ihrer Kenntnisse über die tatsächlichen Daten und die Zieltabelle auszuwählen, in die der Connector zur Laufzeit schreibt.

Festlegen einer partitionierten Methode
  1. Doppelklicken Sie im Joberstellungsbereich auf den Connector Oracle Database für DataStage .
  2. Klicken Sie auf der Registerkarte Eingabeauf die Registerkarte Partitionierung .
  3. Wählen Sie den Partitionstypaus:
    Tabelle 2. Partitionierungstypen für den Connector Oracle Database für DataStage
    Partitionstyp Beschreibung
    Automatisch DataStage legt die beste Partitionierungsmethode fest, die abhängig vom Typ der Stage und von der Ausführung der vorherigen Stage im Job verwendet werden soll.
    Komplett Jede Instanz einer Stage auf jedem Verarbeitungsknoten erhält das vollständige Dataset als Eingabe. Es ist sehr wahrscheinlich, dass Sie diese Partitionierungsmethode mit Stages verwenden, die Referenztabellen aus ihren Eingaben erstellen.
    Zufällig Datensätze werden zufällig auf alle Verarbeitungsknoten in dieser Partition verteilt. Wie beim Round-Robin-Verfahren kann die zufällige Partitionierung die Partitionen eines Eingabedataset neu verteilen, um sicherzustellen, dass jeder Verarbeitungsknoten eine ungefähr gleich große Partition erhält.
    Umlauf Der erste Datensatz geht an den ersten Verarbeitungsknoten, der zweite an den zweiten Verarbeitungsknoten usw. Wenn DataStage den letzten Verarbeitungsknoten im System erreicht, beginnt es von vorne. Diese Methode ist nützlich, um die Größe von Partitionen eines Eingabedataset zu ändern, die nicht gleich groß sind.
    Identisch Die Stage, die das Dataset als Eingabe verwendet, führt keine erneute Partitionierung durch und verwendet die Partitionsausgabe der vorherigen Stage als Eingabe. Bei dieser Partitionierungsmethode bleiben Datensätze auf demselben Verarbeitungsknoten, d. h., sie werden nicht umverteilt. DataStage verwendet diese Methode beim Übergeben von Daten zwischen Stages in Ihrem Job.
    Modulus Die Partitionierung basiert auf einer Schlüsselspalte modulo der Anzahl der Partitionen. Die Modulopartitionierungsfunktion ordnet jeden Datensatz einer Eingabedatei einer Partition ihrer Ausgabedatei zu, wie durch ein angegebenes Schlüsselfeld in der Eingabedatei festgelegt.
    Hashwert Die Partitionierung basiert auf einer Funktion aus mindestens einer Spalte (den Hashpartitionierungsschlüsseln) in jedem Datensatz. Die Hashpartitionierungsfunktion untersucht ein oder mehrere Felder jedes Eingabedatensatzes (die Hashschlüsselfelder). Datensätze mit denselben Werten für alle Hashschlüsselfelder werden demselben Verarbeitungsknoten zugeordnet.
    Bereich Unterteilt ein Dataset in ungefähr gleich große Partitionen, von denen jede Datensätze mit Schlüsselspalten innerhalb eines angegebenen Bereichs enthält Diese Methode ist auch nützlich, um sicherzustellen, dass zusammengehörige Datensätze sich in derselben Partition befinden.