Datenflussoperatoren verwenden

In "Data Integration" stellen Datenflussoperatoren Eingabequellen, Ausgabeziele und Transformationen dar, die in einem Datenfluss verwendet werden können.

Im Bereich "Operatoren" ziehen Sie die Operatoren auf die Leinwand, um einen Datenfluss zu entwerfen. Anschließend können Sie im Bereich "Eigenschaften" auf der Registerkarte Details grundlegende und erforderliche Eigenschaften für jeden Operator konfigurieren. Verwenden Sie gegebenenfalls die Registerkarte Erweiterte Optionen, um andere Eigenschaften anzugeben.

Im Allgemeinen kann ein Datenflussoperator einen oder mehrere eingehende Ports und einen oder mehrere ausgehende Ports für den Datenfluss aufweisen. Sie können beispielsweise einen ausgehenden Port für eine Quelle mit eingehenden Ports in einem Filter, einem Join und einem Zieloperator verbinden. Sie können auch einen anderen Quelloperator mit demselben eingehenden Port für einen Join verbinden.

Um gültig zu sein, muss ein Datenfluss mindestens einen Quelloperator und einen Zieloperator enthalten. Während Data Integration mehrere Zelloperatoren in einem Datenfluss unterstützt, kann ein Zelloperator nur einen eingehenden Port enthalten.

Um Operatoren zu verbinden, zeigen Sie mit der Maus auf einen Operator, bis der Connector (kleiner Kreis) auf der rechten Seite des Operators angezeigt wird. Verschieben Sie dann den Connector auf den nächsten Operator, mit dem Sie eine Verbindung herstellen möchten. Eine Verbindung ist gültig, wenn die Operatoren mit einer Linie verbunden sind, nachdem Sie den Connector abgelegt haben.

Eine Verbindungslinie symbolisiert den Datenfluss von einem Knoten zum anderen. Sie können zwar einen sichtbaren Connector von einem Objekt zu einem anderen ziehen, Sie können jedoch nicht mehr als eine eingehende Verbindungslinie zu einem Filter-, Ausdrucks-, Aggregat-, Sortier- und Zieloperator verwenden.

Wichtig

Informationen zu unterstützten komplexen Datentypen finden Sie unter Hierarchische Datentypen. Möglicherweise können Sie einige Konfigurationen auf der Registerkarte "Attribute" und der Registerkarte "Daten" im Bereich "Eigenschaften" nicht ausführen.

Datenoperatoren

Data Integration bietet den Quelloperator und Zieloperator für das Hinzufügen von Eingabe- und Ausgabedatenentitys, die als Eingabe für Datenflüsse dienen, sowie die Ausgabe für transformierte Daten.

Datenasset, Verbindung und Schema auswählen

Um die Eingabe- oder Ausgabedatenentity für einen Datenoperator in einem Datenfluss zu konfigurieren, wählen Sie zunächst ein Datenasset, eine Verbindung und ein Schema (oder einen Bucket) aus.

Sie treffen die Auswahl nur in der Reihenfolge, die auf der Registerkarte Details des Bereichs Eigenschaften angezeigt wird, indem Sie auf Auswählen klicken, wenn die Option neben dem Ressourcentyp aktiviert ist.

Beispiel: Wenn Sie zum ersten Mal einen Quelloperator hinzufügen, ist nur Datenasset zur Auswahl aktiviert. Die Option "Auswählen" für den folgenden Ressourcentyp, Verbindung, wird erst aktiviert, nachdem Sie eine Auswahl für das vorherige Objekt getroffen haben.

Wenn Sie neben einer Ressource auf Auswählen klicken, wird ein Bereich für die Auswahl des gewünschten Objekts angezeigt. Sie können das Objekt im Ressourcenmenü auswählen oder Alle anzeigen auswählen, um einen anderen Bereich zum Durchsuchen oder Suchen zu verwenden, und dann das Objekt auswählen.

Bei der Auswahl eines Ressourcenobjekts basiert jede nachfolgende Auswahl auf der von der vorherigen Auswahl übernommenen hierarchischen Beziehung. Ein Navigationspfad oben im Auswahlbereich zeigt die Auswahlhierarchie an. Beispiel: Sie haben das Datenasset "Oracle Database-Datenasset 1" und die Verbindung "Standardverbindung" ausgewählt. Wenn Sie das Schema auswählen, wird der Navigationspfad als "Von Oracle Database-Daten asset1 mit Verbindung Standardverbindung" angezeigt.

Datenentity auswählen

Nachdem Sie ein Datenasset, eine Verbindung und ein Schema (oder einen Bucket) ausgewählt haben, wählen Sie eine Datenentity aus der Liste der verfügbaren Datenentitys aus.

Im Allgemeinen können Sie im Bereich Datenentitys durchsuchen die folgenden Aktionen ausführen:

  • Durchsuchen Sie die verfügbaren Datenentitys, und wählen Sie eine Entity nach ihrem Namen aus.

  • Filtern Sie die verfügbare Liste, und wählen Sie sie aus. Geben Sie im Suchfeld einen Entitynamen vollständig oder teilweise ein, und drücken Sie die Eingabetaste, um die Suche zu starten. Die Suche beachtet die Groß- /Kleinschreibung. Beispiel: Wenn die verfügbaren Datenentitys BANK_US und BANK_EU umfassen, geben Sie BANK ein, und wählen Sie dann aus der gefilterten Liste aus.

  • Verwenden Sie mindestens einen Parameter in der Suchzeichenfolge. Beispiel: CUSTOMERS_${COUNTRY}

    Informationen zum Verwenden eines parametrisierten Datenentitynamens zur Auswahl der Eingabe- oder Ausgaberessource finden Sie unter Parameter in Datenentitynamen verwenden.

Je nach Datenassettyp einer Ressource ist nach der Auswahl einer Datenentity möglicherweise eine weitere Konfiguration auf der Registerkarte Details oder der Registerkarte Erweiterte Optionen im Bereich "Eigenschaften" erforderlich.

Ressourcenobjekten Parameter zuweisen

Um zu verhindern, dass ein Ressourcenobjekt wie ein Datenasset oder eine Verbindung in einem Datenfluss dauerhaft an eine bestimmte Ressource gebunden wird, weisen Sie diesem Objekt einen Parameter zu.

Sie können den Parameter nach oder vor der Auswahl des Ressourcenobjekts zuweisen.

  • fügen Sie den Quell- oder Zieloperator im Datenfluss hinzu. Wenn Sie eine Auswahl für einen Ressourcentyp vorgenommen haben, wählen Sie neben dem Ressourcennamen Parameter zuweisen aus, um einen anderen Bereich zur Auswahl und Zuweisung von Parametern für das ausgewählte Objekt zu nutzen. Wenn kein geeigneter Parametertyp verfügbar ist, können Sie einen Parameter hinzufügen und dann zuweisen.

    Hinweis

    Parameter zuweisen ist nicht für Datenentitys verfügbar, die einen Parameter enthalten (wie BANK_${REGION}). Sie können eine parametrisierte Entityressource nicht an einen anderen Parameter binden.
  • Sie können auch den Quell- oder Zieloperator hinzufügen. Wählen Sie dann Parameter zuweisen aus, um einen Parameter in einem Bereich zuzuweisen, und wählen Sie gleichzeitig die Ressource für das Objekt aus. Im Bereich Parameter hinzufügen wählen Sie eine Ressource basierend auf der Parent-Child-Beziehung aus, die von der vorherigen Auswahl übernommen wurde. Der Navigationspfad oben im Bereich zeigt die Auswahlhierarchie an.

Siehe: Datenflussparameter verwenden

Parameter in Datenentitynamen verwenden

Sie können einen oder mehrere Datenflussparameter in den Namen der Datenentitätsressource aufnehmen, die Sie für einen Datenoperator angeben.

Die Syntax für einen Datenflussparameter in einem Datenentitynamen lautet ${PARAMETER_NAME}. Beispiel: CUSTOMERS_${COUNTRY}

Bei einem Parameternamen muss die Groß-/Kleinschreibung beachtet werden, und jeder Parameter muss einen Standardwert aufweisen.

Beispiel: CUSTOMERS_${COUNTRY} könnte die Datenbanktabelle CUSTOMERS_USA zurückgeben und BANK_${COUNTRY}/* die Object Storage-Dateien in BANK_EU.

So verwenden Sie Parameter in Datenentitynamen, wenn Sie einen Datenoperator konfigurieren:

  • Fügen Sie den Parameter dem Datenfluss hinzu, bevor Sie den Datenoperator hinzufügen
  • Fügen Sie den Parameter bei der Konfiguration der Datenentity des Operators hinzu

So fügen Sie einen Parameter hinzu

Wählen Sie in einem Datenfluss in der Leinwandsymbolleiste im Menü Anzeigen die Option Parameter aus, um den Bereich "Parameter" zu öffnen.

Wählen Sie im Bereich Parameter die Option Konfig und dann Hinzufügen aus.

Konfigurieren Sie im Bereich Parameter hinzufügen einen Parameter mit dem entsprechenden Datentyp, z.B. VARCHAR oder NUMERIC, und fügen Sie einen Standardwert hinzu.

Während der Datenentitykonfiguration in einem Datenfluss können Sie verfügbare Datenentitys durchsuchen, indem Sie den Parameternamen im Bereich Datenentitys durchsuchen eingeben. Geben Sie im Suchfeld ${ gefolgt von einem beliebigen Zeichen ein. Wenn der vordere Teil des Parameternamens mit vorhandenen Parametern im Datenfluss übereinstimmt, wird eine Liste mit vorgeschlagenen Namen angezeigt. Wählen Sie einen Parameter aus der Liste, vervollständigen Sie die Syntax, indem Sie } hinzufügen, und drücken Sie dann die Eingabetaste.

So fügen Sie einen Parameter bei der Konfiguration der Datenentity hinzu

Im Bereich Datenentitys durchsuchen können Sie folgende Aktionen ausführen:

  • Wählen Sie im Menü Weitere Aktionen die Option Datenflussparameter hinzufügen aus, um den Bereich Datenflussparameter hinzufügen zu verwenden. Geben Sie den Datentyp, den Standardwert und andere Eigenschaften für den Parameter an, den Sie hinzufügen und verwenden möchten.

  • Geben Sie im Suchfeld ${ gefolgt von einem beliebigen Zeichen ein. Wenn der vordere Teil des Parameternamens mit vorhandenen Parametern im Datenfluss übereinstimmt, wird eine Liste mit vorgeschlagenen Namen angezeigt. Wählen Sie einen Parameter aus der Liste, vervollständigen Sie die Syntax, indem Sie } hinzufügen, und drücken Sie dann die Eingabetaste.

  • Geben Sie im Suchfeld den Parameternamen ein. Beispiel: ${PARAMETER_NAME}). Wenn der Name des Parameters noch nicht im Datenfluss vorhanden ist und Sie die Eingabe drücken, zeigt Data Integration den Bereich Datenflussparameter hinzufügen an. Wählen Sie alternativ nach Eingabe des Parameternamens im Menü Weitere Aktionen die Option Datenflussparameter hinzufügen aus.

    Geben Sie im Bereich Datenflussparameter hinzufügen den Datentyp, den Standardwert und andere Eigenschaften für den Parameter an, den Sie hinzufügen und verwenden möchten.

Quelloperator

Mit dem Quelloperator können Sie die Datenentitys angeben, die als Eingabe für den Datenfluss dienen.

Quelloperator hinzufügen und konfigurieren

Sie können einem Datenfluss mehrere Quelloperatoren hinzufügen.

Wichtig

Wenn Sie eine hierarchische Datenentity für einen Quelloperator verwenden, finden Sie Informationen zu unterstützten Typen finden Sie unter Hierarchische Datentypen. Möglicherweise können Sie einige Konfigurationen auf der Registerkarte "Attribute" oder der Registerkarte "Daten" im Bereich "Eigenschaften" nicht ausführen.
  1. Ziehen Sie den Operator Quelle aus dem Bereich Operatoren auf die Leinwand.
  2. Wenn der Quelloperator aktiviert ist, geben Sie auf der Registerkarte Details des Bereichs "Eigenschaften" einen Namen für den Quelloperator in das Feld ID ein, oder übernehmen Sie den Standardnamen unverändert.
  3. Um die Eingabequelle für diesen Operator zu konfigurieren, wählen Sie das Datenasset, die Verbindung und das Schema (oder den Bucket) aus, indem Sie auf Auswählen klicken, sobald es neben dem Ressourcentyp verfügbar wird. In den folgenden Beschreibungen finden Sie weitere Informationen zum Datenassettyp, den Sie für diesen Quelloperator auswählen.
    Datenassettyp Beschreibung

    Object Storage

    Amazon S3

    HDFS

    Klicken Sie neben Bucket auf Auswählen, um das Compartment auszuwählen, und wählen Sie den Bucket aus.

    Nachdem Sie das Datenasset, die Verbindung und den Bucket ausgewählt haben, fahren Sie mit Schritt 5 fort, um eine Datenentity auszuwählen.

    Generisches REST-Datenasset

    Nachdem Sie eine Verbindung ausgewählt haben, wird die Basis-URL angezeigt, die Sie beim Erstellen des Datenassets eingegeben haben. So konfigurieren Sie die Quelle:

    • Klicken Sie neben Ressource auf Auswählen, um einen Endpunkt auszuwählen.

    • Klicken Sie neben Vorgang auf Auswählen, um einen Vorgang für den Endpunkt auszuwählen.

    • Weitere Eigenschaften finden Sie in Schritt 7.

    Oracle Fusion Applications mit Oracle BI Cloud Connector (BICC)

    Wählen Sie unter Schema das BICC-Angebot aus. Das ausgewählte BICC-Angebot stellt die BICC-View Objects (VO) für die Datenextraktion bereit.

    Nachdem Sie ein Datenasset, eine Verbindung und ein Schema ausgewählt haben, fahren Sie mit Schritt 4 fort, um eine Datenentity auszuwählen.

    Oracle Fusion Applications mit Oracle BI Publisher (BIP)

    Für Datenasset:

    Um ein BIP-Datenasset in einem Datenfluss zu verwenden, benötigen Sie einen Objektspeicher-Bucket als Staging Area. Wenn Sie ein Datenasset auswählen, für das keine Standard-Staging Area in diesem Datenasset angegeben ist, zeigt Data Integration eine Warnmeldung an. Wenn die Benachrichtigung angezeigt wird, wählen Sie eine der folgenden Optionen:
    • Wählen Sie Datenasset aktualisieren aus, um diesem Datenasset eine Standard-Staging-Area hinzuzufügen.
    • Klicken Sie im Bereich "Eigenschaften" neben Staging Area auf Auswählen, um das Object Storage-Datenasset mit dem Bucket auszuwählen, den Sie für das Staging verwenden möchten.

    Schema:

    Wählen Sie den BIP-Ordner aus, der den Bericht als Schema enthält.

    Weitere Informationen finden Sie unter Daten aus BIP in Data Integration extrahieren zu:
    • BIP-Bericht und die zugehörige SQL-Abfrage vorbereiten
    • Chunking konfigurieren
    • Benutzerdefinierte BIP-Parameter verwenden

    Nachdem Sie ein Datenasset, eine Verbindung und ein Schema ausgewählt haben, fahren Sie mit Schritt 4 fort, um eine Datenentity auszuwählen.

    Andere Datenassets, bei denen es sich nicht um Object Storage, Amazon S3 oder HDFS handelt

    Nachdem Sie ein Datenasset, eine Verbindung und ein Schema ausgewählt haben, fahren Sie mit Schritt 4 fort, um eine Datenentity auszuwählen.

  4. So wählen Sie eine Datenentity aus, die nicht aus einem Object Storage-, Amazon S3- oder HDFS-Datenasset ist:
    1. Beachten Sie Folgendes im Bereich Datenentity auswählen. Gegebenenfalls haben Sie folgende Möglichkeiten:
      • Im Menü Datenentity eine Datenentity nach ihrem Namen auszuwählen.

      • Wählen Sie Datenentitys durchsuchen aus, um einen anderen Bereich zu verwenden, um die verfügbare Liste zu durchsuchen oder auszuwählen. Wählen Sie dann eine Datenentity aus.

        Informationen zum Durchsuchen der Liste mit einem vollständigen oder teilweisen Namen finden Sie unter Datenentity auswählen.

        Mit der Syntax ${PARAMETER_NAME} können Sie einen oder mehrere Datenflussparameter in den Namen einer ausgewählten Datenentity aufnehmen. Beispiel: BANK_${REGION}

        Informationen zum Hinzufügen und Verwenden von Parametern beim Konfigurieren von Entitynamen finden Sie unter Parameter in Datenentitynamen verwenden.

    2. Wählen Sie je nach Datenassettyp für diesen Quelloperator die Datenentity aus, und schließen Sie gegebenenfalls eine weitere Konfiguration ab.
      Datenassettyp Beschreibung

      Oracle Database

      Oracle-Datenbank auf Amazon RDS

      Oracle Siebel

      Oracle PeopleSoft

      Oracle E-Business Suite

      Oracle ATP und ADW

      MySQL

      MySQL Hitzewelle

      MySQL auf Amazon RDS

      Amazon RDS for SQL Server

      Microsoft SQL Server

      Microsoft Azure SQL Database

      IBM DB2

      Führen Sie unter Details folgende Schritte aus:

      • Wählen Sie die Datenentity nach Namen aus.

      • Wählen Sie gegebenenfalls Benutzerdefinierte SQL eingeben aus, um eine einzelne SQL-Anweisung im Editor einzugeben.

        Durch die Angabe einer SQL-Abfrageanweisung können Sie eine Datenbankquellentity und die Ausprägung der Entity gleichzeitig definieren. Beispiel: Sie können die Daten in einer SQL-Anweisung definieren und filtern, anstatt einen Filteroperator hinzuzufügen, nachdem Sie die Entity für den Quelloperator definiert haben.

        Hinweis: Verwenden Sie in SQL-Anweisungen einfache Anführungszeichen für Parameter. Beispiel: select * from ORDERS where Created_On >= '${SYS.LAST_LOAD_DATE}'

        Nachdem Sie die SQL-Abfrage eingegeben haben, wählen Sie Validieren, um die Anweisung auf Fehler zu prüfen.

      • Wenn verfügbar und anwendbar, führen Sie die folgenden Schritte aus, um nur neue oder aktualisierte Datensätze aus der Quelle in das Ziel zu laden:

        • Aktivieren Sie das Kontrollkästchen Inkrementelles Laden, um nur die Zeilen zu identifizieren und zu laden, die seit der letzten Ausführung des Ladeprozesses erstellt oder geändert wurden.

        • Wählen Sie unter Wasserzeichenspalte die Spalte aus, mit der die Zeilen markiert werden, die inkrementell geladen wurden. Nur die Spalten DATE, TIMESTAMP und DATETIME können als Wasserzeichenspalte verwendet werden.

      Oracle Fusion Applications mit Oracle BI Cloud Connector (BICC)

      Wählen Sie auf der Registerkarte Details ein BICC-View-Objekt (VO) als Datenentity aus, aus der Daten extrahiert werden sollen. Wählen Sie dann im Menü Strategie extrahieren aus, wie die Quelldaten extrahiert werden sollen.

      • Vollständig: Exportiert und lädt alle Daten ab dem angegebenen optionalen Datum der Erstextrahierung. Wenn Sie kein Datum unter Datum der Erstextraktion angeben, werden alle Daten extrahiert.
      • Inkrementell: Extrahiert und lädt nur Daten, die nach einem bestimmten Datum erstellt oder geändert wurden.
        • Wählen Sie Verwaltet aus, um das letzte Datum zu verwenden, das von Data Integration verfolgt und verwaltet wird. Sie geben kein explizites Datum an.
          Wichtig

          Die Option Verwaltet ruft zusätzliche Daten von 24 Stunden in die Vergangenheit ab.

          Data Integration fügt den Parameter SYS.LAST_LOAD_DATE hinzu, um das Datum der letzten Lade- oder Aufgabenausführung zu verfolgen, und speichert das Datum des letzten erfolgreichen Ladevorgangs als Wasserzeichen in aufeinanderfolgenden Ausführungen. Wenn die Aufgabe ausgeführt wird, können Sie den Wert des letzten im System gespeicherten Datums ändern.

        • Wählen Sie Benutzerdefiniert aus, um das Datum selbst im Feld Datum der letzten Extraktion anzugeben.

      Wählen Sie als Nächstes einen anderen externen BICC-Konfigurationsspeicher für die extrahierten Daten aus, wenn Sie den Datenassetstandard nicht verwenden möchten. Der Datenassetstandard ist der externe BICC-Speicher, der beim Erstellen oder Bearbeiten des Assets im BICC Fusion Applications-Datenasset konfiguriert wird.

      Füllen Sie optional auf der Registerkarte Erweiterte Optionen Folgendes aus:

      Wählen Sie BI-Broker aktivieren aus, wenn der BICC-Extraktor Eingabezeilen direkt aus der Fusion Applications-Datenbank anstelle eines regulären Extraktionspfads lesen soll.
      Wichtig

      • Der BI Broker-Modus ist eine Performanceoptimierungsoption für erweiterte Benutzer.
      • Der BI-Brokermodus ist ein BICC-Feature, das nur für einige Datenspeicher unterstützt wird. Extrahierung für nicht unterstützte Datenspeicher nicht erfolgreich.
      • Mit der BI Broker-Option kann sich die Extrakt-Performance verbessern, da Abfragen direkt für die Datenspeicher in der zugrunde liegenden Datenbank ausgeführt werden. Die Performanceverbesserung hängt vom Datenspeicher, der aktuellen Workload auf dem BI-Server, der aktuellen Workload auf der Datenbank und anderen Faktoren ab.
      • In einigen Fällen ändert die Aktivierung des BI Broker-Modus die Datentypen der Quellspalte.
      Wenn Sie BI Broker aktivieren nicht auswählen, werden die Daten über den BI-Server extrahiert. Weitere Informationen finden Sie unter Broker-Extraktionsmodus in der Dokumentation Business Intelligence Cloud-Extrakt erstellen unter Zu extrahierende Angebote konfigurieren. Die BICC-Dokumentation ist Teil der Buchliste Gemeinsame Anwendungen in der Oracle Fusion Cloud Applications Suite-Dokumentation.

      Wählen Sie unter BICC-Spalteneigenschaften den Typ der Spalten aus der BICC-Quelle aus, die als Attribute in das Ziel eingeschlossen werden sollen.

        • Alle: Alle Spalten des BICC PVO sind enthalten. Spalten mit Namen, die mit ExtnAttribute beginnen, oder Spalten mit demselben Namen und Label werden jedoch nicht angezeigt.

        • Nur Standard: Nur die Spalten, die standardmäßig für die Extraktion im BICC PVO aktiviert sind, werden eingeschlossen. Es werden alle Spalten einschließlich der Flex-Spalten angezeigt.

        • Standard- und Primärschlüssel: Standardspalten und Primärspalten des BICC PVO sind enthalten. Es werden alle Spalten einschließlich der Flex-Spalten angezeigt.

        • Nur Primärschlüssel: Nur die primären Spalten des BICC PVO sind enthalten. Es werden alle Spalten einschließlich der Flex-Spalten angezeigt.

      Oracle Fusion Applications mit Oracle BI Publisher (BIP)

      Gehen Sie auf der Registerkarte Details wie folgt vor:

      • Wählen Sie unter Datenentity einen Bericht aus. Eine Erinnerung an den Speicherort des Berichts finden Sie im Blog Daten aus Oracle Fusion Applications mit BIP in Data Integration extrahieren.
      • Geben Sie die Staging Area an, bei der es sich um den Objektspeicher-Bucket zum Staging der extrahierten Daten handelt. Wenn das ausgewählte Datenasset eine angegebene Standard-Staging Area aufweist, verwendet Data Integration automatisch das Object Storage-Datenasset und den Bucket, die als Standard-Staging Area in diesem Datenasset angegeben sind. Wenn für das ausgewählte Datenasset kein Standard-Staging-Verzeichnis angegeben ist, können Sie das Object Storage-Datenasset mit dem Bucket auswählen, den Sie für das Staging verwenden möchten. Andernfalls können Sie das Datenasset aktualisieren, um eine Standard-Staging-Area hinzuzufügen, oder Sie können ein anderes Datenasset auswählen.

      Gehen Sie dann auf der Registerkarte Erweiterte Optionen folgendermaßen vor:

      • Wählen Sie Zeilenlimit aktivieren aus, um die maximale Anzahl der Zeilen anzugeben, die abgerufen werden sollen.

      • Geben Sie im Feld Row limit den Zeilengrenzwert an.

      • Wenn Sie sehr große Datenmengen erwarten, geben Sie die Größe im Feld Chunk-Größe unter Chunking aktivieren an. Chunk-Größe ist erforderlich, wenn der angegebene Zeilengrenzwert größer als 10000000 ist.

        Hilfe zum Chunking finden Sie im Blog Daten aus Oracle Fusion Applications mit BIP in Data Integration extrahieren.

      • Im Abschnitt BIP-Eigenschaften werden die BIP-Berichtsparameter aus dem Bericht angezeigt, den Sie für die Datenentity ausgewählt haben. Wählen Sie in den Feldern Anzahl zurückgegebene Zeilen und Start-Offset jeweils eine Eigenschaft aus. Sie können nicht dieselbe Eigenschaft für beide Felder auswählen.
      • So laden Sie nur neue oder aktualisierte Datensätze aus der Quelle in das Ziel:
        • Aktivieren Sie das Kontrollkästchen Inkrementelles Laden, um nur die Daten zu identifizieren und zu laden, die seit der letzten Ausführung des Ladeprozesses erstellt oder geändert wurden.
        • Wählen Sie unter Spalte Wasserzeichen die Eigenschaft aus, mit der Daten markiert werden, die inkrementell geladen wurden.
    3. Nachdem Sie eine Datenentity ausgewählt haben, wird der Name der ausgewählten Datenentity auf der Registerkarte Details im Bereich "Eigenschaften" neben Datenentity angezeigt.
      • Wenn Sie eine SQL-Anweisung angegeben haben, wird das Label SQL_ENTITY<nnnnnnnnn> angezeigt. Beispiel: SQL_ENTITY123456789

      • Wenn Sie einen Parameter im Entitynamen verwendet haben, enthält das Label den Parameternamen. Beispiel: BANK_${REGION}

        Hinweis

        Bei einer Datenentity, die einen Parameter im Namen enthält, können Sie die Entityressource nicht an einen anderen Parameter binden. Die Option Parameter zuweisen ist nicht verfügbar.

  5. So wählen Sie eine Datenentity aus einem Objektspeicher-, Amazon S3- oder HDFS-Datenasset aus:
    1. Im Bereich Datenentity auswählen können Sie eine einzelne Entity nach Namen oder eine oder mehrere Entitys mit einem Musterausdruck auswählen.
      • Wählen Sie Nach Namen durchsuchen, um einen anderen Bereich zum Durchsuchen zu verwenden, und wählen Sie dann eine Datenentity nach Namen.

        Informationen zum Durchsuchen der Liste mit einem vollständigen oder teilweisen Namen finden Sie unter Datenentity auswählen.

        Mit der Syntax ${PARAMETER_NAME} können Sie einen oder mehrere Datenflussparameter in den Namen einer ausgewählten Datenentity aufnehmen. Beispiel: BANK_${REGION}.csv

        Informationen zum Hinzufügen und Verwenden von Parametern bei der Konfiguration einer Datenentity nach Name finden Sie unter Parameter in Datenentitynamen verwenden.

      • Wählen Sie Nach Mustern durchsuchen, um einen regulären Ausdruck (einschließlich Platzhalter) zu verwenden, und damit die Entitys auszuwählen, die mit einem bestimmten Verzeichnis und Dateimuster übereinstimmen. Beispiel: Geben Sie CUSTOMERS* in das Feld ein, und drücken Sie die Eingabetaste, um die Liste zu filtern. See Testing and Using a Pattern.

        Sie können auch Parameter in den Musterausdruck aufnehmen, indem Sie die Syntax ${PARAMETER_NAME} verwenden. Beispiel: CUSTOMERS_${REGION}/*

        Informationen zum Hinzufügen und Verwenden von Parametern bei der Konfiguration von Datenentitynamen nach Muster finden Sie unter Parameter in Datenentitynamen verwenden.

        Hinweis

        Wenn Sie einen Musterausdruck verwenden, wird davon ausgegangen, dass alle vorhandenen Dateien, die dem Muster entsprechen, dieselbe Struktur aufweisen. Die übereinstimmenden Dateien werden im Datenfluss als eine Entity behandelt. Alle zukünftigen neuen Dateien, die dem Muster entsprechen, werden ebenfalls verarbeitet.

        Bei einer Datenentity, die einen Parameter im Namen enthält, können Sie die Entityressource nicht an einen anderen Parameter binden. Die Option zum Zuweisen eines Parameters ist nicht verfügbar.

    2. Nachdem Sie die Datenentity nach Name oder Muster ausgewählt haben, schließen Sie die Entitykonfiguration im Bereich Datenentity auswählen ab.

      Wie Sie die Konfiguration abschließen, hängt vom Dateityp ab, den Sie für die ausgewählte Datenentity auswählen.

      Dateityp Beschreibung

      CSV

      Wenn Sie Nach Namen durchsuchen verwendet haben, um die Datenentity auszuwählen, können Sie Vorschau von Rohdaten anzeigen auswählen, um die ersten 10 Zeilen der Datei anzuzeigen.

      Wählen Sie den verwendeten Komprimierungstyp (Komprimierungsmethode) aus. Wenn Sie die Komprimierungsmethode für die Datei nicht kennen, wählen Sie "Automatisch (Standard)" aus.

      Der Standardwert Encoding ist UTF-8 und kann nicht geändert werden.

      Andere Einstellungen, die Sie konfigurieren können, sind:

      • Wenn die erste Zeile in der Datei eine Headerzeile ist, wählen Sie Ja für Hat Header.
      • Wenn sich die Werte in den Datenzeilen über mehrere Zeilen erstrecken, wählen Sie Ja für Mehrzeilen aus.
      • Geben Sie das Feldzeichen an, das andere Zeichen in Datenwerten maskiert. Beispiel: \
      • Wählen Sie das Begrenzer als Trennzeichen für Datenfelder aus. Beispiele: Spalte (:), COMMA (,), PIPE (|), SEMICOLON (;) oder TAB (\t)
      • Wenn ein Spaltentrennzeichen am Ende einer Datenzeile in der Datei enthalten ist, wählen Sie Ja für Nachgestelltes Trennzeichen aus.
      • Geben Sie das Anführungszeichen an, das andere Zeichen als Literalzeichen behandelt. Beispiel: "

      JSON

      Wählen Sie den verwendeten Komprimierungstyp (Komprimierungsmethode) aus. Wenn Sie die Komprimierungsmethode für die Datei nicht kennen, wählen Sie "Automatisch (Standard)" aus.

      Der Standardwert Encoding ist UTF-8 und kann nicht geändert werden.

      Wählen Sie Benutzerdefiniertes Schema verwenden aus, um ein benutzerdefiniertes Beispielschema einzufügen oder hochzuladen, mit dem die Entityausprägung inferenziert wird. Wenn dieses Kontrollkästchen aktiviert ist, ist die Schemadrift in der Quellentity nicht mehr anwendbar.

      • Wenn Sie Hochladen auswählen, legen Sie eine benutzerdefinierte Schemadatei im angegebenen Feld ab, oder klicken Sie auf Datei auswählen, um die hochzuladende Schemadatei auszuwählen.

      • Wenn Sie In Schema einfügen auswählen, kopieren Sie den Inhalt der Schematextdatei, und fügen Sie ihn in das angegebene Feld ein.

      PARQUET

      Der Standard-Komprimierungstyp ist "Automatisch", der nicht geändert werden kann.

      AVRO

      Der Standard-Komprimierungstyp ist "Automatisch", der nicht geändert werden kann.

      EXCEL

      Nur XLSX-Dateien werden unterstützt.

      Der Standard-Komprimierungstyp ist "Automatisch", der nicht geändert werden kann.

      Standardmäßig behandelt Data Integration die erste Zeile in einer Datei als Headerzeile. Wenn die erste Zeile in einer Datei keine Headerzeile ist, wählen Sie Nein für Hat Header aus.

      Unter Entity auswählen nach können Sie die Kriterien Blattname, Blattindex oder Tabellenname auswählen. Geben Sie dann einen Wert für den Arbeitsblattnamen, den Arbeitsblattindex oder den Tabellennamen ein. Blattindex ist nullbasiert.

      Geben Sie unter Blattname oder Blattindex den Bereich der Datei ein, der als Datenbereich zur Auswahl verwendet werden soll. Wenn Sie keinen Datenbereichswert eingeben, wird standardmäßig der Datenbereich A1 verwendet, der dem gesamten Blatt entspricht. Wenn die Datei eine Headerzeile enthält, geben Sie einen Wert ein, der mit der Headerzeile beginnt, z.B. A1:K56.

    3. Klicken Sie nach Abschluss der Datenentitykonfiguration auf Auswählen.

      Sie kehren zur Registerkarte Details im Bereich "Eigenschaften" zurück. Der Name der ausgewählten Datenentity oder der Ausdruck für das Entitymuster wird neben Datenentity angezeigt. Beispiel: CUSTOMERS_EU.csv, CUSTOMERS* oder CUSTOMERS_${REGION}/*

      Hinweis

      Bei einer Datenentity, die einen Parameter im Namen enthält, können Sie die Entityressource nicht an einen anderen Parameter binden. Die Option Parameter zuweisen ist nicht verfügbar.

    4. Aktivieren Sie gegebenenfalls das Kontrollkästchen Inkrementelles Laden, um nur die Daten zu identifizieren und zu laden, die seit der letzten erfolgreichen Ausführung des Ladeprozesses erstellt oder geändert wurden.

      Bei Dateidatenassets wie Object Storage führt Data Integration eine inkrementelle Extraktion basierend auf dem Datum der letzten Änderung (Zeitstempel) der Objekte aus, die in einem Ordner ausgewählt oder durch ein Dateimuster ausgewählt wurden.

      Beispiel: Am 5. Januar befinden sich drei Dateien im Objektspeicher-Bucket: EMPLOYEE_1.csv, EMPLOYEE_2.csv, EMPLOYEE_3.csv

      Wenn ein Ladejob am 5. Januar erfolgreich ausgeführt wird, werden alle drei Dateien verarbeitet.

      • Am 6. Januar wird dem Bucket eine neue Datei EMPLOYEE_4.csv hinzugefügt. Diese Datei hat das Datum der letzten Änderung (Zeitstempel) vom 6. Januar. Wenn ein Ladejob am 6. Januar ausgeführt wird, wird nur EMPLOYEE_4.csv abgerufen und für das inkrementelle Laden von Daten verarbeitet.
      • Am 6. Januar wird dem Bucket eine neue Datei EMPLOYEE_4.csv hinzugefügt. Diese Datei hat das Datum der letzten Änderung (Zeitstempel) vom 6. Januar. Die Datei EMPLOYEE_2.csv wird ebenfalls am 6. Januar geändert. Wenn ein Ladejob am 6. Januar ausgeführt wird, werden die Dateien EMPLOYEE_2.csv und EMPLOYEE_4.csv zur Verarbeitung abgerufen.
  6. (Optional) Wählen Sie auf der Registerkarte Details das Aktualisierungssymbol neben dem ausgewählten Entitynamen aus, um sicherzustellen, dass Sie die neuesten Schemas der Entity während der aktuellen Arbeitssitzung im Designer verwenden. Es werden nur die Metadaten der Entity abgerufen, nicht die tatsächlichen Datenänderungen.
  7. (Optional) Auf der Registerkarte Erweiterte Optionen können Sie je nach Datenassettyp für diesen Quelloperator anwendbare Optionen auswählen oder deaktivieren.

    Objekt Beschreibung

    Dateimetadaten als Attribute abrufen

    Aktivieren Sie das Kontrollkästchen, um Dateimetadaten (wie Dateinamen und Dateigröße) als Attribute in die zurückgegebenen Daten aufzunehmen.

    Sonderzeichen (einschließlich Leerzeichen) in den Dateinamen werden nicht unterstützt.

    Schemaabweichung zulassen

    Standardmäßig ist die Schemaabweichung aktiviert, damit Schemadefinitionsänderungen in Data Integration zur Entwurfs- und Laufzeit des Datenflusses dynamisch verarbeitet werden können. Eine Schemaabweichung ist eine Änderung der Schemadefinitionen in der angegebenen Datenentity. Änderungen umfassen Attribute, die hinzugefügt oder entfernt werden, sowie Attributdatentypen oder Entitynamen, die geändert werden.

    Wenn Sie das Kontrollkästchen Schemaabweichung zulassen deaktivieren, werden Schemaabweichungen deaktiviert, und die beim Definieren des Datenflusses geltenden Schemadefinitionen werden gesperrt. Wenn die Schemaabweichung deaktiviert ist, verwendet Data Integration eine feste Form der angegebenen Datenentity, auch wenn die zugrunde liegende Form geändert wurde.

    Wenn ein benutzerdefiniertes Schema ausgewählt ist, ist die Schemaabweichung nicht anwendbar, und diese Option kann nicht ausgewählt werden.

    Fehlende Datei als leer behandeln

    Nur für ein Object Storage-Datenasset.

    Dieses Kontrollkästchen ist nur verfügbar, wenn Schemaabweichung zulassen nicht aktiviert ist.

    Pushdown zulassen

    Standardmäßig ist der Pushdown aktiviert, damit Data Integration Transformationsvorgänge mit dem Quelldatenbanksystem verarbeiten kann, wenn das System Pushdown unterstützt. Nur Oracle-Datenbanken, Oracle Autonomous Data Warehouse, Oracle Autonomous Transaction Processing und MySQL unterstützen Pushdown. Bei der Verarbeitung von Vorgängen werden weniger Daten aus der Quelle abgerufen.

    Wenn Sie das Kontrollkästchen Pushdown zulassen deaktivieren, deaktivieren Sie den Pushdown. Wenn der Pushdown deaktiviert ist, ruft Data Integration alle Daten direkt aus dem Quellsystem ab und verarbeitet dann die Transformationen.

    Einstellungen für Parameter und Header

    Nur für ein REST-Datenasset.

    Mit den Einstellungen für Parameter und Header können Sie weitere Quelleigenschaften konfigurieren.

  8. Zeigen Sie auf der Registerkarte Attribute die Attribute der ausgewählten Datenentity an. Für ein BICC Fusion Applications-Datenasset sind die Attribute die BICC-Spalten aus dem ausgewählten VO.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter ? und * im regulären Ausdrucksmuster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Um nach dem Namensmuster "*_CODE" und nach dem Typ "Numerisch" oder "varchar" zu filtern, wenden Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (numerisch, varchar) an.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (Datentyp), COMPOSITE oder MAP (Schlüsseltyp, Werttyp) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  9. Zeigen Sie auf der Registerkarte Daten ein Sampler der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Für ein BICC Fusion Applications-Datenasset werden nur 10 Datenzeilen angezeigt.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  10. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.
Dateimuster verwenden

Bei der Konfiguration von OCI Object Storage als Datenquelle können Sie einen regulären Ausdruck verwenden, um ein Dateiformat zur Auswahl von Datenentitys anzugeben.

Ein Dateimuster ist eine Regel zum Suchen nach Dateien, die einem Verzeichnis und einem Dateinamen entsprechen und auf eine bestimmte Weise verarbeitet werden sollen.

Zu verwendende Syntax

In Data Integration wird die Glob-Mustersyntax für das Angeben eines Dateimusters unterstützt.

  • Ein Sternchen (*) entspricht einer beliebigen Anzahl von Zeichen (einschließlich keiner Zeichen).
  • Zwei Sternchen, **, funktionieren wie *, überschreiten jedoch Verzeichnisgrenzen, um vollständige Pfade abzugleichen.
  • Ein Fragezeichen (?) entspricht genau einem Zeichen.
  • Geschweifte Klammern geben eine Sammlung von Untermustern an. Beispiel:
    • {sun,moon,stars} entspricht "sun", "moon" oder "stars".
    • {temp*,tmp*} entspricht allen Zeichenfolgen, die mit "temp" oder "tmp" beginnen.
  • In eckigen Klammern wird ein Set von einzelnen Zeichen oder bei Verwendung des Bindestrichs (-) ein Zeichenbereich dargestellt. Beispiel:
    • [aeiou] entspricht einem beliebigen Vokal in Kleinbuchstaben.
    • [0-9] entspricht einer beliebigen Ziffer.
    • [A-Z] entspricht einem beliebigen Großbuchstaben.
    • [a-z,A-Z] entspricht einem beliebigen Groß- oder Kleinbuchstaben.

    Innerhalb der eckigen Klammern entsprechen *, ? und \ sich selbst.

  • Alle anderen Zeichen entsprechen sich selbst.
  • Um *, ? oder die anderen Sonderzeichen anzugeben, können Sie die Zeichen mit dem umgekehrten Schrägstrich ( \) maskieren. Beispiel: \\ entspricht einem einzelnen umgekehrten Schrägstrich, und \? entspricht einem Fragezeichen.
Beispiele
*.htmlEntspricht allen Zeichenfolgen, die auf .html enden
???Entspricht allen Zeichenfolgen mit genau drei Buchstaben oder Ziffern
*[0-9]*Entspricht allen Zeichenfolgen mit einem numerischen Wert
*.{htm,html,pdf}Entspricht einer Zeichenfolge, die mit .htm, .html oder .pdf endet
a?*.javaEntspricht einer Zeichenfolge, die mit a beginnt, gefolgt von mindestens einem Buchstaben oder einer Ziffer, und mit .java endet
{foo*,*[0-9]*}Entspricht einer Zeichenfolge, die mit foo beginnt, oder einer Zeichenfolge, die einen numerischen Wert enthält
directory1/20200209/part-*[0-9]*jsonEntspricht allen Dateien im Ordner, deren Dateiname mit part- beginnt, beliebig viele Ziffern 0-9 enthält und mit json endet
directory3/**.csvEntspricht allen Dateien mit der Erweiterung csv, die sich im Ordner directory3 und seinen Unterordnern befinden
directory3/*.csvEntspricht allen Dateien mit der Erweiterung csv, die sich nur im Hauptordner directory3 befinden. Dateien in Unterordnern sind nicht eingeschlossen.
Muster testen und verwenden

Sie können den Ausdruck testen, um sicherzustellen, dass das gewünschte Muster die Object Storage-Dateien für eine oder mehrere Datenentitys abruft.

  1. Wählen Sie im Bereich Datenentity auswählen die Option Nach Muster durchsuchen aus.

  2. Wählen Sie im Bereich Datenentitys nach Muster durchsuchen im Menü Weitere Aktionen die Option Muster testen aus.

  3. Geben Sie im Bereich Muster testen im Feld Suchmuster einen Musterausdruck ein, den Sie vor der Verwendung testen möchten.

    Beispiel: Geben Sie department1/2020/*.json ein, um alle Dateien mit der Erweiterung .json zu suchen, die sich im Verzeichnis department1/2020 befinden. Sie können die Parametersyntax ${} im Feld Suchmuster verwenden.

  4. Um das Suchmuster zu testen, geben Sie im Block Testdateinamen einen Dateinamen oder mehrere durch Zeilenvorschub getrennte Dateinamen an. Beispiel: Für das Muster BANK_C*/* können die Dateinamen wie folgt lauten:

    BANK_CITY/part-00002-0aaf87d57fbc-c000.csv	
    BANK_COUNTRY/part-00000-a66df3ab02fd-c000.csv
  5. Wählen Sie Testmuster aus.

    Prüfen Sie, ob die Testdateien im Block Resultierender Dateiname zurückgegeben werden.

  6. Wählen Sie Muster verwenden aus, um dem Bereich Datenentitys nach Muster durchsuchen den Musterausdruck hinzuzufügen.

    Sie kehren zum Bereich Datenobjekte nach Muster durchsuchen zurück. Die Dateien, die mit dem Musterausdruck übereinstimmen, werden in der Tabelle angezeigt.

  7. Klicken Sie auf Muster auswählen.

    Sie werden zum Bereich Datenentity auswählen zurückgegeben. Der Musterausdruck wird neben Data Entity angezeigt.

    Wenn Sie einen Musterausdruck verwenden, wird davon ausgegangen, dass alle vorhandenen Dateien, die dem Muster entsprechen, dieselbe Struktur aufweisen. Die übereinstimmenden Dateien werden im Datenfluss als eine Entity behandelt. Alle zukünftigen neuen Dateien, die dem Muster entsprechen, werden ebenfalls verarbeitet.

Verwaltetes inkrementelles Laden von Data Integration (BICC) verwenden

Beim inkrementellen Laden werden nur neue oder aktualisierte Daten aus einer Quelle in ein Ziel geladen. Wenn Sie in Data Integration BICC Oracle Fusion Applications als Quelldaten konfigurieren, können Sie die inkrementelle Extraktstrategie Verwaltet verwenden, um inkrementelle Daten zu laden.

Wenn Sie die inkrementelle Exportstrategie verwenden, werden nur neue oder aktualisierte Datensätze aus der Quelle basierend auf einem letzten Exportdatum extrahiert. Data Integration bietet zwei Optionen für das Datum der letzten Extraktion:

  • Benutzerdefiniert: Sie geben ein letztes Exportdatum für jede Aufgabenausführung an.

  • Verwaltet: Data Integration verwaltet das Datum für Sie, indem der Zeitstempel der Aufgabenausführung verfolgt und das letzte erfolgreiche Ladedatum in aufeinanderfolgenden Ausführungen als Wasserzeichen gespeichert wird.

    Mit der Option für das Datum der letzten Extraktion von Data Integration müssen Sie kein Datum für eine Aufgabenausführung explizit angeben. Sie können das Datum jedoch zur Laufzeit überschreiben.

Aufgabenausführungen, die von einem Aufgabenplan initiiert wurden

Data Integration verfolgt eine Aufgabenausführung unabhängig von einer Aufgabenausführung, die durch einen Aufgabenplan initiiert wird. Wenn Sie also die Option Verwaltet für das Datum der letzten Extraktion verwenden und auch einen Aufgabenplan einrichten, verfolgt Data Integration automatisch den Zeitstempel der letzten erfolgreichen Aufgabenausführung von aufgabengeplanten Ausführungen getrennt vom Zeitstempel der letzten erfolgreichen Aufgabenausführung von Aufgabenausführungen, die nicht von einem Aufgabenplan initiiert werden. Dies bedeutet, dass das letzte Datum, das innerhalb eines Aufgabenplans verwaltet wird, oder das letzte Datum, das innerhalb einer Aufgabe verwaltet wird, nicht durch den anderen Ausführungsvorgang geändert wird.

Inkrementelles Laden für verschiedene Datenentitys in einem Datenfluss

Angenommen, Sie möchten das inkrementelle Laden für verschiedene Datenentitys in einem Datenfluss einrichten. Sie können dies erreichen, indem Sie Parameter verwenden und einen Aufgabenplan für jede Datenentity erstellen. Allgemeine Schritte:

  1. Weisen Sie im Datenfluss Parameter für das Quellschema (BICC-Angebot) und die Datenentity (BICC-VO) zu.
  2. Erstellen und veröffentlichen Sie eine Integrationsaufgabe für den parametrisierten Datenfluss.
  3. Erstellen Sie einen Aufgabenplan für die Integrationsaufgabe. Geben Sie auf der Seite Parameter konfigurieren die Schema- und Datenentitywerte für den Aufgabenplan an.
  4. Erstellen Sie einen weiteren Aufgabenplan für dieselbe Integrationsaufgabe. Legen Sie auf der Seite Parameter konfigurieren die Schema- und Datenentitywerte für diesen Aufgabenplan fest.
Inkrementelles Laden mehrmals an einem Tag

Um einen inkrementellen Ladevorgang mehr als einmal pro Tag auszuführen, fügen Sie einen Filteroperator direkt nach dem BICC-Quelloperator im Datenfluss hinzu. Erstellen Sie dann einen Bedingungsausdruck, um bereits verarbeitete Daten herauszufiltern. Beispiel: Wenn die Spalte last_update_date des BICC-VO LastUpdateDateField lautet, kann der Ausdruck wie folgt lauten:

FILTER_1.MYSOURCE_1.LastUpdateDateField > ${SYS.LAST_LOAD_DATE}

Zieloperator

Mit dem Zieloperator können Sie die Datenentitys angeben, die als Ausgabe für das Speichern transformierter Daten dienen.

Zieloperator hinzufügen und konfigurieren

Sie können einem Datenfluss mehrere Zieloperatoren hinzufügen. Jedes Ziel darf nur einen eingehenden Port aufweisen.

Wichtig

Wenn Sie eine hierarchische Datenentity für einen Zieloperator verwenden, finden Sie Informationen zu unterstützten Typen finden Sie unter Hierarchische Datentypen. Möglicherweise können Sie einige Konfigurationen auf den Registerkarten "Attribute", "Zuordnen" und "Daten" im Bereich "Eigenschaften" nicht ausführen.
  1. Ziehen Sie einen Operator vom Typ Ziel aus dem Bereich Operatoren auf die Leinwand.
  2. Wenn der Zieloperator fokussiert ist, gehen Sie auf der Registerkarte Details des Bereichs "Eigenschaften" wie folgt vor:

    Objekt Beschreibung

    Identifier

    Geben Sie einen Namen für den Zieloperator ein, oder übernehmen Sie den Standardnamen unverändert.

    Neue Datenentity erstellen

    (Optional) Aktivieren Sie das Kontrollkästchen, um eine neue Entity im Ziel zu erstellen, anstatt eine vorhandene Entity im Ziel zu aktualisieren. In einem späteren Schritt werden Sie aufgefordert, einen Namen für die Datenentity einzugeben, die im Ziel erstellt werden soll.

    Aktivieren Sie das Kontrollkästchen nicht, wenn Sie eine vorhandene Datenentity als Ziel verwenden möchten. Sie werden nach der Auswahl des Zieldatenassets, der Verbindung und des Schemas aufgefordert, die Datenentity auszuwählen.

    Datenasset

    Verbindung

    Schema oder Bucket

    Klicken Sie in der Ressourcenreihenfolge wie dargestellt neben der Ressource auf Auswählen, um das Datenasset, die Verbindung und das Schema oder den Bucket auszuwählen.

    Notieren Sie sich Folgendes:

    • Nicht alle Datenquellentypen sind als Zieldatenassets verfügbar. Beispiel: PostgreSQL und Hive sind nicht als Ziele verfügbar.

    • Für die Integrationsstrategie "Zusammenführen" können Sie kein Object Storage-Datenasset als Ziel verwenden.

    • Wenn Sie ein Objektspeicher-Datenasset verwenden, wählen Sie zuerst das Compartment und dann den Bucket aus.

    • Um Autonomous Data Warehouse oder Autonomous Transaction Processing als Ziel zu verwenden, benötigen Sie einen Objektspeicher-Bucket als Staging Area. Wenn Sie ein Datenasset auswählen, für das keine Standard-Staging Area in diesem Datenasset angegeben ist, zeigt Data Integration eine Warnmeldung an. Wenn die Benachrichtigung angezeigt wird, wählen Sie eine der folgenden Optionen:
      • Wählen Sie Datenasset aktualisieren aus, um diesem Datenasset eine Standard-Staging-Area hinzuzufügen.
      • Klicken Sie im Bereich "Eigenschaften" neben Staging Area auf Auswählen, um das Object Storage-Datenasset mit dem Bucket auszuwählen, den Sie für das Staging verwenden möchten.
      Die PAR_MANAGE-Anforderungsberechtigung ist erforderlich. Weitere Informationen finden Sie unter Schritt 5.

    Datenentity

    Wenn Sie das Kontrollkästchen Neue Datenentity erstellen aktiviert haben, geben Sie einen Namen für die Entity ein, die als Ziel erstellt werden soll. Weitere Informationen finden Sie unter Schritt 3.

    Wenn Sie das Kontrollkästchen Neue Datenentity erstellen nicht aktiviert haben, wählen Sie eine vorhandene Datenentity als Ziel aus. Weitere Informationen finden Sie unter Schritt 4.

    (Nur für Datenassets des Typs Autonomous Data Warehouse oder Autonomous Transaction Processing)

    Staging Area

    Data Integration verwendet die Staging Area, um Daten vor dem Laden im Ziel zwischenzuspeichern.

    Weitere Informationen finden Sie unter Schritt 5.

    Integrationsstrategie

    Wie Daten in die Zieldatenentity verschoben werden, hängt von der ausgewählten Integrationsstrategie ab. Optionen:

    • Einfügen: Einfügen neuer Datensätze oder Anhängen der Datensätze, wenn die Daten bereits im Ziel vorhanden sind.

      Wenn das Kontrollkästchen Neue Datenentity erstellen aktiviert ist, lautet die Strategieoption Nur, die ausgewählt werden kann, "Einfügen".

    • Ändern: Führt einen Truncate-Vorgang im Ziel aus, bevor neue Datensätze eingefügt werden.

      Wenn Sie die Strategie "Overwrite" auswählen, können Sie keine neue Datenentity für die Zielentity erstellen.

    • Zusammenführen: Fügt neue Datensätze ein und führt vorhandene Datensätze zu einer vorhandenen Datenentity zusammen.

      Beachten Sie Folgendes, wenn Sie die Zusammenführungsstrategie verwenden:

      • Die Merge-Strategie ist nur für Datenbankziele verfügbar. Sie können kein Object Storage-Datenasset als Ziel verwenden, wenn Sie diese Integrationsstrategie verwenden möchten.

      • Der Zusammenführungsschlüssel identifiziert das oder die Attribute, um zu bestimmen, welche vorhandenen oder neuen Zeilen aktualisiert oder eingefügt werden sollen. Sie können einen Primär-/Eindeutigkeitsschlüssel oder einen Nicht-Primärschlüssel als Zusammenführungsschlüssel auswählen.

        Klicken Sie auf Auswählen oder Bearbeiten. Führen Sie im Bereich Zusammenführungsschlüssel eine der folgenden Aktionen aus:

        • Wählen Sie Primär-/eindeutige Schlüsselattribute aus, und wählen Sie einen Schlüssel aus.
        • Wählen Sie Andere Attribute aus, um andere (nicht primäre) Attribute zu verwenden. Geben Sie einen Namen für den Zusammenführungsschlüssel ein, und wählen Sie die Attribute aus der Liste aus.
      • Wenn eine parametrisierte Zieldatenentity für die Verwendung der Zusammenführungsstrategie konfiguriert ist, können Sie die Auswahl des Zusammenführungsschlüssels ändern:
        • In einer Integrationsaufgabe zur Entwurfszeit und zur Laufzeit
        • In einer Integrationsaufgabe in einer Pipeline zur Entwurfszeit und zur Laufzeit (Pipelineaufgabe)
        • In einem Aufgabenplan (Integrationsaufgabe und Pipelineaufgabe)

    (Nur für Object Storage)

    Ausgabe als einzelne Datei erstellen

    Dieser Schritt ist für Object Storage-Ziele optional.

    Aktivieren Sie das Kontrollkästchen Ausgabe als einzelne Datei erstellen, um die Ausgabe in eine einzelne Datei zu schreiben. Andernfalls werden mehrere Dateien erstellt. Die einzelne Ausgabedatei wird bei jeder Ausführung der Aufgabe überschrieben.

    Das Erstellen einer einzelnen Zieldatei kann sich auf die Performance von Data Integration auswirken. Verwenden Sie die Option für einzelne Ausgabedateien nicht bei großen Datasets.

    Sie können die Ausgabe nur dann in eine einzelne Datei schreiben, wenn eine der folgenden Bedingungen zutrifft:

    • Wenn die Integrationsstrategie "Einfügen" ist und das Kontrollkästchen Neue Datenentity erstellen aktiviert ist. Fügen Sie am Ende des neuen Entitynamens keinen Schrägstrich (/) hinzu. Weitere Informationen finden Sie unter Schritt 3.
    • Wenn die Integrationsstrategie "Overwrite" ist und Sie eine vorhandene Datenentity verwenden (Kontrollkästchen Neue Datenentity erstellen ist nicht aktiviert). Wählen Sie eine vorhandene Datenentity aus, die am Ende des Entitynamens keinen Schrägstrich (/) aufweist. Weitere Informationen finden Sie unter Schritt 4.
  3. Wenn Sie das Kontrollkästchen Neue Datenentity erstellen aktivieren, geben Sie einen Namen für die Entity ein, die erstellt werden soll. Eine neue Datenentity wird nur erstellt, wenn der Name noch nicht vorhanden ist.

    Wenn Sie einen Parameter für einen Teil des neuen Entitynamens verwenden möchten, finden Sie Informationen dazu unter Parameter in Datenentitynamen.

    Beachten Sie je nach Datenassettyp Folgendes, wenn Sie einen Namen für die Datenentity eingeben:

    Zieltyp Beschreibung

    Für Oracle Database, Autonomous Data Warehouse oder Autonomous Transaction Processing

    Geben Sie den Namen der neuen Datenentity ein.

    Wenn beim Erstellen einer Datenbankdatenentity als Zielausgabe der angegebene Entityname nicht vorhanden ist, wird eine Datenentity erstellt, und Daten werden in die Ausgabe eingefügt. Wenn der angegebene Entityname vorhanden ist, hängt das Ergebnis des Vorgangs von der Ausprägung des Ziels im Datenfluss und der Ausprägung der vorhandenen Entity ab.

    Eine Ausprägung basiert auf der Anzahl und dem Namen von Attributen, Datentypen und Typmerkmalen wie Länge und Dezimalstellenanzahl sowie der Angabe, ob Daten vorhanden sind. Beispiel: Der Datentyp varchar2(4000) hat nicht dieselbe Ausprägung wie varchar2(2000), obwohl der Attributname im Datenflussziel mit dem Namen des Attributs in der vorhandenen Datenentity identisch ist.

    • Wenn die Ausprägung der Zielentity im Datenfluss mit der Ausprägung der vorhandenen Entity übereinstimmt, führt der Datenbankvorgang Folgendes aus:
      • Er fügt Daten ein, wenn keine Daten vorhanden sind.
      • Er aktualisiert Daten oder fügt sie ein, wenn Daten vorhanden sind.
    • Wenn die Ausprägung der Zielentity im Datenfluss nicht mit der Ausprägung der vorhandenen Entity identisch ist, gilt Folgendes:
      • Der Vorgang fügt das Attribut der vorhandenen Entity hinzu, wenn der Attributname nicht vorhanden ist.

        Beispiel: Das Ziel im Datenfluss umfasst das Attribut EMPLOYEE_ID NUMBER(10), EMPLOYEE_ID NUMBER ist jedoch nicht in der vorhandenen Entity vorhanden.

      • Wenn der Attributname in der vorhandenen Entity vorhanden ist, die Datentypausprägung sich jedoch unterscheidet, gilt Folgendes:
        • Wenn Attributdaten vorhanden sind, verläuft der Datenbankvorgang nicht erfolgreich, wenn die Datenausprägung kleiner ist. Beispiel: Wenn das Ziel im Datenfluss EMPLOYEE_COMMENTS VARCHAR2(4000) aufweist und die vorhandene Entity EMPLOYEE_COMMENTS VARCHAR2(2000), verläuft der Vorgang nicht erfolgreich. Wenn das Ziel im Datenfluss EMPLOYEE_COMMENTS VARCHAR2(2000) aufweist und die vorhandene Entity EMPLOYEE_COMMENTS VARCHAR2(4000), ist der Vorgang erfolgreich.

        • Wenn keine Attributdaten vorhanden sind, ändert der Vorgang das Attribut und fügt Daten ein.

          Wenn es sich bei dem Ziel um eine autonome Datenbank handelt, tritt möglicherweise der Datenbankfehler ORA-22859: invalid modification of columns auf, wenn versucht wird, ein Spaltenobjekt, REF, VARRAY, eine verschachtelte Tabelle oder einen LOB-Spaltentyp zu ändern. Erstellen Sie eine Spalte des bevorzugten Typs, und kopieren Sie die Spaltendaten mit dem entsprechenden Typkonstruktor in den neuen Typ.

    Beachten Sie auch, dass die Konvertierung zwischen TEXT und CLOB in Data Integration nicht unterstützt wird. Mit einem Grenzwert von 4000 Byte für eine Spalte VARCHAR2 in einer autonomen Datenbank müssen Sie möglicherweise eine vorhandene Zieldatenentity mit einem CLOB-Datentyp verwenden, anstatt in bestimmten Anwendungsfällen das Kontrollkästchen Neue Datenentity erstellen zu aktivieren.

    Für Object Storage

    Geben Sie den Namen der neuen Datenentität gefolgt von einem Schrägstrich (/) ein. Beispiel: Geben Sie newdirectory/ ein.

    Wenn Sie jedoch das Kontrollkästchen Ausgabe als einzelne Datei erstellen aktivieren, da Sie eine einzelne Dateiausgabe erstellen möchten, geben Sie den neuen Entitynamen ohne den Schrägstrich (/) am Ende ein.

    Wenn Sie die Ausgabe in eine einzelne Datei schreiben, können Sie Parameter mit der Syntax ${PARAMETER_NAME} in den Dateinamen aufnehmen. Der Dateiname kann beispielsweise wie folgt geschrieben werden:

    /bucket1/file_${REGION}.csv
    /bucket1/file_${CURRENT_DATE}.csv

    Wählen Sie auch den Dateityp und den Komprimierungstyp aus. Welche Komprimierungstypen verfügbar sind, hängt vom ausgewählten Dateityp ab. Wenn Sie die Komprimierungsmethode, mit der die Datei komprimiert wird, nicht kennen, wählen Sie Keine (Standard).

    Bei CSV- und JSON-Dateitypen ist die Standardcodierung UTF-8 und kann nicht geändert werden.

    Wenn Sie den Dateityp CSV auswählen, können Sie folgende Einstellungen konfigurieren:

    • Wenn die erste Zeile in der Datei eine Headerzeile ist, wählen Sie Ja für Hat Header.
    • Wenn sich die Werte in den Datenzeilen über mehrere Zeilen erstrecken, wählen Sie Ja für Mehrzeilen aus.
    • Geben Sie das Feldzeichen an, das andere Zeichen in Datenwerten maskiert. Beispiel: \
    • Wählen Sie das Begrenzer als Trennzeichen für Datenfelder aus. Beispiele: Spalte (:), COMMA (,), PIPE (|), SEMICOLON (;) oder TAB (\t)
    • Wenn ein Spaltentrennzeichen am Ende einer Datenzeile in der Datei enthalten ist, wählen Sie Ja für Nachgestelltes Trennzeichen aus.
    • Geben Sie das Anführungszeichen an, das andere Zeichen als Literalzeichen behandelt. Beispiel: "
  4. Wenn Sie das Kontrollkästchen Neue Datenentity erstellen nicht aktiviert haben, wählen Sie eine vorhandene Datenentity aus.

    Um sicherzustellen, dass Sie die neuesten Schemas der Entity während der aktuellen Arbeitssession im Designer verwenden, wählen Sie das Symbol "Aktualisieren" neben dem Entitynamen aus. Es werden nur die Metadaten der Entity abgerufen, nicht die tatsächlichen Datenänderungen.

    Beachten Sie je nach Datenassettyp Folgendes, wenn Sie die Verwendung einer vorhandenen Datenentity konfigurieren:

    Zieltyp Beschreibung

    Für Object Storage

    Aktivieren Sie das Kontrollkästchen Ausgabe als einzelne Datei erstellen, um eine einzelne Ausgabedatei zu verwenden. Andernfalls werden mehrere Dateien erstellt. Die einzelne Ausgabedatei wird bei jeder Ausführung der Aufgabe überschrieben.

    Das Erstellen einer einzelnen Zieldatei kann sich auf die Performance von Data Integration auswirken. Verwenden Sie die Option für einzelne Ausgabedateien nicht bei großen Datasets.

    Wenn das Kontrollkästchen Ausgabe als einzelne Datei erstellen aktiviert ist: Wählen Sie bei Auswahl der Datenentity einen Entitynamen aus, der am Ende keinen Schrägstrich (/) aufweist.

    Wählen Sie den Dateityp aus. Wenn CSV der Dateityp ist, können Sie Rohdaten in der Vorschau anzeigen auswählen, um die ersten 10 Zeilen der Datei anzuzeigen.

    Wählen Sie den Komprimierungstyp aus. Welche Komprimierungstypen verfügbar sind, hängt vom ausgewählten Dateityp ab. Wenn Sie die Komprimierungsmethode, mit der die Datei komprimiert wird, nicht kennen, wählen Sie Keine (Standard).

    Bei CSV- und JSON-Dateitypen ist die Standardcodierung UTF-8 und kann nicht geändert werden.

    Wenn der Dateityp CSV ist, können Sie folgende Einstellungen konfigurieren:

    • Wenn die erste Zeile in der Datei eine Headerzeile ist, wählen Sie Ja für Hat Header.
    • Wenn sich die Werte in den Datenzeilen über mehrere Zeilen erstrecken, wählen Sie Ja für Mehrzeilen aus.
    • Geben Sie das Feldzeichen an, das andere Zeichen in Datenwerten maskiert. Beispiel: \
    • Wählen Sie das Begrenzer als Trennzeichen für Datenfelder aus. Beispiele: Spalte (:), COMMA (,), PIPE (|), SEMICOLON (;) oder TAB (\t)
    • Wenn ein Spaltentrennzeichen am Ende einer Datenzeile in der Datei enthalten ist, wählen Sie Ja für Nachgestelltes Trennzeichen aus.
    • Geben Sie das Anführungszeichen an, das andere Zeichen als Literalzeichen behandelt. Beispiel: "

    Wenn der Dateityp "JSON" lautet, wählen Sie Benutzerdefiniertes Schema verwenden aus, um ein benutzerdefiniertes Beispielschema einzufügen oder hochzuladen, mit dem die Entityausprägung inferenziert wird.

    • Wenn Sie Hochladen auswählen, legen Sie eine benutzerdefinierte Schemadatei im angegebenen Feld ab, oder klicken Sie auf Datei auswählen, um die hochzuladende Schemadatei auszuwählen.

    • Wenn Sie In Schema einfügen auswählen, kopieren Sie den Inhalt der Schematextdatei, und fügen Sie ihn in das angegebene Feld ein.

  5. Wählen Sie für Autonomous Data Warehouse oder Autonomous Transaction Processing die Staging Area aus, wenn kein Standardwert für das Asset definiert ist, oder bearbeiten Sie den Speicherort, um eine andere Staging Area zu verwenden.
    Hinweis

    Wenn das Ziel Autonomous Data Warehouse oder Autonomous Transaction Processing ist, ist die Option "Staging Area" aktiviert, damit Sie einen Objektspeicher-Bucket auswählen können. Data Integration verwendet die Staging Area, um Daten vor dem Laden im Ziel zwischenzuspeichern.

    Wenn das Zieldatenasset mit einer standardmäßigen Staging Area konfiguriert ist, verwendet Data Integration automatisch diesen Bucket für das Staging, es sei denn, Sie bearbeiten den Wert explizit, um eine andere Staging Area anzugeben.

    Um Autonomous Data Warehouse oder Autonomous Transaction Processing als Ziel zu verwenden, müssen Sie zuerst die Anforderungsberechtigung PAR_MANAGE für den Staging Bucket aktivieren. Beispiel:

    allow any-user to manage buckets in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.permission='PAR_MANAGE', request.principal.id='<workspace-ocid>'}

    Weitere Informationen zum Verwenden von vorab authentifizierten Anforderungen.

    1. Klicken Sie unter Staging Area auf Auswählen oder Bearbeiten.
    2. (Zur Bearbeitung) Aktivieren Sie im Bereich Staging Area auswählen nicht das Kontrollkästchen Einstellungen für Standard-Staging Area verwenden, wenn Sie eine andere Staging Area auswählen möchten.
    3. Wählen Sie das Menü Datenasset aus, und wählen Sie ein Object Storage-Datenasset.
    4. Wählen Sie dann Verbindung, Compartment und Bucket aus, und klicken Sie auf Auswählen.
  6. (Optional) Auf der Registerkarte Erweiterte Optionen können Sie je nach Datenassettyp für diesen Zieloperator Werte eingeben oder Standardwerte verwenden.

    Objekt Beschreibung

    Ablehnungsgrenzwert

    Für Autonomous Data Warehouse oder Autonomous Transaction Processing

    Wert eingeben.

    Sie können angeben, nach wie vielen fehlerhaften Zeilen, die nicht in das Ziel geladen werden können, die Integrationsaufgabe als nicht erfolgreich abgebrochen wird. Beispiel: Wenn die Datenquelle 1.000 Zeilen enthält und Sie den Ablehnungsgrenzwert auf 200 setzen, wird die Aufgabe sofort nach Ablehnen der 200. falschen Zeile nicht erfolgreich ausgeführt.

    Wenn Sie keinen Wert angeben, ist der Standardwert 0, d.h. die Aufgabe verläuft nicht erfolgreich, wenn die erste fehlerhafte Zeile abgelehnt wird.

    Wenn ein Aufgabenfehler auftritt, suchen Sie in den Logs nach den Tabellennamen, in denen die Zeilen abgelehnt wurden. Fragen Sie dann die betroffenen Tabellen und Zeilen in der autonomen Datenbank ab.

    Ladereihenfolge

    Wert eingeben.

    Nur positive Ganzzahlen sind zulässig. Der Standardwert ist 0. Die Ladereihenfolge gibt die Reihenfolge der Zielknoten an, in die Daten geladen werden. Das Ziel mit dem Wert 0 wird zuerst geladen, dann das Ziel mit dem Wert 1 usw. Wenn mehrere Knoten denselben Wert aufweisen, werden die Ziele in keiner bestimmten Reihenfolge geladen.

  7. Wählen Sie auf der Registerkarte Attribute einzelne Attribute aus, oder verwenden Sie die Filtersymbole, um die Liste der Attribute nach einem Namensmuster oder Attributtyp zu filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter gleichzeitig anwenden. Beispiel: Um nach dem Namensmuster "*_CODE" und nach dem Typ "Numerisch" oder "varchar" zu filtern, wenden Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (numerisch, varchar) an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (Datentyp), COMPOSITE oder MAP (Schlüsseltyp, Werttyp) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  8. Zeigen Sie auf der Registerkarte Daten ein Sample der Daten basierend auf den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben. Transformationen können für einen Zieloperator nicht angewendet werden, da die Daten schreibgeschützt sind.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  9. Geben Sie auf der Registerkarte Map an, wie die eingehenden Attribute den Attributen der Zieldatenentity map. Beachten Sie, dass Zuordnungsattribute nicht anwendbar sind, wenn Sie das Kontrollkästchen Neue Datenentity erstellen aktiviert haben.

    Bei Zielentitys mit hierarchischen Datentypen können nur Felder der ersten Ebene zugeordnet werden. Informationen zu den unterstützten Typen finden Sie unter Hierarchische Datentypen.

  10. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.

    Data Integration prüft und liefert Warnungen in den folgenden Situationen:

    • Daten werden möglicherweise abgeschnitten, wenn Daten aus den Quellattributen in die zugeordneten Zielattribute geladen werden.
    • Der Datentyp eines Quellattributs stimmt nicht mit dem Datentyp des zugeordneten Attributs überein.
Daten anzeigen

Auf der Registerkarte Daten werden die transformierten Daten basierend auf den im Datenfluss angewendeten Operatoren angezeigt.

Wichtig

Wenn Sie eine hierarchische Datenentity für einen Zieloperator verwenden, finden Sie Informationen zu unterstützten Typen finden Sie unter Hierarchische Datentypen.

Sie können Daten in der Zielentity nach einem Namensmuster oder Datentyp filtern. Um Daten nach einem Namensmuster zu filtern, geben Sie ein einfaches reguläres Ausdrucksmuster oder die Platzhalter "?" und "*" im Feld "Nach Muster filtern" ein. Um Daten nach einem Typ zu filtern, wählen Sie den Datentyp im Menü neben dem Musterfeld aus.

Transformationen können nicht auf den Zieloperator angewendet werden, da die Daten schreibgeschützt sind.

Attribute zuordnen

Die Registerkarte Map ist nur für einen Zieoperator verfügbar.

Wichtig

Wenn Sie eine hierarchische Datenentity für einen Zieloperator verwenden, finden Sie Informationen zu unterstützten Typen finden Sie unter Hierarchische Datentypen.

Wenn Sie eine neue Zieldatenentity erstellen, ist die Registerkarte "Zuordnen" nicht verfügbar. Die eingehenden Attribute werden verwendet, um die Tabellen- oder Dateistruktur mit einer Eins-zu-Eins-Zuordnung zu erstellen.

Wenn Sie eine vorhandene Zieldatenentity verwenden, ordnen Sie die eingehenden Attribute den Attributen der Zieldatenentity zu. Sie können die folgenden Aktionen ausführen:

Nach Position zuordnen

Ordnet eingehende Attribute den Zielentityattributen entsprechend ihrer Position in den Listen zu.

Wählen Sie im Menü Aktionen die Option Automatisch nach Position zuordnen aus. Die Regel für die automatische Zuordnung nach Position wird hinzugefügt.

Nach Name zuordnen

Ordnet eingehende Attribute den Zielattributen mit demselben Namen zu.

Wählen Sie im Menü Aktionen die Option Automatisch nach Name zuordnen aus. Die Regel für die automatische Zuordnung nach Namen wird hinzugefügt.

Nach Muster zuordnen

Ordnet eingehende Attribute anhand einfacher, benutzerdefinierter Regex-Regeln Zielattributen zu.

Wählen Sie im Menü Aktionen die OptionNach Muster zuordnen aus. Geben Sie ein Quellmuster und ein Zielmuster ein. Wählen Sie dann das Mapping Vorschau aus, um die Quell- und Zielmuster zu testen.

Um ein Muster zu definieren, können Sie Sternchen (*) und Fragezeichen (?) verwenden. Verwenden Sie ein Sternchen, um einen Platzhalter mit einer beliebigen Anzahl von Zeichen in einem Zeichenfolgenmuster anzugeben. Verwenden Sie ein Fragezeichen, um einen Platzhalter für ein einzelnes Zeichen anzugeben. Beispiel: *INPUT? ordnet ein übereinstimmendes Attribut zu, das mit n Zeichen beginnt und die Zeichenfolge INPUT gefolgt von einem einzelnen Zeichen enthält, wie NEWINPUTS.

Beim Musterabgleich wird standardmäßig die Groß-/Kleinschreibung nicht beachtet. Beispiel: Das Quellmuster *Name entspricht dem Zielnamen CUSTOMER_NAME und Customer_Name.

Um verschiedene Capture-Gruppen anzugeben, verwenden Sie $n. Beispiel: Sie möchten LAST_NAME, FIRST_NAME und USERNAME von einem Quell- oder Upstreamoperator TGT_LAST_NAME, TGT_FIRST_NAME und TGT_USERNAME in der Zieldatenentity zuordnen. Geben Sie *NAME in das Feld Quellmuster und TGT_$1 in das Feld Zielmuster ein. Das Sternchen (*) in *NAME bedeutet, dass die Zeichenfolge vor NAME mit der Zeichenfolge in $1 des Zielmusters identisch sein muss. $1 bezieht sich auf die erste Erfassungsgruppe im Quellmuster, in diesem Fall das Sternchen (*).

Wenn Sie einen Musterabgleich zwischen Groß- und Kleinschreibung benötigen, fügen Sie das Präfix (?c) zum Quellmuster hinzu. Beispiel: Sie möchten das Quellattribut CustomerName, das im Namen Camel-Großbuchstaben verwendet, dem Zielattribut mit dem Namen Customer_Name zuordnen. Sie geben (?c)([A-Z][a-z]+)([A-Z][a-z]+) als Quellmuster und $1_$2 als Zielmuster ein. Wenn das Präfix (?c) am Anfang eines Quellmusters hinzugefügt wird, wird der Mustervergleich zwischen Groß- und Kleinschreibung für die Zuordnung aktiviert. Data Integration erkennt, dass das "N" in CustomerName der Start eines neuen Musters ist, und behandelt ([A-Z][a-z]+)([A-Z][a-z]+) daher beim Abgleich als zwei verschiedene Wörter (Capture-Gruppen).

Direkte manuelle Zuordnung

Ziehen Sie ein eingehendes Attribut aus der Quellliste in ein Attribut in der Zielliste, um ein Mapping zu erstellen.

Alternativ können Sie im Menü Aktionen auf die Option Manuelle Map klicken. Erstellen Sie anschließend im Dialogfeld "Attribut zuordnen" eine Zuordnung, indem Sie ein Quellattribut und ein Zielattribut auswählen.

Zuordnung entfernen

Entfernt die ausgewählte Zuordnung.

Wählen Sie Regeln anzeigen aus. Wählen Sie im Bereich "Regeln" mindestens eine Regel aus, und wählen Sie Entfernen. Alternativ können Sie im Menü "Aktionen" der Regel die Option Entfernen auswählen (Menü "Aktionen"), um diese Regel löschen zu lassen.

Alle Zuordnungen löschen

Entfernt alle Zuordnungen.

Wählen Sie im Menü Aktionen die Option Zuordnungen zurücksetzen aus. Alle Regeln für die manuelle und automatische Zuordnung werden entfernt.

Modellierungsoperatoren

Wichtig

Informationen zu unterstützten komplexen Datentypen finden Sie unter Hierarchische Datentypen. Möglicherweise können Sie einige Konfigurationen auf der Registerkarte "Attribute" und der Registerkarte "Daten" im Bereich "Eigenschaften" nicht ausführen.

Filteroperator

Mit dem Filteroperator können Sie eine Teilmenge von Daten aus dem eingehenden Port auswählen und basierend auf einer Filterbedingung zum ausgehenden Port weiterleiten.

Filteroperator hinzufügen und konfigurieren
  1. Ziehen Sie einen Operator vom Typ Filter aus dem Bereich Operatoren auf die Leinwand.
  2. Geben Sie für den ausgewählten Filteroperator im Bereich "Eigenschaften" auf der Registerkarte Details einen Namen in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
  3. Wählen Sie neben Filterbedingung die Option Erstellen aus.
  4. Im Bereich "Filterbedingung erstellen" im Abschnitt "Bedingungsbuilder" können Sie Attribute, Parameter und Funktionen doppelklicken oder ziehen, um sie dem Editor hinzuzufügen, um eine Bedingung zu erstellen. Sie können einen Bedingungsausdruck auch manuell in den Editor eingeben und den Ausdruck validieren.
    Hinweis

    Im Editor kann ein hinzugefügtes Element (z.B. eine Funktion) Platzhalter enthalten. Um einen Platzhalter durch ein anderes Element zu ersetzen, markieren Sie den Platzhalter, und doppelklicken Sie dann auf ein anderes Element in der Liste.
  5. Wählen Sie Erstellen aus.
  6. (Optional) Wählen Sie auf Parameter zuweisen zu verwenden, um Parameter zu verwenden, damit die Filterbedingung beim Veröffentlichen des Datenflusses nicht an den kompilierten Code gebunden ist. Siehe Parameter zuweisen.
  7. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Um nach dem Namensmuster "*_CODE" und nach dem Typ "Numerisch" oder "varchar" zu filtern, wenden Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (numerisch, varchar) an.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  8. Zeigen Sie auf der Registerkarte Daten ein Sampler der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  9. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.
Filterbedingung erstellen

Mit dem Bedingungsbuilder können Sie Elemente visuell auswählen, um eine Filterbedingung zu erstellen. Sie können eine Filterbedingung auch manuell im Editor eingeben.

Wenn Sie eine Filterbedingung erstellen, können Sie eine Teilmenge von Daten aus einem Upstreamoperator basierend auf der Bedingung auswählen.

Die Elemente, die Sie in einer Filterbedingung verwenden können, umfassen eingehende Attribute, Parameter und Funktionen. Sie können ein Element in der Liste doppelklicken oder ziehen, um es dem Editor hinzuzufügen und eine Bedingung zu erstellen. Sie können die Bedingung vor dem Erstellen validieren.

Eingehend zeigt die Attribute des vorgelagerten Operators an, die bei diesem Filteroperator eingehen.

Beispiel: Um Daten nach einem Ortsnamen zu filtern, können Sie den Bedingungsausdruck wie folgt erstellen:

FILTER_1.ADDRESSES.CITY='Redwood Shores'

Parameter sind die Ausdrucksparameter, die dem Datenfluss mit dem Condition Builder (Filter-, Join-, Lookup- und Aufteilungsoperatoren) oder Expression Builder (Ausdrucks- und Aggregatoperatoren) hinzugefügt wurden. Ein Ausdrucksparameter hat einen Namen, einen Typ und einen Standardwert. Siehe Ausdrucksparameter hinzufügen.

Angenommen, Sie möchten einen Parameter für den Ortsnamen in der Filterbedingung verwenden. Sie können einen VARCHAR-Parameter mit dem Namen P_VARCHAR_CITY erstellen und den Standardwert auf Redwood Shores setzen. Anschließend können Sie den Filterausdruck wie folgt erstellen:

FILTER_1.ADDRESSES.CITY=$P_VARCHAR_CITY

Funktionen sind die in Data Integration verfügbaren Funktionen, die Sie in einer Bedingung verwenden können. Funktionen sind Vorgänge, die für an die Funktion übergebene Argumente ausgeführt werden. Funktionen berechnen, bearbeiten oder extrahieren Datenwerte aus Argumenten.

Beispiel: Um Daten nach einem Ortsnamen oder nach Population zu filtern, können Sie die Funktion OR verwenden, um den Filterbedingungsausdruck wie folgt zu erstellen:

FILTER_1.COUNTRIES.CITY=$P_VARCHAR_CITY OR FILTER_1.COUNTRIES.POPULATION>100000000
FILTER_1.COUNTRIES.CITY=$P_VARCHAR_CITY OR FILTER_1.COUNTRIES.POPULATION>$P_NUMERIC

Im Folgenden finden Sie eine Liste der Funktionen, die Sie beim Erstellen von Bedingungen hinzufügen können:

Hashfunktionen
FunktionBeschreibungBeispiel
MD5(all data types)Berechnet eine MD5-Prüfsumme des Datentyps und gibt einen Zeichenfolgenwert zurück. MD5(column_name)
SHA1(all data types)Berechnet einen SHA-1-Hashwert des Datentyps und gibt einen Zeichenfolgenwert zurück. SHA1(column_name)
SHA2(all data types, bitLength)Berechnet einen SHA-2-Hashwert des Datentyps und gibt einen Zeichenfolgenwert zurück. bitLength ist eine Ganzzahl. SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Berechnet einen Hashwert für expr und gibt einen NUMBER-Wert zurück.

expr kann ein Ausdruck, eine Spalte oder ein Literal sein.

max_bucket ist der zurückgegebene maximale Bucket-Wert zwischen 0 und 4294967295 (Standard).

seed_value ist ein Wert zwischen 0 (Standard) und 4294967295.

Oracle wendet die Hash-Funktion auf die Kombination aus expr und seed_value an, um viele verschiedene Ergebnisse für dasselbe Datenset zu erzeugen.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Arithmetische Funktionen
FunktionBeschreibungBeispiel
ABS(numeric)Gibt die absolute Potenz des Wertes numeric zurück.ABS(-1)
CEIL(numeric)Gibt die kleinste Ganzzahl zurück, die nicht größer als der Wert numeric ist.CEIL(-1,2)
FLOOR(numeric)Gibt die größte Ganzzahl zurück, die nicht größer als der Wert numeric ist.FLOOR(-1,2)
MOD(numeric1, numeric2)Gibt den Rest zurück, nachdem numeric1 durch numeric2 geteilt wurde.MOD(8,2)
POWER(numeric1, numeric2)Entspricht numeric1 hoch numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Gibt numeric1 gerundet auf numeric2 Dezimalstellen zurück.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Gibt numeric1 gekürzt auf numeric2 Dezimalstellen zurück.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Konvertiert expr basierend auf den Angaben für format und locale (optional) in eine Zahl. Das Standardgebietsschema ist en-US. Unterstützte Sprachtags.

Unterstützte Formatmuster:

  • 0: Eine Ziffer
  • #: Eine Ziffer, Null wird als nicht vorhanden angezeigt
  • .: Platzhalter für Dezimaltrennzeichen
  • ,: Platzhalter für Gruppierungstrennzeichen
  • E: Trennt Mantisse und Exponent bei exponentiellen Formaten
  • -: Standardpräfix für Negativ
  • ¤: Währungszeichen, wird durch das Währungssymbol ersetzt. Wenn es doppelt vorhanden ist, wird es durch das internationale Währungssymbol ersetzt. Bei Verwendung in einem Muster wird das monetäre Dezimaltrennzeichen statt des Dezimaltrennzeichens verwendet.

TO_NUMBER('5467.12') gibt 5467.12 zurück

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') gibt -45677.7 zurück

Datums- und Zeitfunktionen
Funktion Beschreibung Beispiel
CURRENT_DATE Gibt das aktuelle Datum zurück. CURRENT_DATE gibt das aktuelle Datum zurück, z.B. 2023-05-26
CURRENT_TIMESTAMP Gibt das aktuelle Datum und die Zeit für die Session-Zeitzone zurück. CURRENT_TIMESTAMP gibt das aktuelle Datum und die aktuelle Uhrzeit zurück, wie 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Gibt das Datum zurück, das number von Tagen nach dem angegebenen Datum date liegt. DATE_ADD('2017-07-30', 1) gibt 2017-07-31 zurück
DATE_FORMAT(expr, format[, locale])

Formatiert expr vom Typ "Datum" basierend auf den Angaben für format und locale (optional). Das Standardgebietsschema ist en-US. Unterstützte Sprachtags.

Unterstützte Datumsformatmuster:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') gibt '2020-10-11' zurück. Das erste Argument ist ein Date-Objekt, das den 11. Oktober 2020 darstellt.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') gibt '2018/junio/17' zurück

DAYOFMONTH(date) Gibt den Tag des Monats für das Datum zurück. DAYOFMONTH('2020-12-25') gibt 25 zurück
DAYOFWEEK(date) Gibt den Tag der Woche für das Datum zurück. DAYOFWEEK('2020-12-25') gibt 6 für Freitag zurück. In den USA gilt der Sonntag als 1, der Montag als 2 usw.
DAYOFYEAR(date) Gibt den Tag des Jahres für das Datum zurück. DAYOFYEAR('2020-12-25') gibt 360 zurück
WEEKOFYEAR(date) Gibt die Woche des Jahres für das Datum zurück.

WEEKOFYEAR('2022-07-28') gibt 30 zurück

WEEKOFYEAR('2022-07-28 13:24:30') gibt 30 zurück

HOUR(datetime) Gibt den Stundenwert für das Datum/die Uhrzeit zurück. HOUR('2020-12-25 15:10:30') gibt 15 zurück
LAST_DAY(date) Gibt den letzten Tag des Monats für das Datum zurück. LAST_DAY('2020-12-25') gibt 31 zurück
MINUTE(datetime) Gibt den Minutenwert für das Datum/die Uhrzeit zurück. HOUR('2020-12-25 15:10:30') gibt 10 zurück
MONTH(date) Gibt den Monatswert für das Datum zurück. MONTH('2020-06-25') gibt 6 zurück
QUARTER(date) Gibt das Quartal des Jahres zurück, in dem das Datum liegt. QUARTER('2020-12-25') gibt 4 zurück
SECOND(datetime) Gibt den Sekundenwert für das Datum/die Uhrzeit zurück. SECOND('2020-12-25 15:10:30') gibt 30 zurück
TO_DATE(string, format_string[, localeStr]) Parst den Zeichenfolgenausdruck mit dem Ausdruck format_string in ein Datum. Das Gebietsschema ist optional. Der Standardwert ist en-US. Unterstützte Sprachtags.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Formatzeichenfolgen (unter Beachtung der Groß-/Kleinschreibung) unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') gibt einen Datumswert von 2016-12-31 zurück

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') gibt einen Datumswert von 2018-06-17 zurück

TO_TIMESTAMP(expr, format_string[, localeStr]) Konvertiert expr vom Typ "VARCHAR" basierend auf den Angaben für format_string und localeStr (optional) in einen TIMESTAMP-Wert.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Formatmuster unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') gibt ein TIMESTAMP-Objekt zurück, das 11am 10:10 Oct 11th, 2020 darstellt
WEEK(date)

Gibt den Wochenwert für das Datum zurück.

WEEK('2020-06-25') gibt 4 zurück
YEAR(date) Gibt den Jahreswert für das Datum zurück. YEAR('2020-06-25') gibt 2020 zurück
ADD_MONTHS(date_expr, number_months) Gibt das Datum nach dem Hinzufügen der angegebenen Anzahl von Monaten zum angegebenen Datum, zum Zeitstempel oder zur Zeichenfolge mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS zurück.

ADD_MONTHS('2017-07-30', 1) gibt 2017-08-30 zurück

ADD_MONTHS('2017-07-30 09:07:21', 1) gibt 2017-08-30 zurück

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Gibt die Anzahl der Monate zwischen start_date_expr und end_date_expr zurück. start_date_expr und end_date_expr können Datumsangaben, Zeitstempel oder Zeichenfolgen mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS sein.

Eine Ganzzahl wird zurückgegeben, wenn beide Datumsangaben denselben Tag im Monat oder den letzten Tag im jeweiligen Monat angeben. Andernfalls wird die Differenz auf Basis von 31 Tagen pro Monat berechnet.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') gibt 1 zurück

MONTHS_BETWEEN('2022-07-28', '2020-07-25') gibt 24 zurück

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') gibt 24 zurück

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interpretiert ein Datum, einen Zeitstempel oder eine Zeichenfolge als UTC-Zeit und konvertiert diese Zeit in einen Zeitstempel in der angegebenen Zeitzone.

Verwenden Sie für eine Zeichenfolge ein Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Das Zeitzonenformat ist entweder eine regionsbasierte Zonen-ID (z.B. "Region/Ort", wie "Asia/Seoul") oder ein Zeitzonenversatz (z.B. UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') gibt 2017-07-14 03:40:00.0 zurück
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Konvertiert ein Datum, einen Zeitstempel oder eine Zeichenfolge in der angegebenen Zeitzone in einen UTC-Zeitstempel.

Verwenden Sie für eine Zeichenfolge ein Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Das Zeitzonenformat ist entweder eine regionsbasierte Zonen-ID (z.B. "Region/Ort", wie "Asia/Seoul") oder ein Zeitzonenversatz (z.B. UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') gibt 2017-07-14 01:40:00.0 zurück
FROM_UNIXTIME(unix_time[, fmt])

Konvertiert die angegebene Unix-Zeit oder -Epoche in eine Zeichenfolge, die den Zeitstempel dieses Zeitpunkts in der aktuellen Systemzeitzone und im angegebenen Format darstellt.

Hinweis: Die Unix-Zeit ist die Anzahl der Sekunden, die seit dem 1. Januar 1970 00:00:00 UTC verstrichen sind.

Wenn fmt ausgelassen wird, lautet das Standardformat yyyy-MM-dd HH:mm:ss.

FROM_UNIXTIME(1255033470) gibt '2009-10-08 13:24:30' zurück

FROM_UNIXTIME(1637258854) gibt '2021-11-18 10:07:34' zurück.

Die Standardzeitzone in den Beispielen ist PST.

UNIX_TIMESTAMP([time_expr[, fmt]])

Konvertiert die aktuelle oder angegebene Zeit in einen Unix-Zeitstempel in Sekunden.

time_expr ist ein Datum, ein Zeitstempel oder eine Zeichenfolge mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Wenn time_expr nicht angegeben wird, wird die aktuelle Uhrzeit konvertiert.

Wenn time_expr eine Zeichenfolge ist und fmt ausgelassen wird, lautet der Standardwert yyyy-MM-dd HH:mm:ss.

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') gibt 28800 zurück

Die Standardzeitzone in diesem Beispiel ist PST.

INTERVAL 'year' YEAR[(year_precision)]

Gibt einen Zeitraum in Jahren zurück.

year_precision ist die Anzahl der Stellen im Feld year. Der Wert muss zwischen 0 und 9 liegen. Wenn year_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '1' YEAR gibt ein Intervall von 1 Jahr zurück

INTERVAL '200' YEAR(3) gibt ein Intervall von 200 Jahren zurück

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Gibt einen Zeitraum in Jahren und Monaten zurück. Verwenden Sie diese Option, um einen Zeitraum mit den Feldern year und month zu speichern.

year_precision ist die Anzahl der Stellen im Feld year. Der Wert muss zwischen 0 und 9 liegen. Wenn year_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '100-5' YEAR(3) TO MONTH gibt ein Intervall von 100 Jahren und 5 Monaten zurück. Sie müssen 3 als führende Gesamtstellenanzahl für das Jahr angeben.
INTERVAL 'month' MONTH[(month_precision)]

Gibt einen Zeitraum in Monaten zurück.

month_precision ist die Anzahl der Stellen im Feld Monat. Der Wert muss 0 bis 9 sein. Wenn month_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '200' MONTH(3) gibt ein Intervall von 200 Monaten zurück. Sie müssen 3 als Gesamtstellenanzahl für den Monat angeben.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Tagen, Stunden, Minuten und Sekunden zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) gibt ein Intervall von 11 Tagen, 10 Stunden, 09 Minuten, 08 Sekunden und 555 Tausendstelsekunden zurück
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Gibt einen Zeitraum in Tagen, Stunden und Minuten zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '11 10:09' DAY TO MINUTE gibt ein Intervall von 11 Tagen, 10 Stunden und 09 Minuten zurück
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Gibt einen Zeitraum in Tagen und Stunden zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

INTERVAL '100 10' DAY(3) TO HOUR gibt ein Intervall von 100 Tagen und 10 Stunden zurück
INTERVAL 'day' DAY[(day_precision)]

Gibt einen Zeitraum in Tagen zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

INTERVAL '999' DAY(3) gibt ein Intervall von 999 Tagen zurück
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Stunden, Minuten und Sekunden zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) gibt ein Intervall von 9 Stunden, 08 Minuten und 7,6666666 Sekunden zurück
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Gibt einen Zeitraum in Stunden und Minuten zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '09:30' HOUR TO MINUTE gibt ein Intervall von 9 Stunden und 30 Minuten zurück
INTERVAL 'hour' HOUR[(hour_precision)]

Gibt einen Zeitraum in Stunden zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

INTERVAL '40' HOUR gibt ein Intervall von 40 Stunden zurück
INTERVAL 'minute' MINUTE[(minute_precision)]

Gibt einen Zeitraum in Minuten zurück.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '15' MINUTE gibt ein Intervall von 15 Minuten zurück
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Minuten und Sekunden zurück.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '15:30' MINUTE TO SECOND gibt ein Intervall von 15 Minuten und 30 Sekunden zurück
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Sekunden zurück.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des Feldes zweite. Er muss zwischen 0 und 9 liegen. Der Standard ist 3.

INTERVAL '15.678' SECOND gibt ein Intervall von 15,678 Sekunden zurück
Analytische Funktionen
Funktion Beschreibung Beispiel
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Gibt den Wert zurück, der in der Zeile ausgewertet wird, die der ersten Zeile des Fensterrahmens entspricht. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) gibt den ersten Wert von BANK_ID in einem Fenster zurück, über das die Zeilen als die aktuelle Zeile und 1 Zeile nach dieser Zeile berechnet werden, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Gibt den Wert zurück, der in der Zeile mit einem bestimmten Offset vor der aktuellen Zeile innerhalb der Partition ausgewertet wird. Wenn keine solche Zeile vorhanden ist, wird der Standardwert zurückgegeben. Sowohl Offset- als auch Standardwert werden in Bezug auf die aktuelle Zeile ausgewertet. Wenn keine Angabe gemacht wird, wird Offset standardmäßig auf 1 und standardmäßig auf NULL gesetzt. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) gibt den Wert von BANK_ID aus der zweiten Zeile vor der aktuellen Zeile zurück, unterteilt nach BANK_ID und in absteigender Reihenfolge von BANK_NAME. Wenn kein solcher Wert vorhanden ist, wird hello zurückgegeben.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Gibt den Wert zurück, der in der Zeile ausgewertet wird, die die letzte Zeile des Fensterrahmens ist. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) gibt den letzten Wert von BANK_ID in einem Fenster zurück, über das die Zeilen als die aktuelle Zeile und 1 Zeile nach dieser Zeile berechnet werden, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Gibt den Wert zurück, der in der Zeile mit einem bestimmten Offset nach der aktuellen Zeile innerhalb der Partition ausgewertet wird. Wenn keine solche Zeile vorhanden ist, wird der Standardwert zurückgegeben. Sowohl Offset- als auch Standardwert werden in Bezug auf die aktuelle Zeile ausgewertet. Wenn keine Angabe gemacht wird, wird Offset standardmäßig auf 1 und standardmäßig auf NULL gesetzt. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt den Wert von BANK_ID aus der zweiten Zeile nach der aktuellen Zeile zurück, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME. Wenn kein solcher Wert vorhanden ist, wird hello zurückgegeben.
RANK() OVER([ partition_clause ] order_by_clause) Gibt den Rang der aktuellen Zeile mit Lücken beginnend mit 1 zurück. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt den Rang der einzelnen Zeilen in der Partitionsgruppe von BANK_ID in aufsteigender Reihenfolge von BANK_NAME zurück.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Gibt die eindeutige Nummer der aktuellen Zeile innerhalb der zugehörigen Partition beginnend mit 1 zurück. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt die eindeutige Zeilennummer der einzelnen Zeilen innerhalb der Partitionsgruppe von BANK_ID in aufsteigender Reihenfolge von BANK_NAME zurück.
Zeichenfolgenfunktionen
FunktionenBeschreibungBeispiel
CAST(value AS type)Gibt den angegebenen Wert im angegebenen Typ zurück.CAST("10" AS INT) gibt 10 zurück
CONCAT(string, string)Gibt die kombinierten Werte von Zeichenfolgen oder Spalten zurück.CONCAT('Oracle','SQL') gibt OracleSQL zurück
CONCAT_WS(separator, expression1, expression2, expression3,...) Gibt die kombinierten Werte von Zeichenfolgen oder Spalten mit dem angegebenen Trennzeichen zwischen den Zeichenfolgen oder Spalten zurück.

Ein Trennzeichen ist erforderlich und muss eine Zeichenfolge sein.

Nach dem Trennzeichen muss mindestens ein Ausdruck angegeben werden. Beispiel: CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') gibt Hello-Oracle zurück

CONCAT_WS(' ', address, city, postal_code) gibt 123 MyCity 987654 zurück

Wenn ein untergeordnetes Element der Funktion ein Array ist, wird das Array vereinfacht:

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) gibt 1,2,3,4,5,6,7,8,9 zurück

INITCAP(string)Gibt die Zeichenfolge so zurück, dass jedes Wort mit einem Großbuchstaben beginnt, die anderen Buchstaben Kleinbuchstaben sind und die einzelnen Wörter durch ein Leerzeichen getrennt werden.INITCAP('oRACLE sql') gibt Oracle Sql zurück
INSTR(string, substring[start_position])Gibt den (1-basierten) Index des ersten Vorkommens von substring in string zurück.INSTR('OracleSQL', 'SQL') gibt 7 zurück
LOWER(string)Gibt die Zeichenfolge zurück, wobei alle Buchstaben in Kleinbuchstaben umgewandelt werden.LOWER('ORACLE') gibt oracle zurück
LENGTH(string)Gibt die Länge der Zeichenfolge in Zeichen oder die Anzahl der Byte von Binärdaten zurück. Nachgestellte Leerzeichen werden mitgezählt.LENGTH('Oracle') gibt 6 zurück
LTRIM(string)Gibt die Zeichenfolge zurück, wobei vorangestellte Leerzeichen von links entfernt werden.LTRIM(' Oracle')
NVL(expr1, epxr2)Gibt das Argument zurück, das nicht Null ist.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Sucht und extrahiert die Zeichenfolge, die einem regulären Ausdrucksmuster aus der Eingabezeichenfolge entspricht. Wenn der optionale Erfassungsgruppenindex angegeben ist, extrahiert die Funktion die spezifische Gruppe.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') gibt https://www.oracle.com zurück

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) gibt 22 zurück
REPLACE(string, search, replacement)Ersetzt alle Vorkommen von search durch replacement.

Wird search nicht in der Zeichenfolge gefunden, wird die Zeichenfolge unverändert zurückgegeben.

Wenn replacement nicht angegeben oder eine leere Zeichenfolge ist, wird search durch nichts ersetzt und aus string entfernt.

REPLACE('ABCabc', 'abc', 'DEF') gibt ABCDEF zurück
RTRIM(string)Gibt die Zeichenfolge zurück, wobei vorangestellte Leerzeichen von rechts entfernt werden.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Gibt die erste Teilzeichenfolge ab der Position zurück. SUBSTRING('Oracle SQL' FROM 2 FOR 3) gibt rac zurück
Für Zahlen, TO_CHAR(expr) und für Datumsangaben TO_CHAR(expr, format[, locale])Konvertiert Zahlen und Datumsangaben in Zeichenfolgen. Für Zahlen ist kein Format erforderlich. Verwenden Sie für Datumsangaben dasselbe Format wie DATE_FORMAT, das unter Datums- und Zeitfunktionen beschrieben wird. Das Standardgebietsschema ist en-US. Siehe unterstützte Sprachtags.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Datumsformatmuster unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

Zahlenbeispiel: TO_CHAR(123) gibt 123 zurück

Datumsbeispiel: TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') gibt die Zeichenfolge 2020.10.30 zurück. Das erste Argument ist ein Datumsobjekt, das für den 30. Oktober 2020 steht.

UPPER(string)Gibt eine Zeichenfolge zurück, wobei alle Buchstaben in Großbuchstaben geändert werden.UPPER('oracle') gibt ORACLE zurück
LPAD(str, len[, pad])Gibt eine Zeichenfolge zurück, die links mit angegebenen Zeichen auf eine bestimmte Länge aufgefüllt wird. Wenn Sie das pad-Zeichen auslassen, wird standardmäßig ein Speicherplatz verwendet.LPAD('ABC', 5, '*') gibt '**ABC' zurück
RPAD(str, len[, pad])Gibt eine Zeichenfolge zurück, die rechts mit angegebenen Zeichen auf eine bestimmte Länge aufgefüllt wird. Wenn Sie das pad-Zeichen auslassen, wird standardmäßig ein Speicherplatz verwendet.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
(Vergleichs-)Operatorfunktionen
FunktionBeschreibungBeispiel
CASE WHEN condition1 THEN result1 ELSE result2 ENDGibt den Wert zurück, für den eine Bedingung erfüllt wird.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END gibt ABC zurück, wenn 1> 0. Andernfalls wird XYZ zurückgegeben
ANDDer logische AND-Operator. Gibt "true" zurück, wenn beide Operanden wahr sind. Andernfalls wird "false" zurückgegeben.(x = 10 AND y = 20) gibt "true" zurück, wenn x gleich 10 und y gleich 20 ist. Wenn einer der Operanden nicht wahr ist, wird "false" zurückgegeben
ORDer logische OR-Operator. Gibt "true" zurück, wenn einer der Operanden wahr ist oder beide wahr sind. Andernfalls wird "false" zurückgegeben.(x = 10 OR y = 20) gibt "false" zurück, wenn x nicht gleich 10 und y nicht gleich 20 ist. Wenn einer der Operanden wahr ist, wird "true" zurückgegeben
NOTDer logische NOT-Operator.
LIKEErmittelt durch Mustervergleich, ob die Zeichenfolge string1 mit dem Muster in string2 übereinstimmt.
=Führt einen Gleichheitstest aus. Gibt "true" zurück, wenn expr1 gleich expr2 ist. Andernfalls wird "false" zurückgegeben.x = 10 gibt "true" zurück, wenn der Wert von x gleich 10 ist. Andernfalls wird "false" zurückgegeben
!=Führt einen Ungleichheitstest aus. Gibt "true" zurück, wenn expr1 nicht gleich expr2 ist. Andernfalls wird "false" zurückgegeben.x != 10 gibt "false" zurück, wenn der Wert von x gleich 10 ist. Andernfalls wird "true" zurückgegeben
>Testet, ob ein Ausdruck "größer als" ist. Gibt "true" zurück, wenn expr1 größer als expr2 ist.x > 10 gibt "true" zurück, wenn der Wert von x größer als 10 ist. Andernfalls wird "false" zurückgegeben
>=Testet, ob ein Ausdruck "größer/gleich" ist. Gibt "true" zurück, wenn expr1 größer als oder gleich expr2 ist.x >= 10 gibt "true" zurück, wenn der Wert von x größer als oder gleich 10 ist. Andernfalls wird "false" zurückgegeben
<Testet, ob ein Ausdruck "kleiner als" ist. Gibt "true" zurück, wenn expr1 kleiner als expr2 ist.x < 10 gibt "true" zurück, wenn der Wert von x kleiner als 10 ist. Andernfalls wird "false" zurückgegeben
<=Testet, ob ein Ausdruck "kleiner/gleich" ist. Gibt "true" zurück, wenn expr1 kleiner oder gleich expr2 ist.x <= 10 gibt "true" zurück, wenn der Wert von x kleiner als 10 ist. Andernfalls wird "false" zurückgegeben
||Verkettet zwei Zeichenfolgen.'XYZ' || 'hello' gibt 'XYZhello' zurück
BETWEENBewertet einen Bereich.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INTestet, ob ein Ausdruck mit einer Werteliste übereinstimmt.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Eindeutige-ID-Funktionen
FunktionBeschreibungBeispiel
NUMERIC_ID()Generiert eine universell eindeutige ID, die eine 64-Bit-Zahl für jede Zeile darstellt.NUMERIC_ID() gibt beispielsweise 3458761969522180096 und 3458762008176885761 zurück
ROWID()Generiert monoton aufsteigende 64-Bit-Zahlen.ROWID() gibt beispielsweise 0, 1, 2 usw. zurück
UUID()Generiert eine universell eindeutige ID, die in einer 128-Bit-Zeichenfolge für jede Zeile besteht.UUID() gibt zum Beispiel 20d45c2f-0d56-4356-8910-162f4f40fb6d zurück
MONOTONICALLY_INCREASING_ID() Generiert eindeutige, monoton aufsteigende 64-Bit-Ganzzahlen, die keine aufeinanderfolgenden Zahlen sind. MONOTONICALLY_INCREASING_ID() gibt beispielsweise 8589934592 und 25769803776 zurück
Bedingungen
FunktionBeschreibungBeispiel
COALESCE(value, value [, value]*)Gibt das erste Nicht-Null-Argument zurück, falls vorhanden. Andernfalls wird Null zurückgegeben.COALESCE(NULL, 1, NULL) gibt 1 zurück
NULLIF(value, value)Gibt Null zurück, wenn die beiden Werte gleich sind. Andernfalls wird der erste Wert zurückgegeben.NULLIF('ABC','XYZ') gibt ABC zurück
Hierarchische Funktionen
FunktionBeschreibungBeispiel
SCHEMA_OF_JSON(string)Parst eine JSON-Zeichenfolge und leitet das Schema im DDL-Format ab.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') gibt 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>' zurück

SCHEMA_OF_JSON('[{\"col\":0}]') gibt 'ARRAY<STRUCT<col: BIGINT>>' zurück

FROM_JSON(column, string)

Parst eine Spalte mit einer JSON-Zeichenfolge in einen der folgenden Typen mit dem angegebenen Schema.

  • Map, mit Zeichenfolge als Schlüsseltyp
  • Struct
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') gibt eine Spalte vom Typ "Struct" mit dem angegebenen Schema zurück: {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') gibt eine Spalte vom Typ "Struct" mit dem angegebenen Schema zurück: {1, 0.8}

TO_JSON(column)Konvertiert eine Spalte vom Typ "Struct" oder "Struct-Array" oder vom Typ "Map" oder "Map-Array" in eine JSON-Zeichenfolge.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) gibt eine JSON-Zeichenfolge {"s1":[1,2,3],"s2":{"key":"value"}} zurück
TO_MAP(string,column[,string,column]*)Erstellt eine neue Spalte vom Typ "Map". Die Eingabespalten müssen als Schlüssel/Wert-Paare gruppiert werden. Die Eingabeschlüsselspalten dürfen nicht Null sein und müssen alle denselben Datentyp aufweisen. Die Eingabewertspalten müssen alle denselben Datentyp aufweisen.

TO_MAP('Ename',Expression_1.attribute1) gibt eine Spalte vom Typ "Map" zurück: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) gibt eine Spalte vom Typ "Map" zurück: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Erstellt eine neue Spalte vom Typ "Struct". Die Eingabespalten müssen als Schlüssel/Wert-Paare gruppiert werden.

TO_STRUCT('Ename',Expression_1.attribute1) gibt {100} zurück

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) gibt {100, "John"} zurück

TO_ARRAY(column[,column]*)Erstellt eine neue Spalte vom Typ "Array". Die Eingabespalten müssen alle denselben Datentyp aufweisen.

TO_Array(Expression_1.attribute1) gibt [100] zurück

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) gibt ["John","Friend"] zurück

Funktionen höherer Ordnung

Datenflussoperatoren, die das Erstellen von Ausdrücken und hierarchischen Datentypen unterstützen, können Funktionen höherer Ordnung verwenden.

Die folgenden Operatoren werden unterstützt:

  • Aggregieren

  • Ausdruck

  • Filter

  • Join

  • Referenz

  • Teilen

  • Drehen

FunktionBeschreibungBeispiel
TRANSFORM(column, lambda_function)Nimmt ein Array und eine anonyme Funktion an. Richten Sie ein neues Array ein, indem Sie die Funktion auf jedes Element anwenden und das Ergebnis dem Ausgabearray zuweisen.Für ein Eingabearray mit Ganzzahlen [1, 2, 3] gibt TRANSFORM(array, x -> x + 1) ein neues Array von [2, 3, 4] zurück.
TRANSFORM_KEYS(column, lambda_function)Nimmt eine Karte und eine Funktion mit 2 Argumenten (Schlüssel und Wert) und gibt eine Karte zurück, in der die Schlüssel den Typ des Ergebnisses der Lambda-Funktion haben und die Werte den Typ der Spaltenzuordnungswerte haben.Bei einer Eingabezuordnung mit Ganzzahlschlüsseln und Zeichenfolgenwerten von {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'} gibt TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) eine neue Zuordnung von {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'} zurück.
TRANSFORM_VALUES(column, lambda_function)Nimmt eine Karte und eine Funktion mit 2 Argumenten (Schlüssel und Wert) und gibt eine Karte zurück, in der die Werte den Typ des Ergebnisses der Lambda-Funktionen haben und die Schlüssel den Typ der Spaltenzuordnungsschlüssel haben. Bei einer Eingabezuordnung mit Zeichenfolgenschlüsseln und Zeichenfolgenwerten von {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'} gibt TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) eine neue Zuordnung von {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'} zurück.
ARRAY_SORT(array(...), lambda_function)

Nur der Ausdrucksoperator unterstützt ARRAY_SORT.

Nimmt ein Array an und sortiert nach der angegebenen Funktion, die 2 Argumente annimmt.

Die Funktion muss -1, 0 oder 1 zurückgeben, je nachdem, ob das erste Element kleiner, gleich oder größer als das zweite Element ist.

Wenn die Funktion ausgelassen wird, wird das Array in aufsteigender Reihenfolge sortiert.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

Das zurückgegebene Array ist:

[1,5,6]

Join-Operator

Mit dem Join-Operator können Sie Daten aus mehreren eingehenden Quellen verknüpfen.

Join-Operator hinzufügen und konfigurieren
  1. Ziehen Sie einen Operator vom Typ Join aus dem Bereich Operatoren auf die Leinwand.
  2. Geben Sie für den ausgewählten Join-Operator auf der Registerkarte Details des Bereichs "Eigenschaften" einen Namen in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
  3. Wählen Sie den Verknüpfungstyp aus. Die folgenden Join-Typen werden unterstützt:
    Join-Typen
    Symbol Join-Typ Beschreibung
    Venn-Diagramm für Inner Join Inner Wählt die Daten aus den beiden eingehenden Quellen aus, bei denen die Join-Bedingung erfüllt ist.
    Venn-Diagramm für linken Outer Join Linker Outer Wählt alle Daten aus der eingehenden Quelle 1 und die Daten aus der eingehenden Quelle 2 aus, bei denen die Join-Bedingung erfüllt ist.
    Venn-Diagramm für rechten Outer Join Rechter Outer Wählt die Daten aus der eingehenden Quelle 1 aus, bei denen die Join-Bedingung erfüllt ist, und alle Daten aus der eingehenden Quelle 2.
    Venn-Diagramm für vollständigen Outer Join Vollständiger Outer Wählt alle Daten aus den beiden eingehenden Quellen aus. Dabei werden übereinstimmende Zeilen abgeglichen und Nullen eingefügt, wenn keine Übereinstimmungen gefunden werden.
  4. Wählen Sie neben Join-Bedingung die Option Erstellen aus.
  5. Im Bereich "Join-Bedingung erstellen" im Abschnitt "Bedingungsbuilder" können Sie Attribute, Parameter und Funktionen doppelklicken oder ziehen, um sie dem Editor hinzuzufügen, um eine Bedingung zu erstellen. Sie können einen Bedingungsausdruck auch manuell in den Editor eingeben und den Ausdruck validieren.
    Hinweis

    Im Editor kann ein hinzugefügtes Element (z.B. eine Funktion) Platzhalter enthalten. Um einen Platzhalter durch ein anderes Element zu ersetzen, markieren Sie den Platzhalter, und doppelklicken Sie dann auf ein anderes Element in der Liste.
  6. Wählen Sie Erstellen aus.
  7. (Optional) Wählen Sie Parameter zuweisen aus, um Parameter zu verwenden, damit die Join-Bedingung beim Veröffentlichen des Datenflusses nicht an den kompilierten Code gebunden ist. Siehe Parameter zuweisen.
  8. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Um nach dem Namensmuster "*_CODE" und nach dem Typ "Numerisch" oder "varchar" zu filtern, wenden Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (numerisch, varchar) an.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  9. Zeigen Sie auf der Registerkarte Daten ein Sampler der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  10. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.
Join-Bedingung erstellen

Mit dem Bedingungsbuilder können Sie Elemente visuell auswählen, um eine Join-Bedingung zu erstellen. Sie können eine Join-Bedingung auch manuell im Editor eingeben.

Wenn Sie eine Join-Bedingung erstellen, können Sie Daten aus zwei eingehenden Quellen basierend auf der Bedingung auswählen.

Die Elemente, die Sie in einer Join-Bedingung verwenden können, umfassen eingehende Attribute, Parameter und Funktionen. Sie können ein Element in der Liste doppelklicken oder ziehen, um es dem Editor hinzuzufügen und eine Bedingung zu erstellen. Sie können die Bedingung vor dem Erstellen validieren.

Eingehend zeigt die Attribute der Upstreamports, die mit dem JOIN-Operator verbunden sind, als zwei separate JOIN-Ordner an. Zeigen Sie die Attribute der einzelnen Ports an, indem Sie den entsprechenden JOIN-Ordner ein- oder ausblenden. Beispiel: JOIN_1_1 und JOIN_1_2.

JOIN_1_1.BANK_CUSTOMER.ADDRESS_ID = JOIN_1_2.BANK_ADDRESS.ADDRESS_ID

Parameter sind die Ausdrucksparameter, die dem Datenfluss mit dem Condition Builder (Filter-, Join-, Lookup- und Aufteilungsoperatoren) oder Expression Builder (Ausdrucks- und Aggregatoperatoren) hinzugefügt wurden. Ein Ausdrucksparameter hat einen Namen, einen Typ und einen Standardwert. Siehe Ausdrucksparameter hinzufügen.

Angenommen, Sie möchten zwei Quellen verknüpfen und nur die Zeilen mit BANK_NAME='ABC Bank' beibehalten. Sie können einen VARCHAR-Parameter mit dem Namen P_VARCHAR erstellen und den Standardwert auf ABC BANK setzen. Anschließend können Sie den Join-Ausdruck wie folgt erstellen:

JOIN_1_1.ADDRESSES.BANK_ID = JOIN_1_2.BANK.BANK_ID AND JOIN_1_2.BANK.BANK_NAME = $P_VARCHAR

Funktionen sind die in Data Integration verfügbaren Funktionen, die Sie in einer Bedingung verwenden können. Funktionen sind Vorgänge, die für an die Funktion übergebene Argumente ausgeführt werden. Funktionen berechnen, bearbeiten oder extrahieren Datenwerte aus Argumenten.

Im Folgenden finden Sie eine Liste der Funktionen, die Sie beim Erstellen von Bedingungen hinzufügen können:

Hashfunktionen
FunktionBeschreibungBeispiel
MD5(all data types)Berechnet eine MD5-Prüfsumme des Datentyps und gibt einen Zeichenfolgenwert zurück. MD5(column_name)
SHA1(all data types)Berechnet einen SHA-1-Hashwert des Datentyps und gibt einen Zeichenfolgenwert zurück. SHA1(column_name)
SHA2(all data types, bitLength)Berechnet einen SHA-2-Hashwert des Datentyps und gibt einen Zeichenfolgenwert zurück. bitLength ist eine Ganzzahl. SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Berechnet einen Hashwert für expr und gibt einen NUMBER-Wert zurück.

expr kann ein Ausdruck, eine Spalte oder ein Literal sein.

max_bucket ist der zurückgegebene maximale Bucket-Wert zwischen 0 und 4294967295 (Standard).

seed_value ist ein Wert zwischen 0 (Standard) und 4294967295.

Oracle wendet die Hash-Funktion auf die Kombination aus expr und seed_value an, um viele verschiedene Ergebnisse für dasselbe Datenset zu erzeugen.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Arithmetische Funktionen
FunktionBeschreibungBeispiel
ABS(numeric)Gibt die absolute Potenz des Wertes numeric zurück.ABS(-1)
CEIL(numeric)Gibt die kleinste Ganzzahl zurück, die nicht größer als der Wert numeric ist.CEIL(-1,2)
FLOOR(numeric)Gibt die größte Ganzzahl zurück, die nicht größer als der Wert numeric ist.FLOOR(-1,2)
MOD(numeric1, numeric2)Gibt den Rest zurück, nachdem numeric1 durch numeric2 geteilt wurde.MOD(8,2)
POWER(numeric1, numeric2)Entspricht numeric1 hoch numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Gibt numeric1 gerundet auf numeric2 Dezimalstellen zurück.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Gibt numeric1 gekürzt auf numeric2 Dezimalstellen zurück.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Konvertiert expr basierend auf den Angaben für format und locale (optional) in eine Zahl. Das Standardgebietsschema ist en-US. Unterstützte Sprachtags.

Unterstützte Formatmuster:

  • 0: Eine Ziffer
  • #: Eine Ziffer, Null wird als nicht vorhanden angezeigt
  • .: Platzhalter für Dezimaltrennzeichen
  • ,: Platzhalter für Gruppierungstrennzeichen
  • E: Trennt Mantisse und Exponent bei exponentiellen Formaten
  • -: Standardpräfix für Negativ
  • ¤: Währungszeichen, wird durch das Währungssymbol ersetzt. Wenn es doppelt vorhanden ist, wird es durch das internationale Währungssymbol ersetzt. Bei Verwendung in einem Muster wird das monetäre Dezimaltrennzeichen statt des Dezimaltrennzeichens verwendet.

TO_NUMBER('5467.12') gibt 5467.12 zurück

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') gibt -45677.7 zurück

Datums- und Zeitfunktionen
Funktion Beschreibung Beispiel
CURRENT_DATE Gibt das aktuelle Datum zurück. CURRENT_DATE gibt das aktuelle Datum zurück, z.B. 2023-05-26
CURRENT_TIMESTAMP Gibt das aktuelle Datum und die Zeit für die Session-Zeitzone zurück. CURRENT_TIMESTAMP gibt das aktuelle Datum und die aktuelle Uhrzeit zurück, wie 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Gibt das Datum zurück, das number von Tagen nach dem angegebenen Datum date liegt. DATE_ADD('2017-07-30', 1) gibt 2017-07-31 zurück
DATE_FORMAT(expr, format[, locale])

Formatiert expr vom Typ "Datum" basierend auf den Angaben für format und locale (optional). Das Standardgebietsschema ist en-US. Unterstützte Sprachtags.

Unterstützte Datumsformatmuster:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') gibt '2020-10-11' zurück. Das erste Argument ist ein Date-Objekt, das den 11. Oktober 2020 darstellt.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') gibt '2018/junio/17' zurück

DAYOFMONTH(date) Gibt den Tag des Monats für das Datum zurück. DAYOFMONTH('2020-12-25') gibt 25 zurück
DAYOFWEEK(date) Gibt den Tag der Woche für das Datum zurück. DAYOFWEEK('2020-12-25') gibt 6 für Freitag zurück. In den USA gilt der Sonntag als 1, der Montag als 2 usw.
DAYOFYEAR(date) Gibt den Tag des Jahres für das Datum zurück. DAYOFYEAR('2020-12-25') gibt 360 zurück
WEEKOFYEAR(date) Gibt die Woche des Jahres für das Datum zurück.

WEEKOFYEAR('2022-07-28') gibt 30 zurück

WEEKOFYEAR('2022-07-28 13:24:30') gibt 30 zurück

HOUR(datetime) Gibt den Stundenwert für das Datum/die Uhrzeit zurück. HOUR('2020-12-25 15:10:30') gibt 15 zurück
LAST_DAY(date) Gibt den letzten Tag des Monats für das Datum zurück. LAST_DAY('2020-12-25') gibt 31 zurück
MINUTE(datetime) Gibt den Minutenwert für das Datum/die Uhrzeit zurück. HOUR('2020-12-25 15:10:30') gibt 10 zurück
MONTH(date) Gibt den Monatswert für das Datum zurück. MONTH('2020-06-25') gibt 6 zurück
QUARTER(date) Gibt das Quartal des Jahres zurück, in dem das Datum liegt. QUARTER('2020-12-25') gibt 4 zurück
SECOND(datetime) Gibt den Sekundenwert für das Datum/die Uhrzeit zurück. SECOND('2020-12-25 15:10:30') gibt 30 zurück
TO_DATE(string, format_string[, localeStr]) Parst den Zeichenfolgenausdruck mit dem Ausdruck format_string in ein Datum. Das Gebietsschema ist optional. Der Standardwert ist en-US. Unterstützte Sprachtags.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Formatzeichenfolgen (unter Beachtung der Groß-/Kleinschreibung) unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') gibt einen Datumswert von 2016-12-31 zurück

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') gibt einen Datumswert von 2018-06-17 zurück

TO_TIMESTAMP(expr, format_string[, localeStr]) Konvertiert expr vom Typ "VARCHAR" basierend auf den Angaben für format_string und localeStr (optional) in einen TIMESTAMP-Wert.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Formatmuster unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') gibt ein TIMESTAMP-Objekt zurück, das 11am 10:10 Oct 11th, 2020 darstellt
WEEK(date)

Gibt den Wochenwert für das Datum zurück.

WEEK('2020-06-25') gibt 4 zurück
YEAR(date) Gibt den Jahreswert für das Datum zurück. YEAR('2020-06-25') gibt 2020 zurück
ADD_MONTHS(date_expr, number_months) Gibt das Datum nach dem Hinzufügen der angegebenen Anzahl von Monaten zum angegebenen Datum, zum Zeitstempel oder zur Zeichenfolge mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS zurück.

ADD_MONTHS('2017-07-30', 1) gibt 2017-08-30 zurück

ADD_MONTHS('2017-07-30 09:07:21', 1) gibt 2017-08-30 zurück

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Gibt die Anzahl der Monate zwischen start_date_expr und end_date_expr zurück. start_date_expr und end_date_expr können Datumsangaben, Zeitstempel oder Zeichenfolgen mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS sein.

Eine Ganzzahl wird zurückgegeben, wenn beide Datumsangaben denselben Tag im Monat oder den letzten Tag im jeweiligen Monat angeben. Andernfalls wird die Differenz auf Basis von 31 Tagen pro Monat berechnet.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') gibt 1 zurück

MONTHS_BETWEEN('2022-07-28', '2020-07-25') gibt 24 zurück

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') gibt 24 zurück

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interpretiert ein Datum, einen Zeitstempel oder eine Zeichenfolge als UTC-Zeit und konvertiert diese Zeit in einen Zeitstempel in der angegebenen Zeitzone.

Verwenden Sie für eine Zeichenfolge ein Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Das Zeitzonenformat ist entweder eine regionsbasierte Zonen-ID (z.B. "Region/Ort", wie "Asia/Seoul") oder ein Zeitzonenversatz (z.B. UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') gibt 2017-07-14 03:40:00.0 zurück
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Konvertiert ein Datum, einen Zeitstempel oder eine Zeichenfolge in der angegebenen Zeitzone in einen UTC-Zeitstempel.

Verwenden Sie für eine Zeichenfolge ein Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Das Zeitzonenformat ist entweder eine regionsbasierte Zonen-ID (z.B. "Region/Ort", wie "Asia/Seoul") oder ein Zeitzonenversatz (z.B. UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') gibt 2017-07-14 01:40:00.0 zurück
FROM_UNIXTIME(unix_time[, fmt])

Konvertiert die angegebene Unix-Zeit oder -Epoche in eine Zeichenfolge, die den Zeitstempel dieses Zeitpunkts in der aktuellen Systemzeitzone und im angegebenen Format darstellt.

Hinweis: Die Unix-Zeit ist die Anzahl der Sekunden, die seit dem 1. Januar 1970 00:00:00 UTC verstrichen sind.

Wenn fmt ausgelassen wird, lautet das Standardformat yyyy-MM-dd HH:mm:ss.

FROM_UNIXTIME(1255033470) gibt '2009-10-08 13:24:30' zurück

FROM_UNIXTIME(1637258854) gibt '2021-11-18 10:07:34' zurück.

Die Standardzeitzone in den Beispielen ist PST.

UNIX_TIMESTAMP([time_expr[, fmt]])

Konvertiert die aktuelle oder angegebene Zeit in einen Unix-Zeitstempel in Sekunden.

time_expr ist ein Datum, ein Zeitstempel oder eine Zeichenfolge mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Wenn time_expr nicht angegeben wird, wird die aktuelle Uhrzeit konvertiert.

Wenn time_expr eine Zeichenfolge ist und fmt ausgelassen wird, lautet der Standardwert yyyy-MM-dd HH:mm:ss.

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') gibt 28800 zurück

Die Standardzeitzone in diesem Beispiel ist PST.

INTERVAL 'year' YEAR[(year_precision)]

Gibt einen Zeitraum in Jahren zurück.

year_precision ist die Anzahl der Stellen im Feld year. Der Wert muss zwischen 0 und 9 liegen. Wenn year_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '1' YEAR gibt ein Intervall von 1 Jahr zurück

INTERVAL '200' YEAR(3) gibt ein Intervall von 200 Jahren zurück

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Gibt einen Zeitraum in Jahren und Monaten zurück. Verwenden Sie diese Option, um einen Zeitraum mit den Feldern year und month zu speichern.

year_precision ist die Anzahl der Stellen im Feld year. Der Wert muss zwischen 0 und 9 liegen. Wenn year_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '100-5' YEAR(3) TO MONTH gibt ein Intervall von 100 Jahren und 5 Monaten zurück. Sie müssen 3 als führende Gesamtstellenanzahl für das Jahr angeben.
INTERVAL 'month' MONTH[(month_precision)]

Gibt einen Zeitraum in Monaten zurück.

month_precision ist die Anzahl der Stellen im Feld Monat. Der Wert muss 0 bis 9 sein. Wenn month_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '200' MONTH(3) gibt ein Intervall von 200 Monaten zurück. Sie müssen 3 als Gesamtstellenanzahl für den Monat angeben.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Tagen, Stunden, Minuten und Sekunden zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) gibt ein Intervall von 11 Tagen, 10 Stunden, 09 Minuten, 08 Sekunden und 555 Tausendstelsekunden zurück
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Gibt einen Zeitraum in Tagen, Stunden und Minuten zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '11 10:09' DAY TO MINUTE gibt ein Intervall von 11 Tagen, 10 Stunden und 09 Minuten zurück
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Gibt einen Zeitraum in Tagen und Stunden zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

INTERVAL '100 10' DAY(3) TO HOUR gibt ein Intervall von 100 Tagen und 10 Stunden zurück
INTERVAL 'day' DAY[(day_precision)]

Gibt einen Zeitraum in Tagen zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

INTERVAL '999' DAY(3) gibt ein Intervall von 999 Tagen zurück
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Stunden, Minuten und Sekunden zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) gibt ein Intervall von 9 Stunden, 08 Minuten und 7,6666666 Sekunden zurück
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Gibt einen Zeitraum in Stunden und Minuten zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '09:30' HOUR TO MINUTE gibt ein Intervall von 9 Stunden und 30 Minuten zurück
INTERVAL 'hour' HOUR[(hour_precision)]

Gibt einen Zeitraum in Stunden zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

INTERVAL '40' HOUR gibt ein Intervall von 40 Stunden zurück
INTERVAL 'minute' MINUTE[(minute_precision)]

Gibt einen Zeitraum in Minuten zurück.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '15' MINUTE gibt ein Intervall von 15 Minuten zurück
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Minuten und Sekunden zurück.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '15:30' MINUTE TO SECOND gibt ein Intervall von 15 Minuten und 30 Sekunden zurück
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Sekunden zurück.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des Feldes zweite. Er muss zwischen 0 und 9 liegen. Der Standard ist 3.

INTERVAL '15.678' SECOND gibt ein Intervall von 15,678 Sekunden zurück
Analytische Funktionen
Funktion Beschreibung Beispiel
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Gibt den Wert zurück, der in der Zeile ausgewertet wird, die der ersten Zeile des Fensterrahmens entspricht. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) gibt den ersten Wert von BANK_ID in einem Fenster zurück, über das die Zeilen als die aktuelle Zeile und 1 Zeile nach dieser Zeile berechnet werden, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Gibt den Wert zurück, der in der Zeile mit einem bestimmten Offset vor der aktuellen Zeile innerhalb der Partition ausgewertet wird. Wenn keine solche Zeile vorhanden ist, wird der Standardwert zurückgegeben. Sowohl Offset- als auch Standardwert werden in Bezug auf die aktuelle Zeile ausgewertet. Wenn keine Angabe gemacht wird, wird Offset standardmäßig auf 1 und standardmäßig auf NULL gesetzt. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) gibt den Wert von BANK_ID aus der zweiten Zeile vor der aktuellen Zeile zurück, unterteilt nach BANK_ID und in absteigender Reihenfolge von BANK_NAME. Wenn kein solcher Wert vorhanden ist, wird hello zurückgegeben.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Gibt den Wert zurück, der in der Zeile ausgewertet wird, die die letzte Zeile des Fensterrahmens ist. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) gibt den letzten Wert von BANK_ID in einem Fenster zurück, über das die Zeilen als die aktuelle Zeile und 1 Zeile nach dieser Zeile berechnet werden, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Gibt den Wert zurück, der in der Zeile mit einem bestimmten Offset nach der aktuellen Zeile innerhalb der Partition ausgewertet wird. Wenn keine solche Zeile vorhanden ist, wird der Standardwert zurückgegeben. Sowohl Offset- als auch Standardwert werden in Bezug auf die aktuelle Zeile ausgewertet. Wenn keine Angabe gemacht wird, wird Offset standardmäßig auf 1 und standardmäßig auf NULL gesetzt. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt den Wert von BANK_ID aus der zweiten Zeile nach der aktuellen Zeile zurück, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME. Wenn kein solcher Wert vorhanden ist, wird hello zurückgegeben.
RANK() OVER([ partition_clause ] order_by_clause) Gibt den Rang der aktuellen Zeile mit Lücken beginnend mit 1 zurück. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt den Rang der einzelnen Zeilen in der Partitionsgruppe von BANK_ID in aufsteigender Reihenfolge von BANK_NAME zurück.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Gibt die eindeutige Nummer der aktuellen Zeile innerhalb der zugehörigen Partition beginnend mit 1 zurück. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt die eindeutige Zeilennummer der einzelnen Zeilen innerhalb der Partitionsgruppe von BANK_ID in aufsteigender Reihenfolge von BANK_NAME zurück.
Zeichenfolgenfunktionen
FunktionenBeschreibungBeispiel
CAST(value AS type)Gibt den angegebenen Wert im angegebenen Typ zurück.CAST("10" AS INT) gibt 10 zurück
CONCAT(string, string)Gibt die kombinierten Werte von Zeichenfolgen oder Spalten zurück.CONCAT('Oracle','SQL') gibt OracleSQL zurück
CONCAT_WS(separator, expression1, expression2, expression3,...) Gibt die kombinierten Werte von Zeichenfolgen oder Spalten mit dem angegebenen Trennzeichen zwischen den Zeichenfolgen oder Spalten zurück.

Ein Trennzeichen ist erforderlich und muss eine Zeichenfolge sein.

Nach dem Trennzeichen muss mindestens ein Ausdruck angegeben werden. Beispiel: CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') gibt Hello-Oracle zurück

CONCAT_WS(' ', address, city, postal_code) gibt 123 MyCity 987654 zurück

Wenn ein untergeordnetes Element der Funktion ein Array ist, wird das Array vereinfacht:

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) gibt 1,2,3,4,5,6,7,8,9 zurück

INITCAP(string)Gibt die Zeichenfolge so zurück, dass jedes Wort mit einem Großbuchstaben beginnt, die anderen Buchstaben Kleinbuchstaben sind und die einzelnen Wörter durch ein Leerzeichen getrennt werden.INITCAP('oRACLE sql') gibt Oracle Sql zurück
INSTR(string, substring[start_position])Gibt den (1-basierten) Index des ersten Vorkommens von substring in string zurück.INSTR('OracleSQL', 'SQL') gibt 7 zurück
LOWER(string)Gibt die Zeichenfolge zurück, wobei alle Buchstaben in Kleinbuchstaben umgewandelt werden.LOWER('ORACLE') gibt oracle zurück
LENGTH(string)Gibt die Länge der Zeichenfolge in Zeichen oder die Anzahl der Byte von Binärdaten zurück. Nachgestellte Leerzeichen werden mitgezählt.LENGTH('Oracle') gibt 6 zurück
LTRIM(string)Gibt die Zeichenfolge zurück, wobei vorangestellte Leerzeichen von links entfernt werden.LTRIM(' Oracle')
NVL(expr1, epxr2)Gibt das Argument zurück, das nicht Null ist.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Sucht und extrahiert die Zeichenfolge, die einem regulären Ausdrucksmuster aus der Eingabezeichenfolge entspricht. Wenn der optionale Erfassungsgruppenindex angegeben ist, extrahiert die Funktion die spezifische Gruppe.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') gibt https://www.oracle.com zurück

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) gibt 22 zurück
REPLACE(string, search, replacement)Ersetzt alle Vorkommen von search durch replacement.

Wird search nicht in der Zeichenfolge gefunden, wird die Zeichenfolge unverändert zurückgegeben.

Wenn replacement nicht angegeben oder eine leere Zeichenfolge ist, wird search durch nichts ersetzt und aus string entfernt.

REPLACE('ABCabc', 'abc', 'DEF') gibt ABCDEF zurück
RTRIM(string)Gibt die Zeichenfolge zurück, wobei vorangestellte Leerzeichen von rechts entfernt werden.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Gibt die erste Teilzeichenfolge ab der Position zurück. SUBSTRING('Oracle SQL' FROM 2 FOR 3) gibt rac zurück
Für Zahlen, TO_CHAR(expr) und für Datumsangaben TO_CHAR(expr, format[, locale])Konvertiert Zahlen und Datumsangaben in Zeichenfolgen. Für Zahlen ist kein Format erforderlich. Verwenden Sie für Datumsangaben dasselbe Format wie DATE_FORMAT, das unter Datums- und Zeitfunktionen beschrieben wird. Das Standardgebietsschema ist en-US. Siehe unterstützte Sprachtags.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Datumsformatmuster unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

Zahlenbeispiel: TO_CHAR(123) gibt 123 zurück

Datumsbeispiel: TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') gibt die Zeichenfolge 2020.10.30 zurück. Das erste Argument ist ein Datumsobjekt, das für den 30. Oktober 2020 steht.

UPPER(string)Gibt eine Zeichenfolge zurück, wobei alle Buchstaben in Großbuchstaben geändert werden.UPPER('oracle') gibt ORACLE zurück
LPAD(str, len[, pad])Gibt eine Zeichenfolge zurück, die links mit angegebenen Zeichen auf eine bestimmte Länge aufgefüllt wird. Wenn Sie das pad-Zeichen auslassen, wird standardmäßig ein Speicherplatz verwendet.LPAD('ABC', 5, '*') gibt '**ABC' zurück
RPAD(str, len[, pad])Gibt eine Zeichenfolge zurück, die rechts mit angegebenen Zeichen auf eine bestimmte Länge aufgefüllt wird. Wenn Sie das pad-Zeichen auslassen, wird standardmäßig ein Speicherplatz verwendet.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
(Vergleichs-)Operatorfunktionen
FunktionBeschreibungBeispiel
CASE WHEN condition1 THEN result1 ELSE result2 ENDGibt den Wert zurück, für den eine Bedingung erfüllt wird.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END gibt ABC zurück, wenn 1> 0. Andernfalls wird XYZ zurückgegeben
ANDDer logische AND-Operator. Gibt "true" zurück, wenn beide Operanden wahr sind. Andernfalls wird "false" zurückgegeben.(x = 10 AND y = 20) gibt "true" zurück, wenn x gleich 10 und y gleich 20 ist. Wenn einer der Operanden nicht wahr ist, wird "false" zurückgegeben
ORDer logische OR-Operator. Gibt "true" zurück, wenn einer der Operanden wahr ist oder beide wahr sind. Andernfalls wird "false" zurückgegeben.(x = 10 OR y = 20) gibt "false" zurück, wenn x nicht gleich 10 und y nicht gleich 20 ist. Wenn einer der Operanden wahr ist, wird "true" zurückgegeben
NOTDer logische NOT-Operator.
LIKEErmittelt durch Mustervergleich, ob die Zeichenfolge string1 mit dem Muster in string2 übereinstimmt.
=Führt einen Gleichheitstest aus. Gibt "true" zurück, wenn expr1 gleich expr2 ist. Andernfalls wird "false" zurückgegeben.x = 10 gibt "true" zurück, wenn der Wert von x gleich 10 ist. Andernfalls wird "false" zurückgegeben
!=Führt einen Ungleichheitstest aus. Gibt "true" zurück, wenn expr1 nicht gleich expr2 ist. Andernfalls wird "false" zurückgegeben.x != 10 gibt "false" zurück, wenn der Wert von x gleich 10 ist. Andernfalls wird "true" zurückgegeben
>Testet, ob ein Ausdruck "größer als" ist. Gibt "true" zurück, wenn expr1 größer als expr2 ist.x > 10 gibt "true" zurück, wenn der Wert von x größer als 10 ist. Andernfalls wird "false" zurückgegeben
>=Testet, ob ein Ausdruck "größer/gleich" ist. Gibt "true" zurück, wenn expr1 größer als oder gleich expr2 ist.x >= 10 gibt "true" zurück, wenn der Wert von x größer als oder gleich 10 ist. Andernfalls wird "false" zurückgegeben
<Testet, ob ein Ausdruck "kleiner als" ist. Gibt "true" zurück, wenn expr1 kleiner als expr2 ist.x < 10 gibt "true" zurück, wenn der Wert von x kleiner als 10 ist. Andernfalls wird "false" zurückgegeben
<=Testet, ob ein Ausdruck "kleiner/gleich" ist. Gibt "true" zurück, wenn expr1 kleiner oder gleich expr2 ist.x <= 10 gibt "true" zurück, wenn der Wert von x kleiner als 10 ist. Andernfalls wird "false" zurückgegeben
||Verkettet zwei Zeichenfolgen.'XYZ' || 'hello' gibt 'XYZhello' zurück
BETWEENBewertet einen Bereich.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INTestet, ob ein Ausdruck mit einer Werteliste übereinstimmt.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Eindeutige-ID-Funktionen
FunktionBeschreibungBeispiel
NUMERIC_ID()Generiert eine universell eindeutige ID, die eine 64-Bit-Zahl für jede Zeile darstellt.NUMERIC_ID() gibt beispielsweise 3458761969522180096 und 3458762008176885761 zurück
ROWID()Generiert monoton aufsteigende 64-Bit-Zahlen.ROWID() gibt beispielsweise 0, 1, 2 usw. zurück
UUID()Generiert eine universell eindeutige ID, die in einer 128-Bit-Zeichenfolge für jede Zeile besteht.UUID() gibt zum Beispiel 20d45c2f-0d56-4356-8910-162f4f40fb6d zurück
MONOTONICALLY_INCREASING_ID() Generiert eindeutige, monoton aufsteigende 64-Bit-Ganzzahlen, die keine aufeinanderfolgenden Zahlen sind. MONOTONICALLY_INCREASING_ID() gibt beispielsweise 8589934592 und 25769803776 zurück
Bedingungen
FunktionBeschreibungBeispiel
COALESCE(value, value [, value]*)Gibt das erste Nicht-Null-Argument zurück, falls vorhanden. Andernfalls wird Null zurückgegeben.COALESCE(NULL, 1, NULL) gibt 1 zurück
NULLIF(value, value)Gibt Null zurück, wenn die beiden Werte gleich sind. Andernfalls wird der erste Wert zurückgegeben.NULLIF('ABC','XYZ') gibt ABC zurück
Hierarchische Funktionen
FunktionBeschreibungBeispiel
SCHEMA_OF_JSON(string)Parst eine JSON-Zeichenfolge und leitet das Schema im DDL-Format ab.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') gibt 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>' zurück

SCHEMA_OF_JSON('[{\"col\":0}]') gibt 'ARRAY<STRUCT<col: BIGINT>>' zurück

FROM_JSON(column, string)

Parst eine Spalte mit einer JSON-Zeichenfolge in einen der folgenden Typen mit dem angegebenen Schema.

  • Map, mit Zeichenfolge als Schlüsseltyp
  • Struct
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') gibt eine Spalte vom Typ "Struct" mit dem angegebenen Schema zurück: {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') gibt eine Spalte vom Typ "Struct" mit dem angegebenen Schema zurück: {1, 0.8}

TO_JSON(column)Konvertiert eine Spalte vom Typ "Struct" oder "Struct-Array" oder vom Typ "Map" oder "Map-Array" in eine JSON-Zeichenfolge.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) gibt eine JSON-Zeichenfolge {"s1":[1,2,3],"s2":{"key":"value"}} zurück
TO_MAP(string,column[,string,column]*)Erstellt eine neue Spalte vom Typ "Map". Die Eingabespalten müssen als Schlüssel/Wert-Paare gruppiert werden. Die Eingabeschlüsselspalten dürfen nicht Null sein und müssen alle denselben Datentyp aufweisen. Die Eingabewertspalten müssen alle denselben Datentyp aufweisen.

TO_MAP('Ename',Expression_1.attribute1) gibt eine Spalte vom Typ "Map" zurück: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) gibt eine Spalte vom Typ "Map" zurück: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Erstellt eine neue Spalte vom Typ "Struct". Die Eingabespalten müssen als Schlüssel/Wert-Paare gruppiert werden.

TO_STRUCT('Ename',Expression_1.attribute1) gibt {100} zurück

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) gibt {100, "John"} zurück

TO_ARRAY(column[,column]*)Erstellt eine neue Spalte vom Typ "Array". Die Eingabespalten müssen alle denselben Datentyp aufweisen.

TO_Array(Expression_1.attribute1) gibt [100] zurück

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) gibt ["John","Friend"] zurück

Funktionen höherer Ordnung

Datenflussoperatoren, die das Erstellen von Ausdrücken und hierarchischen Datentypen unterstützen, können Funktionen höherer Ordnung verwenden.

Die folgenden Operatoren werden unterstützt:

  • Aggregieren

  • Ausdruck

  • Filter

  • Join

  • Referenz

  • Teilen

  • Drehen

FunktionBeschreibungBeispiel
TRANSFORM(column, lambda_function)Nimmt ein Array und eine anonyme Funktion an. Richten Sie ein neues Array ein, indem Sie die Funktion auf jedes Element anwenden und das Ergebnis dem Ausgabearray zuweisen.Für ein Eingabearray mit Ganzzahlen [1, 2, 3] gibt TRANSFORM(array, x -> x + 1) ein neues Array von [2, 3, 4] zurück.
TRANSFORM_KEYS(column, lambda_function)Nimmt eine Karte und eine Funktion mit 2 Argumenten (Schlüssel und Wert) und gibt eine Karte zurück, in der die Schlüssel den Typ des Ergebnisses der Lambda-Funktion haben und die Werte den Typ der Spaltenzuordnungswerte haben.Bei einer Eingabezuordnung mit Ganzzahlschlüsseln und Zeichenfolgenwerten von {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'} gibt TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) eine neue Zuordnung von {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'} zurück.
TRANSFORM_VALUES(column, lambda_function)Nimmt eine Karte und eine Funktion mit 2 Argumenten (Schlüssel und Wert) und gibt eine Karte zurück, in der die Werte den Typ des Ergebnisses der Lambda-Funktionen haben und die Schlüssel den Typ der Spaltenzuordnungsschlüssel haben. Bei einer Eingabezuordnung mit Zeichenfolgenschlüsseln und Zeichenfolgenwerten von {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'} gibt TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) eine neue Zuordnung von {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'} zurück.
ARRAY_SORT(array(...), lambda_function)

Nur der Ausdrucksoperator unterstützt ARRAY_SORT.

Nimmt ein Array an und sortiert nach der angegebenen Funktion, die 2 Argumente annimmt.

Die Funktion muss -1, 0 oder 1 zurückgeben, je nachdem, ob das erste Element kleiner, gleich oder größer als das zweite Element ist.

Wenn die Funktion ausgelassen wird, wird das Array in aufsteigender Reihenfolge sortiert.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

Das zurückgegebene Array ist:

[1,5,6]

Ausdrucksoperator

Mit dem Ausdrucksoperator können Sie eine oder mehrere Transformationen für eine einzelne Datenzeile ausführen, um neue abgeleitete Felder zu erstellen.

Informationen zum Ändern des Datentyps einer Attributgruppe mit dem Ausdrucksoperator finden Sie unter Datentyp einer Attributgruppe ändern.

Ausdrucksoperator hinzufügen und konfigurieren
  1. Ziehen Sie im Bereich Operatoren einen Operator vom Typ Ausdruck auf die Leinwand.
  2. Geben Sie für den ausgewählten Ausdrucksoperator im Bereich "Eigenschaften" auf der Registerkarte Details einen Namen in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
  3. Wählen Sie unter Ausdrücke die Option Ausdruck hinzufügen aus.
  4. Geben Sie im Bereich "Ausdruck hinzufügen" einen Namen für den Ausdruck in das Feld ID ein, oder lassen Sie den Namen unverändert.
  5. (Optional) Um den Ausdruck auf zwei oder mehr Attribute anzuwenden, wählen Sie Bulkauswahl zulassen aus. Wählen Sie dann die Attribute nach Namen oder mithilfe eines regulären Ausdrucksmusters aus. Beispiel: Sie haben drei Namensattribute im Quell-Dataset und möchten die Funktion UPPER auf alle drei Quellattribute anwenden. Mit einem Muster können Sie diese Gruppe von Quellattributen auswählen.
    1. Wählen Sie unterQuellattribute die Option Muster aus, und wählen Sie Muster bearbeiten aus. Geben Sie dann den regulären Ausdruck ein, der mit einer Gruppe von Quellattributen übereinstimmt. Beispiel: Geben Sie *NAME ein, um die Attribute FIRST_NAME, LAST_NAME und FULL_NAME abzugleichen.
    2. Wählen Sie einen Datentyp im Menü aus.
    3. Geben Sie unter Zielattribute den regulären Ausdruck ein, der die Zielattributnamen in Muster definiert. Standardmäßig wird $0 eingegeben, was sich auf die ursprünglichen Quellattributnamen bezieht. Aktualisieren Sie das Muster, um die Zielattribute entsprechend den Anforderungen zu nennen. Beispiel: Geben Sie $0_UPPER ein, um den Text UPPER an die ursprünglichen Quellattributnamen anzuhängen.
    4. Standardmäßig ist Quellattribut-Datentypen verwenden aktiviert. Sie können die Option aktiviert lassen. Wenn Sie das Kontrollkästchen Quellattribut-Datentypen verwenden deaktivieren, wählen Sie einen Datentyp aus, und füllen Sie die Felder entsprechend dem ausgewählten Typ aus.
  6. (Optional) Wenn Sie Bulkauswahl zulassen nicht ausgewählt haben, können Sie in Ausdrucksdatentyp die Option Datentyp ableiten auswählen, wenn der Expression Builder den Datentyp anhand des eingegebenen Ausdrucks ermitteln soll. Sie können auf die Optionen Datentypvorschau anzeigen und Validieren klicken, um den Datentyp in der Vorschau anzuzeigen, zu aktualisieren und den Ausdruck auf zu validieren.

    Datentyp ableiten ist nützlich, wenn Sie mit komplexen Datentypen wie "Map", "Array" und "Struct" arbeiten, die Ebenen von Nested Types aufweisen können.

  7. Wenn Sie die Optionen Bulkauswahl zulassen und Datentyp ableiten nicht ausgewählt haben, wählen Sie im Menü Datentyp einen Wert aus, und füllen Sie dann die Felder entsprechend dem ausgewählten Typ aus.
  8. Im Abschnitt Expression Builder können Sie einen Ausdruck visuell erstellen, indem Sie auf eingehende Attribute, Parameter oder Funktionen doppelklicken oder diese zum Editor ziehen, um den Ausdruck zu erstellen. Sie können den Ausdruck auch selbst manuell schreiben. Siehe Ausdruck hinzufügen. Sie können den Ausdruck auch validieren.

    Sie können Parameter in Ausdrücken verwenden, einschließlich benutzerdefinierter Parameter, die im Datenfluss erstellt wurden, und Systemparameter, die zur Laufzeit von Data Integration generiert werden.

    Wenn Sie Bulkauswahl zulassen ausgewählt haben, geben Sie mit %MACRO_INPUT% im Ausdruck die Attribute an, auf die die Funktion angewendet werden soll. Beispiel: Sie haben das Muster *NAME zum Abgleich der Quellattribute FIRST_NAME, LAST_NAME und FULL_NAME verwendet. Jetzt können Sie eine Funktion als UPPER(%MACRO_INPUT%) angeben, damit die Funktion auf alle Attribute angewendet wird, die dem Muster entsprechen.

    Wenn Sie eingehende Attribute aus der Ausgabe dieses Ausdrucks ausschließen möchten, aktivieren Sie das Kontrollkästchen Eingehende Attribute ausschließen. Fügen Sie dann über das Menü die eingehenden Attribute hinzu, die Sie aus der Ausgabe ausschließen möchten. Auf jedes Attribut, das Sie ausschließen möchten, wird eine Ausschlussregel angewendet. Sie können Attribute nur ausschließen, wenn Sie den Ausdruck zum ersten Mal hinzufügen. Wenn Sie den Ausdruck bearbeiten, ist das Kontrollkästchen Eingehende Attribute ausschließen nicht verfügbar.

    Hinweis

    Um einen Platzhalter in einer Funktion durch ein anderes Element zu ersetzen, markieren Sie den Platzhalter, und doppelklicken Sie dann auf ein anderes Element in der Liste, um es der Funktion hinzuzufügen.
  9. Wählen Sie Hinzufügen aus.
    Sie können die Schritte ab Schritt 3 wiederholen, um weitere Ausdrücke hinzuzufügen.
  10. Zeigen Sie auf der Registerkarte Attribute die eingehenden Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern und dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können Platzhalter wie ? und * im regulären Ausdrucksmuster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Um nach dem Namensmuster "*_CODE" und nach dem Typ "Numerisch" oder "varchar" zu filtern, wenden Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (numerisch, varchar) an.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.

      Um den Datentyp einer Gruppe von Attributen zu ändern, wählen Sie Datentyp ändern aus. Wählen Sie dann im Dialogfeld den neuen Datentyp für die ausgewählten oder gefilterten Attribute. Wählen Sie dann alle anderen Eigenschaften aus, die für den neuen Datentyp gelten, den Sie ausgewählt haben. Wenn Sie Anwenden auswählen, wird der Registerkarte Details ein Ausdruck anstatt einer Regel hinzugefügt.

    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  11. Zeigen Sie auf der Registerkarte Daten ein Sampler der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

    Siehe auch Ausdruck hinzufügen.

  12. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.
Datentyp einer Attributgruppe ändern

Mit dem Ausdrucksoperator können Sie den Datentyp von Attributen mit einer Bulktransformationsaktion ändern.

Anstatt eine CAST-Funktion zum Ändern des Datentyps für jeweils ein Attribut zu verwenden, können Sie den Ausdrucksoperator hinzufügen und eine Bulktransformationsaktion auf mehrere Attribute gleichzeitig anwenden.
  1. Verbinden Sie den Ausdrucksoperator mit dem entsprechenden eingehenden Objekt.
  2. Setzen Sie den Ausdrucksoperator auf der Leinwand in den Fokus, und zeigen Sie auf der Registerkarte Attribute des Bereichs Eigenschaften die eingehenden Attribute (verknüpft mit dem Ausdrucksoperator auf der linken Seite) an.
  3. Wenn Sie nur wenige Attribute transformieren müssen, wählen Sie die zu transformierenden Attribute aus.
  4. Wenn Sie viele Attribute transformieren müssen, wenden Sie einen Filter auf die Attribute an:
    1. Wählen Sie in der Spalte Name das Filtersymbol aus. Geben Sie nun in das Filterfeld ein einfaches regelmäßiges Ausdrucksmuster mit Platzhaltern (? und *) ein, um die Attribute nach einem Namensmuster zu filtern. Beispiel: Geben Sie ADD* ein, um die Attribute ADDRESS1, ADDRESS2 und ADDRESS_KEY abzugleichen.
    2. Wählen Sie in der Spalte Typ das Filtersymbol aus. Wählen Sie in dem Menü den aktuellen Attributtyp der zu ändernden Attribute. Beispiel: Der Typ von ADDRESS1 und ADDRESS2 ist VARCHAR, und der Typ von ADDRESS_KEY ist NUMERIC. Sie können VARCHAR auswählen, um nur ADDRESS1 und ADDRESS2 zu transformieren.
  5. Wählen Sie im Menü Aktionen die Option Datentyp ändern aus.
  6. Wählen Sie im Dialogfeld Typ ändern den neuen Typ für die ausgewählten Attribute oder die Attribute mit angewendetem Filter aus.

    Geben Sie dann alle anderen Eigenschaften für den ausgewählten neuen Datentyp an.

    Um die ursprünglichen Attribute im Dataset beizubehalten, wählen Sie Quellattribute beibehalten aus. Wenn das Kontrollkästchen nicht aktiviert ist, sind nur die neuen Attribute in den resultierenden Daten verfügbar.

  7. Wählen Sie Anwenden aus.
  8. Wählen Sie die Registerkarte Details aus.
    Prüfen Sie den Ausdruck, der dem Operator hinzugefügt wurde.
Ausdruck hinzufügen

Mit dem Expression Builder können Sie Elemente visuell auswählen, um einen Ausdruck im Editor zu erstellen. Sie können einen Ausdruck auch selbst manuell schreiben.

Beachten Sie beim Erstellen von Ausdrücken Folgendes:

  • Setzen Sie ein Zeichenfolgenliteral in einfache Anführungszeichen. Beispiel: CONCAT('We ', 'like') und UPPER('oracle').

  • Setzen Sie einen Attributnamen in doppelte Anführungszeichen. Beispiel: UPPER("Sales") und CONCAT(CONCAT("EXPRESSION_1.EMP_UTF8_EN_COL_CSV.EN_NAME", ' '), "EXPRESSION_1.EMP_UTF8_EN_COL_CSV.NAME").

    Die Verwendung von doppelten Anführungszeichen um Attributnamen ist für Multibyte-Zeichen und Namen mit Sonderzeichen im vollqualifizierten Namen obligatorisch.

Der Bereich "Ausdruck hinzufügen" umfasst zwei Abschnitte: Informationen zu Ausdrücken und Expression Builder. Mit den Feldern im Abschnitt Informationen zu Ausdrücken können Sie einen Namen und Datentyp für den Ausdruck angeben. Sie können den Ausdruck auch so erstellen, dass er auf zwei oder mehr Attribute angewendet wird. Wenn Sie mit komplexen Datentypen wie "Map", "Array" und "Struct" arbeiten, die eventuell Ebenen verschachtelter Typen aufweisen, können Sie festlegen, dass der Builder den Datentyp aus dem eingegebenen Ausdruck erkennt. Wenn der Builder den Datentyp ableitet, können Sie den Datentyp in der Vorschau anzeigen und aktualisieren und den Ausdruck validieren.

Im Abschnitt Expression Builder werden die Elemente aufgeführt, mit denen Sie einen Ausdruck erstellen können. Die Elemente, die Sie in einem Ausdruck verwenden können, umfassen eingehende Attribute, Parameter und Funktionen. Doppelklicken Sie auf ein Element, oder ziehen Sie es aus der Liste, um es dem Editor hinzuzufügen und den Ausdruck zu erstellen, oder schreiben Sie den Ausdruck selbst manuell. Sie können den Ausdruck vor dem Erstellen validieren.

Unter Eingehend werden die Attribute des vorgelagerten Operators angezeigt, die bei diesem Ausdrucksoperator kommen. Unter der Attributliste befindet sich ein Kontrollkästchen, mit dem Sie Ausschlussregeln anwenden können. Wenn Sie eingehende Attribute aus der Ausgabe dieses Ausdrucks ausschließen möchten, aktivieren Sie das Kontrollkästchen Eingehende Attribute ausschließen. Fügen Sie dann über das Menü die eingehenden Attribute hinzu, die Sie aus der Ausgabe ausschließen möchten. Auf jedes Attribut, das Sie ausschließen möchten, wird eine Ausschlussregel angewendet. Sie können Attribute nur ausschließen, wenn Sie den Ausdruck zum ersten Mal hinzufügen. Wenn Sie den Ausdruck bearbeiten, ist das Kontrollkästchen Eingehende Attribute ausschließen nicht verfügbar.

Zu den Parametern gehören sowohl benutzerdefinierte als auch systemgenerierte Parameter.

Benutzerdefinierte Parameter sind die Ausdrucksparameter, die im Datenfluss mit dem Bedingungsbuilder (Filter-, Join-, Lookup- und Aufteilungsoperatoren) oder Expression Builder (Ausdrucks- und Aggregatoperatoren) hinzugefügt wurden. Siehe Ausdrucksparameter hinzufügen. Die Syntax lautet $PARAMETER_NAME. Beispiel: EXPRESSION_1.ADDRESSES.POSTAL_CODE=$P_CODE

Data Integration generiert Systemparameter wie SYS.TASK_START_TIME. Die Werte der Systemparameter können in Ausdrücken zur Protokollierung von Systeminformationen verwendet werden. Die Syntax lautet ${SYSTEM_PARAMETER}. Beispiel: ${SYS.TASK_RUN_NAME}

Funktionen sind die in Data Integration verfügbaren Funktionen, die Sie in einem Ausdruck verwenden können. Funktionen sind Vorgänge, die für an die Funktion übergebene Argumente ausgeführt werden. Funktionen berechnen, bearbeiten oder extrahieren Datenwerte aus Argumenten. Sie können auch Benutzerdefinierte Funktionen hinzufügen, die Sie im Workspace erstellt haben. Beispiel: MYLIBRARY.MYFUNCTION

Folgende Funktionen können in Data Integration verwendet werden:

Hashfunktionen
FunktionBeschreibungBeispiel
MD5(all data types)Berechnet eine MD5-Prüfsumme des Datentyps und gibt einen Zeichenfolgenwert zurück. MD5(column_name)
SHA1(all data types)Berechnet einen SHA-1-Hashwert des Datentyps und gibt einen Zeichenfolgenwert zurück. SHA1(column_name)
SHA2(all data types, bitLength)Berechnet einen SHA-2-Hashwert des Datentyps und gibt einen Zeichenfolgenwert zurück. bitLength ist eine Ganzzahl. SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Berechnet einen Hashwert für expr und gibt einen NUMBER-Wert zurück.

expr kann ein Ausdruck, eine Spalte oder ein Literal sein.

max_bucket ist der zurückgegebene maximale Bucket-Wert zwischen 0 und 4294967295 (Standard).

seed_value ist ein Wert zwischen 0 (Standard) und 4294967295.

Oracle wendet die Hash-Funktion auf die Kombination aus expr und seed_value an, um viele verschiedene Ergebnisse für dasselbe Datenset zu erzeugen.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Arithmetische Funktionen
FunktionBeschreibungBeispiel
ABS(numeric)Gibt die absolute Potenz des Wertes numeric zurück.ABS(-1)
CEIL(numeric)Gibt die kleinste Ganzzahl zurück, die nicht größer als der Wert numeric ist.CEIL(-1,2)
FLOOR(numeric)Gibt die größte Ganzzahl zurück, die nicht größer als der Wert numeric ist.FLOOR(-1,2)
MOD(numeric1, numeric2)Gibt den Rest zurück, nachdem numeric1 durch numeric2 geteilt wurde.MOD(8,2)
POWER(numeric1, numeric2)Entspricht numeric1 hoch numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Gibt numeric1 gerundet auf numeric2 Dezimalstellen zurück.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Gibt numeric1 gekürzt auf numeric2 Dezimalstellen zurück.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Konvertiert expr basierend auf den Angaben für format und locale (optional) in eine Zahl. Das Standardgebietsschema ist en-US. Unterstützte Sprachtags.

Unterstützte Formatmuster:

  • 0: Eine Ziffer
  • #: Eine Ziffer, Null wird als nicht vorhanden angezeigt
  • .: Platzhalter für Dezimaltrennzeichen
  • ,: Platzhalter für Gruppierungstrennzeichen
  • E: Trennt Mantisse und Exponent bei exponentiellen Formaten
  • -: Standardpräfix für Negativ
  • ¤: Währungszeichen, wird durch das Währungssymbol ersetzt. Wenn es doppelt vorhanden ist, wird es durch das internationale Währungssymbol ersetzt. Bei Verwendung in einem Muster wird das monetäre Dezimaltrennzeichen statt des Dezimaltrennzeichens verwendet.

TO_NUMBER('5467.12') gibt 5467.12 zurück

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') gibt -45677.7 zurück

Arrayfunktionen

Nur der Ausdrucksoperator unterstützt Arrayfunktionen.

FunktionBeschreibungBeispiel
ARRAY_POSITION(array(...), element)Gibt die Position des ersten Vorkommens des angegebenen Elements im angegebenen Array zurück.

Die Position basiert nicht auf Null, sondern beginnt mit 1.

ARRAY_POSITION(array(3, 2, 1, 4, 1), 1) gibt 3 zurück
REVERSE(array(...)) Gibt das angegebene Elementarray in umgekehrter Reihenfolge zurück. REVERSE(array(2, 1, 4, 3)) gibt [3,4,1,2] zurück
ELEMENT_AT(array(...), index) Gibt das Element des angegebenen Arrays an der angegebenen Indexposition zurück.

Der Index basiert nicht auf Null, sondern beginnt mit 1.

Wenn index = -1, gibt es das letzte Element zurück.

ELEMENT_AT(array(1, 2, 3), 2) gibt 2 zurück
Datums- und Zeitfunktionen
Funktion Beschreibung Beispiel
CURRENT_DATE Gibt das aktuelle Datum zurück. CURRENT_DATE gibt das aktuelle Datum zurück, z.B. 2023-05-26
CURRENT_TIMESTAMP Gibt das aktuelle Datum und die Zeit für die Session-Zeitzone zurück. CURRENT_TIMESTAMP gibt das aktuelle Datum und die aktuelle Uhrzeit zurück, wie 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Gibt das Datum zurück, das number von Tagen nach dem angegebenen Datum date liegt. DATE_ADD('2017-07-30', 1) gibt 2017-07-31 zurück
DATE_FORMAT(expr, format[, locale])

Formatiert expr vom Typ "Datum" basierend auf den Angaben für format und locale (optional). Das Standardgebietsschema ist en-US. Unterstützte Sprachtags.

Unterstützte Datumsformatmuster:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') gibt '2020-10-11' zurück. Das erste Argument ist ein Date-Objekt, das den 11. Oktober 2020 darstellt.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') gibt '2018/junio/17' zurück

DAYOFMONTH(date) Gibt den Tag des Monats für das Datum zurück. DAYOFMONTH('2020-12-25') gibt 25 zurück
DAYOFWEEK(date) Gibt den Tag der Woche für das Datum zurück. DAYOFWEEK('2020-12-25') gibt 6 für Freitag zurück. In den USA gilt der Sonntag als 1, der Montag als 2 usw.
DAYOFYEAR(date) Gibt den Tag des Jahres für das Datum zurück. DAYOFYEAR('2020-12-25') gibt 360 zurück
WEEKOFYEAR(date) Gibt die Woche des Jahres für das Datum zurück.

WEEKOFYEAR('2022-07-28') gibt 30 zurück

WEEKOFYEAR('2022-07-28 13:24:30') gibt 30 zurück

HOUR(datetime) Gibt den Stundenwert für das Datum/die Uhrzeit zurück. HOUR('2020-12-25 15:10:30') gibt 15 zurück
LAST_DAY(date) Gibt den letzten Tag des Monats für das Datum zurück. LAST_DAY('2020-12-25') gibt 31 zurück
MINUTE(datetime) Gibt den Minutenwert für das Datum/die Uhrzeit zurück. HOUR('2020-12-25 15:10:30') gibt 10 zurück
MONTH(date) Gibt den Monatswert für das Datum zurück. MONTH('2020-06-25') gibt 6 zurück
QUARTER(date) Gibt das Quartal des Jahres zurück, in dem das Datum liegt. QUARTER('2020-12-25') gibt 4 zurück
SECOND(datetime) Gibt den Sekundenwert für das Datum/die Uhrzeit zurück. SECOND('2020-12-25 15:10:30') gibt 30 zurück
TO_DATE(string, format_string[, localeStr]) Parst den Zeichenfolgenausdruck mit dem Ausdruck format_string in ein Datum. Das Gebietsschema ist optional. Der Standardwert ist en-US. Unterstützte Sprachtags.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Formatzeichenfolgen (unter Beachtung der Groß-/Kleinschreibung) unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') gibt einen Datumswert von 2016-12-31 zurück

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') gibt einen Datumswert von 2018-06-17 zurück

TO_TIMESTAMP(expr, format_string[, localeStr]) Konvertiert expr vom Typ "VARCHAR" basierend auf den Angaben für format_string und localeStr (optional) in einen TIMESTAMP-Wert.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Formatmuster unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') gibt ein TIMESTAMP-Objekt zurück, das 11am 10:10 Oct 11th, 2020 darstellt
WEEK(date)

Gibt den Wochenwert für das Datum zurück.

WEEK('2020-06-25') gibt 4 zurück
YEAR(date) Gibt den Jahreswert für das Datum zurück. YEAR('2020-06-25') gibt 2020 zurück
ADD_MONTHS(date_expr, number_months) Gibt das Datum nach dem Hinzufügen der angegebenen Anzahl von Monaten zum angegebenen Datum, zum Zeitstempel oder zur Zeichenfolge mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS zurück.

ADD_MONTHS('2017-07-30', 1) gibt 2017-08-30 zurück

ADD_MONTHS('2017-07-30 09:07:21', 1) gibt 2017-08-30 zurück

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Gibt die Anzahl der Monate zwischen start_date_expr und end_date_expr zurück. start_date_expr und end_date_expr können Datumsangaben, Zeitstempel oder Zeichenfolgen mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS sein.

Eine Ganzzahl wird zurückgegeben, wenn beide Datumsangaben denselben Tag im Monat oder den letzten Tag im jeweiligen Monat angeben. Andernfalls wird die Differenz auf Basis von 31 Tagen pro Monat berechnet.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') gibt 1 zurück

MONTHS_BETWEEN('2022-07-28', '2020-07-25') gibt 24 zurück

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') gibt 24 zurück

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interpretiert ein Datum, einen Zeitstempel oder eine Zeichenfolge als UTC-Zeit und konvertiert diese Zeit in einen Zeitstempel in der angegebenen Zeitzone.

Verwenden Sie für eine Zeichenfolge ein Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Das Zeitzonenformat ist entweder eine regionsbasierte Zonen-ID (z.B. "Region/Ort", wie "Asia/Seoul") oder ein Zeitzonenversatz (z.B. UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') gibt 2017-07-14 03:40:00.0 zurück
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Konvertiert ein Datum, einen Zeitstempel oder eine Zeichenfolge in der angegebenen Zeitzone in einen UTC-Zeitstempel.

Verwenden Sie für eine Zeichenfolge ein Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Das Zeitzonenformat ist entweder eine regionsbasierte Zonen-ID (z.B. "Region/Ort", wie "Asia/Seoul") oder ein Zeitzonenversatz (z.B. UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') gibt 2017-07-14 01:40:00.0 zurück
FROM_UNIXTIME(unix_time[, fmt])

Konvertiert die angegebene Unix-Zeit oder -Epoche in eine Zeichenfolge, die den Zeitstempel dieses Zeitpunkts in der aktuellen Systemzeitzone und im angegebenen Format darstellt.

Hinweis: Die Unix-Zeit ist die Anzahl der Sekunden, die seit dem 1. Januar 1970 00:00:00 UTC verstrichen sind.

Wenn fmt ausgelassen wird, lautet das Standardformat yyyy-MM-dd HH:mm:ss.

FROM_UNIXTIME(1255033470) gibt '2009-10-08 13:24:30' zurück

FROM_UNIXTIME(1637258854) gibt '2021-11-18 10:07:34' zurück.

Die Standardzeitzone in den Beispielen ist PST.

UNIX_TIMESTAMP([time_expr[, fmt]])

Konvertiert die aktuelle oder angegebene Zeit in einen Unix-Zeitstempel in Sekunden.

time_expr ist ein Datum, ein Zeitstempel oder eine Zeichenfolge mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Wenn time_expr nicht angegeben wird, wird die aktuelle Uhrzeit konvertiert.

Wenn time_expr eine Zeichenfolge ist und fmt ausgelassen wird, lautet der Standardwert yyyy-MM-dd HH:mm:ss.

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') gibt 28800 zurück

Die Standardzeitzone in diesem Beispiel ist PST.

INTERVAL 'year' YEAR[(year_precision)]

Gibt einen Zeitraum in Jahren zurück.

year_precision ist die Anzahl der Stellen im Feld year. Der Wert muss zwischen 0 und 9 liegen. Wenn year_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '1' YEAR gibt ein Intervall von 1 Jahr zurück

INTERVAL '200' YEAR(3) gibt ein Intervall von 200 Jahren zurück

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Gibt einen Zeitraum in Jahren und Monaten zurück. Verwenden Sie diese Option, um einen Zeitraum mit den Feldern year und month zu speichern.

year_precision ist die Anzahl der Stellen im Feld year. Der Wert muss zwischen 0 und 9 liegen. Wenn year_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '100-5' YEAR(3) TO MONTH gibt ein Intervall von 100 Jahren und 5 Monaten zurück. Sie müssen 3 als führende Gesamtstellenanzahl für das Jahr angeben.
INTERVAL 'month' MONTH[(month_precision)]

Gibt einen Zeitraum in Monaten zurück.

month_precision ist die Anzahl der Stellen im Feld Monat. Der Wert muss 0 bis 9 sein. Wenn month_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '200' MONTH(3) gibt ein Intervall von 200 Monaten zurück. Sie müssen 3 als Gesamtstellenanzahl für den Monat angeben.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Tagen, Stunden, Minuten und Sekunden zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) gibt ein Intervall von 11 Tagen, 10 Stunden, 09 Minuten, 08 Sekunden und 555 Tausendstelsekunden zurück
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Gibt einen Zeitraum in Tagen, Stunden und Minuten zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '11 10:09' DAY TO MINUTE gibt ein Intervall von 11 Tagen, 10 Stunden und 09 Minuten zurück
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Gibt einen Zeitraum in Tagen und Stunden zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

INTERVAL '100 10' DAY(3) TO HOUR gibt ein Intervall von 100 Tagen und 10 Stunden zurück
INTERVAL 'day' DAY[(day_precision)]

Gibt einen Zeitraum in Tagen zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

INTERVAL '999' DAY(3) gibt ein Intervall von 999 Tagen zurück
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Stunden, Minuten und Sekunden zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) gibt ein Intervall von 9 Stunden, 08 Minuten und 7,6666666 Sekunden zurück
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Gibt einen Zeitraum in Stunden und Minuten zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '09:30' HOUR TO MINUTE gibt ein Intervall von 9 Stunden und 30 Minuten zurück
INTERVAL 'hour' HOUR[(hour_precision)]

Gibt einen Zeitraum in Stunden zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

INTERVAL '40' HOUR gibt ein Intervall von 40 Stunden zurück
INTERVAL 'minute' MINUTE[(minute_precision)]

Gibt einen Zeitraum in Minuten zurück.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '15' MINUTE gibt ein Intervall von 15 Minuten zurück
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Minuten und Sekunden zurück.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '15:30' MINUTE TO SECOND gibt ein Intervall von 15 Minuten und 30 Sekunden zurück
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Sekunden zurück.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des Feldes zweite. Er muss zwischen 0 und 9 liegen. Der Standard ist 3.

INTERVAL '15.678' SECOND gibt ein Intervall von 15,678 Sekunden zurück
Analytische Funktionen
Funktion Beschreibung Beispiel
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Gibt den Wert zurück, der in der Zeile ausgewertet wird, die der ersten Zeile des Fensterrahmens entspricht. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) gibt den ersten Wert von BANK_ID in einem Fenster zurück, über das die Zeilen als die aktuelle Zeile und 1 Zeile nach dieser Zeile berechnet werden, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Gibt den Wert zurück, der in der Zeile mit einem bestimmten Offset vor der aktuellen Zeile innerhalb der Partition ausgewertet wird. Wenn keine solche Zeile vorhanden ist, wird der Standardwert zurückgegeben. Sowohl Offset- als auch Standardwert werden in Bezug auf die aktuelle Zeile ausgewertet. Wenn keine Angabe gemacht wird, wird Offset standardmäßig auf 1 und standardmäßig auf NULL gesetzt. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) gibt den Wert von BANK_ID aus der zweiten Zeile vor der aktuellen Zeile zurück, unterteilt nach BANK_ID und in absteigender Reihenfolge von BANK_NAME. Wenn kein solcher Wert vorhanden ist, wird hello zurückgegeben.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Gibt den Wert zurück, der in der Zeile ausgewertet wird, die die letzte Zeile des Fensterrahmens ist. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) gibt den letzten Wert von BANK_ID in einem Fenster zurück, über das die Zeilen als die aktuelle Zeile und 1 Zeile nach dieser Zeile berechnet werden, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Gibt den Wert zurück, der in der Zeile mit einem bestimmten Offset nach der aktuellen Zeile innerhalb der Partition ausgewertet wird. Wenn keine solche Zeile vorhanden ist, wird der Standardwert zurückgegeben. Sowohl Offset- als auch Standardwert werden in Bezug auf die aktuelle Zeile ausgewertet. Wenn keine Angabe gemacht wird, wird Offset standardmäßig auf 1 und standardmäßig auf NULL gesetzt. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt den Wert von BANK_ID aus der zweiten Zeile nach der aktuellen Zeile zurück, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME. Wenn kein solcher Wert vorhanden ist, wird hello zurückgegeben.
RANK() OVER([ partition_clause ] order_by_clause) Gibt den Rang der aktuellen Zeile mit Lücken beginnend mit 1 zurück. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt den Rang der einzelnen Zeilen in der Partitionsgruppe von BANK_ID in aufsteigender Reihenfolge von BANK_NAME zurück.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Gibt die eindeutige Nummer der aktuellen Zeile innerhalb der zugehörigen Partition beginnend mit 1 zurück. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt die eindeutige Zeilennummer der einzelnen Zeilen innerhalb der Partitionsgruppe von BANK_ID in aufsteigender Reihenfolge von BANK_NAME zurück.
Zeichenfolgenfunktionen
FunktionenBeschreibungBeispiel
CAST(value AS type)Gibt den angegebenen Wert im angegebenen Typ zurück.CAST("10" AS INT) gibt 10 zurück
CONCAT(string, string)Gibt die kombinierten Werte von Zeichenfolgen oder Spalten zurück.CONCAT('Oracle','SQL') gibt OracleSQL zurück
CONCAT_WS(separator, expression1, expression2, expression3,...) Gibt die kombinierten Werte von Zeichenfolgen oder Spalten mit dem angegebenen Trennzeichen zwischen den Zeichenfolgen oder Spalten zurück.

Ein Trennzeichen ist erforderlich und muss eine Zeichenfolge sein.

Nach dem Trennzeichen muss mindestens ein Ausdruck angegeben werden. Beispiel: CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') gibt Hello-Oracle zurück

CONCAT_WS(' ', address, city, postal_code) gibt 123 MyCity 987654 zurück

Wenn ein untergeordnetes Element der Funktion ein Array ist, wird das Array vereinfacht:

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) gibt 1,2,3,4,5,6,7,8,9 zurück

INITCAP(string)Gibt die Zeichenfolge so zurück, dass jedes Wort mit einem Großbuchstaben beginnt, die anderen Buchstaben Kleinbuchstaben sind und die einzelnen Wörter durch ein Leerzeichen getrennt werden.INITCAP('oRACLE sql') gibt Oracle Sql zurück
INSTR(string, substring[start_position])Gibt den (1-basierten) Index des ersten Vorkommens von substring in string zurück.INSTR('OracleSQL', 'SQL') gibt 7 zurück
LOWER(string)Gibt die Zeichenfolge zurück, wobei alle Buchstaben in Kleinbuchstaben umgewandelt werden.LOWER('ORACLE') gibt oracle zurück
LENGTH(string)Gibt die Länge der Zeichenfolge in Zeichen oder die Anzahl der Byte von Binärdaten zurück. Nachgestellte Leerzeichen werden mitgezählt.LENGTH('Oracle') gibt 6 zurück
LTRIM(string)Gibt die Zeichenfolge zurück, wobei vorangestellte Leerzeichen von links entfernt werden.LTRIM(' Oracle')
NVL(expr1, epxr2)Gibt das Argument zurück, das nicht Null ist.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Sucht und extrahiert die Zeichenfolge, die einem regulären Ausdrucksmuster aus der Eingabezeichenfolge entspricht. Wenn der optionale Erfassungsgruppenindex angegeben ist, extrahiert die Funktion die spezifische Gruppe.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') gibt https://www.oracle.com zurück

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) gibt 22 zurück
REPLACE(string, search, replacement)Ersetzt alle Vorkommen von search durch replacement.

Wird search nicht in der Zeichenfolge gefunden, wird die Zeichenfolge unverändert zurückgegeben.

Wenn replacement nicht angegeben oder eine leere Zeichenfolge ist, wird search durch nichts ersetzt und aus string entfernt.

REPLACE('ABCabc', 'abc', 'DEF') gibt ABCDEF zurück
RTRIM(string)Gibt die Zeichenfolge zurück, wobei vorangestellte Leerzeichen von rechts entfernt werden.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Gibt die erste Teilzeichenfolge ab der Position zurück. SUBSTRING('Oracle SQL' FROM 2 FOR 3) gibt rac zurück
Für Zahlen, TO_CHAR(expr) und für Datumsangaben TO_CHAR(expr, format[, locale])Konvertiert Zahlen und Datumsangaben in Zeichenfolgen. Für Zahlen ist kein Format erforderlich. Verwenden Sie für Datumsangaben dasselbe Format wie DATE_FORMAT, das unter Datums- und Zeitfunktionen beschrieben wird. Das Standardgebietsschema ist en-US. Siehe unterstützte Sprachtags.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Datumsformatmuster unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

Zahlenbeispiel: TO_CHAR(123) gibt 123 zurück

Datumsbeispiel: TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') gibt die Zeichenfolge 2020.10.30 zurück. Das erste Argument ist ein Datumsobjekt, das für den 30. Oktober 2020 steht.

UPPER(string)Gibt eine Zeichenfolge zurück, wobei alle Buchstaben in Großbuchstaben geändert werden.UPPER('oracle') gibt ORACLE zurück
LPAD(str, len[, pad])Gibt eine Zeichenfolge zurück, die links mit angegebenen Zeichen auf eine bestimmte Länge aufgefüllt wird. Wenn Sie das pad-Zeichen auslassen, wird standardmäßig ein Speicherplatz verwendet.LPAD('ABC', 5, '*') gibt '**ABC' zurück
RPAD(str, len[, pad])Gibt eine Zeichenfolge zurück, die rechts mit angegebenen Zeichen auf eine bestimmte Länge aufgefüllt wird. Wenn Sie das pad-Zeichen auslassen, wird standardmäßig ein Speicherplatz verwendet.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
(Vergleichs-)Operatorfunktionen
FunktionBeschreibungBeispiel
CASE WHEN condition1 THEN result1 ELSE result2 ENDGibt den Wert zurück, für den eine Bedingung erfüllt wird.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END gibt ABC zurück, wenn 1> 0. Andernfalls wird XYZ zurückgegeben
ANDDer logische AND-Operator. Gibt "true" zurück, wenn beide Operanden wahr sind. Andernfalls wird "false" zurückgegeben.(x = 10 AND y = 20) gibt "true" zurück, wenn x gleich 10 und y gleich 20 ist. Wenn einer der Operanden nicht wahr ist, wird "false" zurückgegeben
ORDer logische OR-Operator. Gibt "true" zurück, wenn einer der Operanden wahr ist oder beide wahr sind. Andernfalls wird "false" zurückgegeben.(x = 10 OR y = 20) gibt "false" zurück, wenn x nicht gleich 10 und y nicht gleich 20 ist. Wenn einer der Operanden wahr ist, wird "true" zurückgegeben
NOTDer logische NOT-Operator.
LIKEErmittelt durch Mustervergleich, ob die Zeichenfolge string1 mit dem Muster in string2 übereinstimmt.
=Führt einen Gleichheitstest aus. Gibt "true" zurück, wenn expr1 gleich expr2 ist. Andernfalls wird "false" zurückgegeben.x = 10 gibt "true" zurück, wenn der Wert von x gleich 10 ist. Andernfalls wird "false" zurückgegeben
!=Führt einen Ungleichheitstest aus. Gibt "true" zurück, wenn expr1 nicht gleich expr2 ist. Andernfalls wird "false" zurückgegeben.x != 10 gibt "false" zurück, wenn der Wert von x gleich 10 ist. Andernfalls wird "true" zurückgegeben
>Testet, ob ein Ausdruck "größer als" ist. Gibt "true" zurück, wenn expr1 größer als expr2 ist.x > 10 gibt "true" zurück, wenn der Wert von x größer als 10 ist. Andernfalls wird "false" zurückgegeben
>=Testet, ob ein Ausdruck "größer/gleich" ist. Gibt "true" zurück, wenn expr1 größer als oder gleich expr2 ist.x >= 10 gibt "true" zurück, wenn der Wert von x größer als oder gleich 10 ist. Andernfalls wird "false" zurückgegeben
<Testet, ob ein Ausdruck "kleiner als" ist. Gibt "true" zurück, wenn expr1 kleiner als expr2 ist.x < 10 gibt "true" zurück, wenn der Wert von x kleiner als 10 ist. Andernfalls wird "false" zurückgegeben
<=Testet, ob ein Ausdruck "kleiner/gleich" ist. Gibt "true" zurück, wenn expr1 kleiner oder gleich expr2 ist.x <= 10 gibt "true" zurück, wenn der Wert von x kleiner als 10 ist. Andernfalls wird "false" zurückgegeben
||Verkettet zwei Zeichenfolgen.'XYZ' || 'hello' gibt 'XYZhello' zurück
BETWEENBewertet einen Bereich.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INTestet, ob ein Ausdruck mit einer Werteliste übereinstimmt.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Eindeutige-ID-Funktionen
FunktionBeschreibungBeispiel
NUMERIC_ID()Generiert eine universell eindeutige ID, die eine 64-Bit-Zahl für jede Zeile darstellt.NUMERIC_ID() gibt beispielsweise 3458761969522180096 und 3458762008176885761 zurück
ROWID()Generiert monoton aufsteigende 64-Bit-Zahlen.ROWID() gibt beispielsweise 0, 1, 2 usw. zurück
UUID()Generiert eine universell eindeutige ID, die in einer 128-Bit-Zeichenfolge für jede Zeile besteht.UUID() gibt zum Beispiel 20d45c2f-0d56-4356-8910-162f4f40fb6d zurück
MONOTONICALLY_INCREASING_ID() Generiert eindeutige, monoton aufsteigende 64-Bit-Ganzzahlen, die keine aufeinanderfolgenden Zahlen sind. MONOTONICALLY_INCREASING_ID() gibt beispielsweise 8589934592 und 25769803776 zurück
Bedingungen
FunktionBeschreibungBeispiel
COALESCE(value, value [, value]*)Gibt das erste Nicht-Null-Argument zurück, falls vorhanden. Andernfalls wird Null zurückgegeben.COALESCE(NULL, 1, NULL) gibt 1 zurück
NULLIF(value, value)Gibt Null zurück, wenn die beiden Werte gleich sind. Andernfalls wird der erste Wert zurückgegeben.NULLIF('ABC','XYZ') gibt ABC zurück
Hierarchische Funktionen
FunktionBeschreibungBeispiel
SCHEMA_OF_JSON(string)Parst eine JSON-Zeichenfolge und leitet das Schema im DDL-Format ab.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') gibt 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>' zurück

SCHEMA_OF_JSON('[{\"col\":0}]') gibt 'ARRAY<STRUCT<col: BIGINT>>' zurück

FROM_JSON(column, string)

Parst eine Spalte mit einer JSON-Zeichenfolge in einen der folgenden Typen mit dem angegebenen Schema.

  • Map, mit Zeichenfolge als Schlüsseltyp
  • Struct
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') gibt eine Spalte vom Typ "Struct" mit dem angegebenen Schema zurück: {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') gibt eine Spalte vom Typ "Struct" mit dem angegebenen Schema zurück: {1, 0.8}

TO_JSON(column)Konvertiert eine Spalte vom Typ "Struct" oder "Struct-Array" oder vom Typ "Map" oder "Map-Array" in eine JSON-Zeichenfolge.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) gibt eine JSON-Zeichenfolge {"s1":[1,2,3],"s2":{"key":"value"}} zurück
TO_MAP(string,column[,string,column]*)Erstellt eine neue Spalte vom Typ "Map". Die Eingabespalten müssen als Schlüssel/Wert-Paare gruppiert werden. Die Eingabeschlüsselspalten dürfen nicht Null sein und müssen alle denselben Datentyp aufweisen. Die Eingabewertspalten müssen alle denselben Datentyp aufweisen.

TO_MAP('Ename',Expression_1.attribute1) gibt eine Spalte vom Typ "Map" zurück: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) gibt eine Spalte vom Typ "Map" zurück: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Erstellt eine neue Spalte vom Typ "Struct". Die Eingabespalten müssen als Schlüssel/Wert-Paare gruppiert werden.

TO_STRUCT('Ename',Expression_1.attribute1) gibt {100} zurück

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) gibt {100, "John"} zurück

TO_ARRAY(column[,column]*)Erstellt eine neue Spalte vom Typ "Array". Die Eingabespalten müssen alle denselben Datentyp aufweisen.

TO_Array(Expression_1.attribute1) gibt [100] zurück

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) gibt ["John","Friend"] zurück

Funktionen höherer Ordnung

Datenflussoperatoren, die das Erstellen von Ausdrücken und hierarchischen Datentypen unterstützen, können Funktionen höherer Ordnung verwenden.

Die folgenden Operatoren werden unterstützt:

  • Aggregieren

  • Ausdruck

  • Filter

  • Join

  • Referenz

  • Teilen

  • Drehen

FunktionBeschreibungBeispiel
TRANSFORM(column, lambda_function)Nimmt ein Array und eine anonyme Funktion an. Richten Sie ein neues Array ein, indem Sie die Funktion auf jedes Element anwenden und das Ergebnis dem Ausgabearray zuweisen.Für ein Eingabearray mit Ganzzahlen [1, 2, 3] gibt TRANSFORM(array, x -> x + 1) ein neues Array von [2, 3, 4] zurück.
TRANSFORM_KEYS(column, lambda_function)Nimmt eine Karte und eine Funktion mit 2 Argumenten (Schlüssel und Wert) und gibt eine Karte zurück, in der die Schlüssel den Typ des Ergebnisses der Lambda-Funktion haben und die Werte den Typ der Spaltenzuordnungswerte haben.Bei einer Eingabezuordnung mit Ganzzahlschlüsseln und Zeichenfolgenwerten von {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'} gibt TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) eine neue Zuordnung von {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'} zurück.
TRANSFORM_VALUES(column, lambda_function)Nimmt eine Karte und eine Funktion mit 2 Argumenten (Schlüssel und Wert) und gibt eine Karte zurück, in der die Werte den Typ des Ergebnisses der Lambda-Funktionen haben und die Schlüssel den Typ der Spaltenzuordnungsschlüssel haben. Bei einer Eingabezuordnung mit Zeichenfolgenschlüsseln und Zeichenfolgenwerten von {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'} gibt TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) eine neue Zuordnung von {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'} zurück.
ARRAY_SORT(array(...), lambda_function)

Nur der Ausdrucksoperator unterstützt ARRAY_SORT.

Nimmt ein Array an und sortiert nach der angegebenen Funktion, die 2 Argumente annimmt.

Die Funktion muss -1, 0 oder 1 zurückgeben, je nachdem, ob das erste Element kleiner, gleich oder größer als das zweite Element ist.

Wenn die Funktion ausgelassen wird, wird das Array in aufsteigender Reihenfolge sortiert.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

Das zurückgegebene Array ist:

[1,5,6]
Ausdruck duplizieren

Sie können Ausdrücke duplizieren, die einem Ausdrucksoperator hinzugefügt wurden.

  1. Wählen Sie auf der Datenflussleinwand den Ausdrucksoperator aus.
  2. Prüfen Sie auf der Registerkarte Details des Bereichs Eigenschaften die Liste der Ausdrücke.
  3. Wählen Sie im Menü "Aktionen" (Menü Aktionen) für den Ausdruck, den Sie kopieren möchten, die Option Kopieren aus.
    Es wird kein Bestätigungsdialogfeld angezeigt. Der doppelte Ausdruck wird sofort zur Liste hinzugefügt.
Ausdruck verschieben

Sie können die Reihenfolge der Ausdrücke ändern, die einem Ausdrucksoperator hinzugefügt wurden.

  1. Wählen Sie auf der Datenflussleinwand den Ausdrucksoperator aus.
  2. Prüfen Sie auf der Registerkarte Details des Bereichs Eigenschaften die Liste der Ausdrücke.
  3. Wählen Sie für den Ausdruck, den Sie verschieben möchten, im Menü "Aktionen" die Option Nach oben, Nach unten, Ganz nach oben oder Ganz nach unten aus (Menü Aktionen).
    Je nach aktueller Position des Ausdrucks sind nur relevante Verschiebungsaktionen verfügbar. Beispiel: Nach oben und Ganz oben sind für den ersten Ausdruck in der Liste nicht verfügbar.

Aggregatoperator

Mit dem Aggregatoperator können Sie Berechnungen wie Summe oder Anzahl für alle Zeilen oder eine Gruppe von Zeilen ausführen, um neue, derivative Attribute zu erstellen.

Aggregatoperator hinzufügen und konfigurieren
  1. Ziehen Sie einen aggregierten aus dem Bereich Operatoren auf die Leinwand.
  2. Geben Sie für den ausgewählten Aggregationsoperator im Bereich "Eigenschaften" auf der Registerkarte Details einen Namen in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
  3. Wählen Sie unter Gruppieren nach eine der folgenden Optionen aus:
    • Attribute: Wählen Sie im Menü mindestens ein Attribut aus, nach dem gruppiert werden soll.
    • Muster: Wählen Sie Muster hinzufügen aus, um das Muster hinzuzufügen, nach dem die zu gruppierenden Attribute ausgewählt werden sollen. Sie können ein reguläres Ausdrucksmuster verwenden, um zwei oder mehr Attribute abzugleichen.
    Hinweis

    Die hinzugefügten Ausdrücke werden für jedes ausgewählte Attribut ausgeführt. Die Downstreamattribute enthalten die Attribute, nach denen gruppiert wird, sowie die aus den hinzugefügten Ausdrücken abgeleiteten Attribute.
  4. Wählen Sie unter Ausdrücke die Option Ausdruck hinzufügen aus.
  5. Geben Sie im Feld ID einen Namen für den Aggregatausdruck ein, oder lassen Sie den Namen unverändert.
  6. (Optional) Um die Quellattribute auszuwählen, auf die der Ausdrucksvorgang mit regulären Ausdrucksmustern angewendet werden soll, wählen Sie die Option Bulkauswahl zulassen und dann Muster aus. Beispiel: Sie haben drei Anforderungsattribute im Dataset und möchten die Operatorfunktion SUM auf alle drei Attribute anwenden. Mit einem Muster können Sie diese Gruppe von Quellattributen auswählen.
    1. Geben Sie für Quellattribute den regulären Ausdruck ein, der mit einer Gruppe von Quellattribut in Muster übereinstimmt. Beispiel: Geben Sie *ORDER ein, um die Attribute FIRST_ORDER, LAST_ORDER und FINAL_ORDER abzugleichen.
    2. Wählen Sie dann für Datentyp einen Wert im Menü aus, und füllen Sie die Felder entsprechend dem ausgewählten Typ aus.
    3. Geben Sie unter Zielattribute den regulären Ausdruck ein, der die Zielattributnamen in Muster definiert. Standardmäßig wird $0 als Referenz auf die ursprünglichen Quellattribute eingegeben. Aktualisieren Sie das Muster, um das Zielattribut entsprechend den Anforderungen zu nennen. Beispiel: Geben Sie $0_SUM ein, um den Text SUM an die ursprünglichen Quellattributnamen anzuhängen.
    4. Standardmäßig ist Quellattribut-Datentypen verwenden aktiviert. Sie können die Option aktiviert lassen. Wenn Sie das Kontrollkästchen Quellattribut-Datentypen verwenden deaktivieren, wählen Sie einen Datentyp aus, und füllen Sie die Felder entsprechend dem ausgewählten Typ aus.
  7. (Optional) Wenn Sie Bulkauswahl zulassen nicht ausgewählt haben, können Sie in Ausdrucksdatentyp die Option Datentyp ableiten auswählen, wenn der Ausdruck Builder den Datentyp aus dem von Ihnen eingegebenen Ausdruck ermitteln soll. Sie können auf die Optionen Datentypvorschau anzeigen und Validieren klicken, um den Datentyp in der Vorschau anzuzeigen, zu aktualisieren und den Ausdruck auf zu validieren.

    Das Ableiten des Datentyps durch den Builder ist nützlich, wenn Sie mit komplexen Datentypen wie Map, Array und Struct arbeiten, die Ebenen von Nested Types aufweisen können.

  8. Wenn Sie die Option Bulkauswahl zulassen nicht ausgewählt haben, wählen Sie unter Datentyp einen Wert im Menü aus, und füllen Sie dann die entsprechenden Felder gemäß dem ausgewählten Typ aus.
  9. (Optional) Unter Ausdrucksdatentyp können Sie Datentyp abfragen auswählen, wenn der Expression Builder den Datentyp aus dem eingegebenen Ausdruck ermitteln soll. Sie können auf die Optionen Datentypvorschau anzeigen und Validieren klicken, um den Datentyp in der Vorschau anzuzeigen, zu aktualisieren und den Ausdruck auf zu validieren.

    Das Ableiten des Datentyps durch den Builder ist nützlich, wenn Sie mit komplexen Datentypen wie Map, Array und Struct arbeiten, die Ebenen von Nested Types aufweisen können.

  10. Wenn Sie die Optionen Bulkauswahl zulassen und Datentyp ableiten nicht ausgewählt haben, wählen Sie im Menü Datentyp einen Wert aus, und füllen Sie dann die Felder entsprechend dem ausgewählten Typ aus.
  11. Im Abschnitt Expression Builder können Sie einen Ausdruck visuell erstellen, indem Sie auf eingehende Attribute, Parameter oder Funktionen doppelklicken oder diese zum Editor ziehen, um den Ausdruck zu erstellen. Sie können den Ausdruck auch selbst manuell schreiben. Sie können den Ausdruck auch validieren.

    Wenn Sie Bulkauswahl zulassen ausgewählt haben, geben Sie mit %MACRO_INPUT% im Ausdruck die Attribute an, auf die die Funktion angewendet werden soll. Beispiel: Sie haben das Muster *NAME zum Abgleich der Quellattribute FIRST_NAME, LAST_NAME und FULL_NAME verwendet. Jetzt können Sie eine Funktion als UPPER(%MACRO_INPUT%) angeben, damit die Funktion auf alle Attribute angewendet wird, die dem Muster entsprechen.

    Wenn Sie eingehende Attribute aus der Ausgabe dieses Ausdrucks ausschließen möchten, aktivieren Sie das Kontrollkästchen Eingehende Attribute ausschließen. Fügen Sie dann über das Menü die eingehenden Attribute hinzu, die Sie aus der Ausgabe ausschließen möchten. Auf jedes Attribut, das Sie ausschließen möchten, wird eine Ausschlussregel angewendet. Sie können Attribute nur ausschließen, wenn Sie den Ausdruck zum ersten Mal hinzufügen. Wenn Sie den Ausdruck bearbeiten, ist das Kontrollkästchen Eingehende Attribute ausschließen nicht verfügbar.

    Hinweis

    Um einen Platzhalter in einer Funktion durch ein anderes Element zu ersetzen, markieren Sie den Platzhalter, und doppelklicken Sie dann auf ein anderes Element in der Liste, um es der Funktion hinzuzufügen.
  12. Wählen Sie Hinzufügen aus.
    Sie können die Schritte ab Schritt 4 wiederholen, um weitere Ausdrücke hinzuzufügen.
  13. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Um nach dem Namensmuster "*_CODE" und nach dem Typ "Numerisch" oder "varchar" zu filtern, wenden Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (numerisch, varchar) an.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  14. Zeigen Sie auf der Registerkarte Daten ein Sample der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben. Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.
  15. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.
Aggregatausdruck hinzufügen

Mit dem Expression Builder können Sie Elemente visuell auswählen, um einen Ausdruck im Editor zu erstellen. Sie können einen Ausdruck auch selbst manuell schreiben.

Der Bereich "Ausdruck hinzufügen" umfasst zwei Abschnitte: Informationen zu Ausdrücken und Expression Builder. Mit den Feldern im Abschnitt Informationen zu Ausdrücken können Sie einen Namen und Datentyp für den Ausdruck angeben. Sie können den Ausdruck auch so erstellen, dass er auf zwei oder mehr Attribute angewendet wird. Wenn Sie mit komplexen Datentypen wie "Map", "Array" und "Struct" arbeiten, die eventuell Ebenen verschachtelter Typen aufweisen, können Sie festlegen, dass der Builder den Datentyp aus dem eingegebenen Ausdruck erkennt. Wenn der Builder den Datentyp ableitet, können Sie den Datentyp in der Vorschau anzeigen und aktualisieren und den Ausdruck validieren.

Im Abschnitt Expression Builder werden die Elemente aufgeführt, mit denen Sie einen Ausdruck erstellen können. Die Elemente, die Sie in einem Ausdruck verwenden können, umfassen eingehende Attribute, Parameter und Funktionen. Doppelklicken Sie auf ein Element, oder ziehen Sie es aus der Liste, um es dem Editor hinzuzufügen und den Ausdruck zu erstellen, oder schreiben Sie den Ausdruck selbst manuell. Sie können den Ausdruck vor dem Erstellen validieren.

Unter Eingehend werden die Attribute des vorgelagerten Operators angezeigt, die bei diesem Ausdrucksoperator kommen. Unter der Attributliste befindet sich ein Kontrollkästchen, mit dem Sie Ausschlussregeln anwenden können. Wenn Sie eingehende Attribute aus der Ausgabe dieses Ausdrucks ausschließen möchten, aktivieren Sie das Kontrollkästchen Eingehende Attribute ausschließen. Fügen Sie dann über das Menü die eingehenden Attribute hinzu, die Sie aus der Ausgabe ausschließen möchten. Auf jedes Attribut, das Sie ausschließen möchten, wird eine Ausschlussregel angewendet. Sie können Attribute nur ausschließen, wenn Sie den Ausdruck zum ersten Mal hinzufügen. Wenn Sie den Ausdruck bearbeiten, ist das Kontrollkästchen Eingehende Attribute ausschließen nicht verfügbar.

Parameter sind die Ausdrucksparameter, die dem Datenfluss mit dem Condition Builder (Filter-, Join-, Lookup- und Aufteilungsoperatoren) oder Expression Builder (Ausdrucks- und Aggregatoperatoren) hinzugefügt wurden. Ein Ausdrucksparameter hat einen Namen, einen Typ und einen Standardwert. Siehe Ausdrucksparameter hinzufügen.

Funktionen sind Vorgänge, die für an die Funktion übergebene Argumente ausgeführt werden. Funktionen berechnen, bearbeiten oder extrahieren Datenwerte aus Argumenten. Im Folgenden finden Sie eine Liste der Funktionen, mit denen Sie Ausdrücke erstellen können:

Aggregatfunktionen
FunktionBeschreibungBeispiel
COUNT(value[, value]*)Gibt die Anzahl der Zeilen zurück, für die mindestens ein angegebener Ausdruck nicht Null ist.COUNT(expr1)
COUNT(*)Gibt die Gesamtanzahl der abgerufenen Zeilen zurück, einschließlich Zeilen, die Null enthalten.COUNT(*)
MAX(value)Gibt den Höchstwert des Arguments zurück.MAX(expr)
MIN(value)Gibt den Mindestwert des Arguments zurück.MIN(expr)
SUM(numeric)Gibt die aus Werten einer Gruppe berechnete Summe zurück.SUM(expr1)
AVG(numeric)Gibt den Durchschnitt numerischer Werte in einem Ausdruck zurück.AVG(AGGREGATE_1.src1.attribute1)
LISTAGG(column[, delimiter]) WITHIN GROUP (order_by_clause)

Verkettet Werte der Eingabespalte mit dem angegebenen Begrenzungszeichen für jede Gruppe basierend auf der Order-Klausel.

column enthält die Werte, die Sie im Ergebnis verketten möchten.

Das Trennzeichen trennt die column-Werte im Ergebnis. Wenn Sie kein Begrenzungszeichen angeben, wird ein leeres Zeichen verwendet.

order_by_clause bestimmt die Reihenfolge, in der die verketteten Werte zurückgegeben werden.

Diese Funktion kann nur als Aggregator und mit oder ohne Gruppierung verwendet werden. Bei Verwendung ohne Gruppierung ist das Ergebnis eine einzelne Zeile. Wenn Sie eine Gruppierung verwenden, gibt die Funktion eine Zeile für jede Gruppe zurück.

Sie verwenden eine Tabelle mit zwei Spalten: id und name. Die Tabelle enthält drei Zeilen. Die Werte der Spalte id lauten 101, 102, 102. Die Werte der Spalte name sind A, B, C.

+-----+--------+
| id  | name  |
+-----+--------+
| 101 | A     |
+-----+--------+
| 102 | B     |
+-----+--------+
| 102 | C     |
+-----+--------+

Beispiel 1: Ohne Gruppierung

LISTAGG(id, '-') WITHIN GROUP (ORDER BY id) gibt die Spalte name mit dem Wert A-B-C zurück.

+--------+
| name   |
+--------+
| A-B-C  |
+--------+

Beispiel 2: Gruppierung nach id

LISTAGG(id, '-') WITHIN GROUP (ORDER BY id) gibt die Spalte name mit den Werten A und B-C in zwei Gruppen zurück.

+--------+
| name   |
+--------+
| A      |
+--------+
| B-C    |
+--------+
Funktionen höherer Ordnung

Datenflussoperatoren, die das Erstellen von Ausdrücken und hierarchischen Datentypen unterstützen, können Funktionen höherer Ordnung verwenden.

Die folgenden Operatoren werden unterstützt:

  • Aggregieren

  • Ausdruck

  • Filter

  • Join

  • Referenz

  • Teilen

  • Drehen

FunktionBeschreibungBeispiel
TRANSFORM(column, lambda_function)Nimmt ein Array und eine anonyme Funktion an. Richten Sie ein neues Array ein, indem Sie die Funktion auf jedes Element anwenden und das Ergebnis dem Ausgabearray zuweisen.Für ein Eingabearray mit Ganzzahlen [1, 2, 3] gibt TRANSFORM(array, x -> x + 1) ein neues Array von [2, 3, 4] zurück.
TRANSFORM_KEYS(column, lambda_function)Nimmt eine Karte und eine Funktion mit 2 Argumenten (Schlüssel und Wert) und gibt eine Karte zurück, in der die Schlüssel den Typ des Ergebnisses der Lambda-Funktion haben und die Werte den Typ der Spaltenzuordnungswerte haben.Bei einer Eingabezuordnung mit Ganzzahlschlüsseln und Zeichenfolgenwerten von {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'} gibt TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) eine neue Zuordnung von {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'} zurück.
TRANSFORM_VALUES(column, lambda_function)Nimmt eine Karte und eine Funktion mit 2 Argumenten (Schlüssel und Wert) und gibt eine Karte zurück, in der die Werte den Typ des Ergebnisses der Lambda-Funktionen haben und die Schlüssel den Typ der Spaltenzuordnungsschlüssel haben. Bei einer Eingabezuordnung mit Zeichenfolgenschlüsseln und Zeichenfolgenwerten von {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'} gibt TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) eine neue Zuordnung von {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'} zurück.
ARRAY_SORT(array(...), lambda_function)

Nur der Ausdrucksoperator unterstützt ARRAY_SORT.

Nimmt ein Array an und sortiert nach der angegebenen Funktion, die 2 Argumente annimmt.

Die Funktion muss -1, 0 oder 1 zurückgeben, je nachdem, ob das erste Element kleiner, gleich oder größer als das zweite Element ist.

Wenn die Funktion ausgelassen wird, wird das Array in aufsteigender Reihenfolge sortiert.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

Das zurückgegebene Array ist:

[1,5,6]

Eindeutiger Operator

Mit dem eindeutigen Operator werden nur verschiedene Zeilen zurückgegeben, deren Werte sich unterscheiden.

Eindeutigen Operator hinzufügen und konfigurieren
  1. Ziehen Sie im Bereich Operatoren einen Operator vom Typ Eindeutig auf die Leinwand.
  2. Geben Sie für den ausgewählten eindeutigen Operator im Bereich "Eigenschaften" auf der Registerkarte Details einen Namen in das Feld ID ein, oder übernehmen Sie den Namen unverändert.

    Die Konfigurationen der Registerkarte "Details" werden standardmäßig für den eindeutigen Operator festgelegt.

  3. Um die Ausgabe des Operators anzuzeigen, wählen Sie die Registerkarte Daten aus.
    Eindeutige Zeilen mit eindeutigen Werten werden angezeigt. Sie können auch Transformationen auf die Daten anwenden oder ein Attribut auswählen, um ein Datenprofil oder ein Attributprofil anzuzeigen. Erfahren Sie mehr über Datentransformationen.
  4. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an. Der eindeutige Operator kann nur für die gefilterten Attribute verwendet werden und gibt eindeutige Zeilen mit eindeutigen Werten aus.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Wenn Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (Numerisch, varchar) anwenden, werden die Attribute nach dem Namensmuster *_CODE und dem Typ "Numerisch" oder "varchar" gefiltert.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  5. Zeigen Sie auf der Registerkarte Daten ein Sampling der Daten basierend auf den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  6. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.

Sortieroperator

Mit dem Sortieroperator können Sie Daten in auf- oder absteigender Reihenfolge sortieren.

Wenn Sie einen Sortieroperator verwenden, sollten Sie den Sortieroperator anwenden, nachdem Sie andere Operatoren angewendet haben. Dadurch wird sichergestellt, dass der Sortieroperator unmittelbar vor dem Zieloperator bleibt, sodass Daten in einer bestimmten Reihenfolge in das Ziel eingefügt werden können.

Sortieroperator hinzufügen und konfigurieren

Wenn Sie einen Sortieroperator verwenden, wenden Sie den Sortieroperator nach anderen Modellierungsoperatoren und vor dem Operator an, der eine Sortierung von Daten erfordert.

Beispiel: Wenden Sie den Sortieroperator vor einem Zieloperator an, um Daten in einer bestimmten Sortierreihenfolge im Ziel einzufügen.

  1. Ziehen Sie einen Operator vom Typ Sortieren aus dem Bereich Operatoren auf die Leinwand.
  2. Geben Sie für den ausgewählten Sortieroperator im Bereich "Eigenschaften" auf der Registerkarte Details einen Namen in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
  3. Wählen Sie im Abschnitt Sortierbedingungen die Option Hinzufügen aus.

    Im Bereich "Sortierbedingung hinzufügen" werden alle Attributfelder angezeigt, die aus der Quelltabelle abgerufen wurden.

  4. Wählen Sie im Bereich Sortierbedingung hinzufügen das Attribut aus, nach dem die Daten sortiert werden sollen.
  5. Um Attribute mithilfe von Namensmustern zu filtern, geben Sie ein Namensmuster ein, z.B. *CITY*.
  6. Wählen Sie unter Sortierfolge die Option Aufsteigend oder Absteigend aus, und wählen Sie Hinzufügen aus.

    Jede hinzugefügte Bedingung wird in der Liste der Sortierbedingungen angezeigt.

    Hinweis

    Sie können mehrere Sortierbedingungen nacheinander hinzufügen. Die Sortierung erfolgt basierend auf der Reihenfolge der Sortierbedingungen in der Liste. Beispiel: Die Sortierung beginnt basierend auf der ersten Bedingung in der Liste. Anschließend werden die sortierten Daten basierend auf der zweiten Bedingung erneut sortiert usw.

    Beim Datentyp "Zeichenfolge" wird der Sortiervorgang basierend auf der lexikografischen Ordnung ausgeführt.

  7. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Um nach dem Namensmuster "*_CODE" und nach dem Typ "Numerisch" oder "varchar" zu filtern, wenden Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (numerisch, varchar) an.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  8. Zeigen Sie auf der Registerkarte Daten ein Sampling der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  9. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.
Sortierbedingungen hinzufügen

Nachdem Sie einen Sortieroperator auf der Leinwand hinzugefügt und mit einem anderen Operator verbunden haben, können Sie eine Sortierbedingung hinzufügen.

Im Bereich "Sortierbedingung hinzufügen" können Sie Attribute zum Sortieren aus den aufgeführten Feldern auswählen oder Attributnamen anhand von Mustern filtern. Beim Datentyp "Zeichenfolge" wird der Sortiervorgang basierend auf der lexikografischen Ordnung ausgeführt.

So fügen Sie Sortierbedingungen hinzu:

  1. Gehen Sie in der Registerkarte Details zum Abschnitt Sortierbedingungen, und wählen Sie Hinzufügen aus.

    Im Bereich "Sortierbedingung hinzufügen" werden alle Attributfelder angezeigt, die aus der Quelltabelle abgerufen wurden.

  2. Wählen Sie im Bereich Sortierbedingung hinzufügen das Attribut aus, nach dem die Daten sortiert werden sollen.
  3. Um Attribute mithilfe von Namensmustern zu filtern, geben Sie ein Namensmuster ein, z.B. *CITY*.
  4. Wählen Sie unter Sortierfolge die Option Aufsteigend oder Absteigend aus, und wählen Sie Hinzufügen aus.

    Jede hinzugefügte Bedingung wird in der Liste der Sortierbedingungen angezeigt.

    Hinweis

    Sie können mehrere Sortierbedingungen nacheinander hinzufügen. Die Sortierung erfolgt basierend auf der Reihenfolge der Sortierbedingungen in der Liste. Beispiel: Die Sortierung erfolgt zuerst basierend auf der ersten Bedingung in der Liste. Anschließend werden die sortierten Daten basierend auf der zweiten Bedingung erneut sortiert und so weiter.
Sortierbedingungen priorisieren

Verschieben Sie die Sortierbedingungen in der Liste nach oben oder nach unten, um die Sortierung zu priorisieren.

Wenn Sie die Sortierbedingungen nach oben oder unten verschieben, können Sie zuerst nach einer Bedingung mit hoher Priorität sortieren und dann die sortierten Daten nach der nächsten Bedingung in der Liste erneut sortieren. Beispiel: Um zuerst nach Adresse und dann nach PLZ zu sortieren, verschieben Sie die Sortierbedingung mit der Adresse an den Anfang.

So priorisieren Sie Sortierbedingungen:

  1. Gehen Sie auf der Registerkarte Details zum Abschnitt Sortierbedingungen.
  2. Klicken Sie auf das Menü "Aktionen" (Menü "Aktionen"), das der Sortierbedingung entspricht, nach oben oder nach unten verschoben werden soll.
  3. Damit eine Sortierbedingung zuerst angewendet wird, wählen Sie Nach oben aus.
  4. Damit eine Sortierbedingung später angewendet wird, wählen Sie Nach unten aus.
    Die Sortierung wird zuerst auf die nach oben verschobene Bedingung und dann auf die nach unten verschobene Bedingung angewendet.
Sortierbedingungen bearbeiten

So bearbeiten Sie Sortierbedingungen:

  1. Gehen Sie auf der Registerkarte Details zum Abschnitt Sortierbedingungen.
  2. Wählen Sie das Menü "Aktionen" (Menü "Aktionen") für die Sortierbedingung, die Sie ändern möchten, und dann Bearbeiten aus.
  3. Wählen Sie im Bereich Sortierbedingung bearbeiten das neue Attribut aus, oder filtern Sie die Attribute, indem Sie ein Namensmuster eingeben.
    Die bereits ausgewählten Attribute oder Muster einschließlich der zugehörigen Attribute können nicht mehr ausgewählt werden.
Sortierbedingungen löschen

Sie können Sortierbedingungen einzeln oder in einem Bulkvorgang löschen.

So löschen Sie Sortierbedingungen:

  1. Gehen Sie auf der Registerkarte Details zum Abschnitt Sortierbedingungen.
  2. Wenn Sie Sortierbedingungen nacheinander löschen möchten, wählen Sie das Menü "Aktionen" (Menü "Aktionen") aus, das der zu löschenden Sortierbedingung entspricht.
  3. Wenn Sie mehrere Sortierbedingungen löschen möchten, aktivieren Sie die entsprechenden Kontrollkästchen, und wählen Sie oben in der Liste die Option Löschen aus.

Vereinigungsmengenoperator

Mit dem Gewerkschaftsoperator können Sie einen Gewerkschaftsvorgang zwischen zwei oder mehr Datasets ausführen.

Vereinigungsmengentypen

Sie können einen Vereinigungsmengenvorgang für bis zu zehn Quelloperatoren ausführen. Sie müssen mindestens zwei Quelleingaben konfigurieren. Sie können den Vereinigungsmengenvorgang ausführen, indem Sie Attributnamen für die Quelleingabeattribute abgleichen, oder Sie können die Attribute nach ihrer Attributposition abgleichen.

Vereinigungsmenge nach Attributname

Sehen Sie sich die folgenden beiden Beispiele für Datenentitys an. Datenentity 1 wird als primäre Eingabe festgelegt. Die resultierende Datenentity zeigt, wie die Daten aus den beiden Eingaben bei einem Vorgang "Vereinigungsmenge nach Name" kombiniert werden. Die resultierende Datenentity verwendet den Attributnamen, die Reihenfolge und den Datentyp aus der Datenentity mit der primären Eingabe.

Datenentity 1, primäre Eingabe
Abteilung LOCATION-ID Warehouse
IT 1400 San Francisco
Versand 1500 Southlake, Texas
Buchhaltung 1700 New Jersey
Datenentity 2
Warehouse LOCATION-ID Abteilung
Denver 1600 Leistungen
New York 1400 Bau
Resultierende Datenentity
Abteilung LOCATION-ID Warehouse
IT 1400 San Francisco
Versand 1500 Southlake, Texas
Buchhaltung 1700 New Jersey
Leistungen 1600 Denver
Bau 1400 New York
Vereinigungsmenge nach Attributposition

Sehen Sie sich die folgenden beiden Beispiele für Datenentitys an. Datenentity 2 wird als primäre Eingabe festgelegt. Die resultierende Datenentity zeigt, wie die Daten aus den beiden Eingaben bei einem Vorgang "Vereinigungsmenge nach Position" kombiniert werden. Die resultierende Datenentity verwendet den Attributnamen, die Reihenfolge und den Datentyp aus der Datenentity mit der primären Eingabe.

Datenentity 1
Abteilung LOCATION-ID Warehouse
IT 1400 San Francisco
Versand 1500 Southlake, Texas
Buchhaltung 1700 New Jersey
Datenentity 2, primäre Eingabe
Warehouse LOCATION-ID Abteilung
Denver 1600 Leistungen
New York 1400 Bau
Resultierende Datenentity
Warehouse LOCATION-ID Abteilung
Denver 1600 Leistungen
New York 1400 Bau
IT 1400 San Francisco
Versand 1500 Southlake, Texas
Buchhaltung 1700 New Jersey
Vereinigungsmengenoperator hinzufügen und konfigurieren
  1. Um dem Datenfluss einen Gewerkschaftsoperator hinzuzufügen, ziehen Sie den Operator vom Typ Union aus dem Bereich Operatoren auf die Leinwand. Sie können den Vereinigungsmengenvorgang für bis zu zehn Datenquellen ausführen.
    Die Registerkarte Details für den Vereinigungsmengenoperator wird im Bereich "Eigenschaften" angezeigt.
  2. Geben Sie auf der Registerkarte Details einen Namen für diesen Gewerkschaftsvorgang in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
  3. Geben Sie im Feld Eingabeattribute abgleichen nach an, wie der Gewerkschaftsvorgang ausgeführt werden soll. Sie können eine der beiden folgenden Optionen auswählen:
    • Name: Die Attributnamen aus den Quellen werden zur Ausführung des Gewerkschaftsvorgangs zugeordnet. Die Attributnamen und Datentypen sowie die Anzahl der Attribute in den Eingaben müssen identisch sein. Beim Abgleich wird die Groß-/Kleinschreibung beachtet. In den Beispielen wird die Funktionsweise des Vereinigungsmengenvorgangs nach Name beschrieben.
    • Position: Die Attribute aus den Quellen werden basierend auf ihren Positionen abgeglichen. Die Anzahl der Attribute und die Attributdatentypen in den Eingaben müssen identisch sein. In den Beispielen wird die Funktionsweise des Vereinigungsmengenvorgangs nach Position beschrieben.
  4. Aktivieren Sie für Einheit alle das Kontrollkästchen, wenn der Vorgang alle Zeilen aus allen verbundenen Datenentitys zurückgeben soll, ohne Duplikate zu entfernen.
  5. Wählen Sie unter Primäre Eingabe die Quelle aus, die beim Vereinigungsmengenvorgang als Schlüsselquelle betrachtet werden soll. Anhand dieser primären Eingabe werden die Attributnamen, die Attributdatentypen und die Attributreihenfolge für die resultierenden Attribute aus dem Vereinigungsmengenvorgang bestimmt. Standardmäßig wird die erste Quelle, die dem Datenfluss hinzugefügt wird, als primäre Eingabe festgelegt.
  6. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Wenn Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (Numerisch, varchar) anwenden, werden die Attribute nach dem Namensmuster *_CODE und dem Typ "Numerisch" oder "varchar" gefiltert.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  7. Zeigen Sie auf der Registerkarte Daten ein Sampling der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  8. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.

Minusoperator

Mit dem Minusoperator können Sie zwei Datenentitys vergleichen und die Zeilen zurückgeben, die in einer Entity, aber nicht in der anderen Entity vorhanden sind.

Sie können auswählen, ob doppelte Zeilen in den resultierenden Daten beibehalten oder entfernt werden sollen.

Minustypen

Sie können einen Minusvorgang nur für zwei Quelloperatoren ausführen. Sie können den Minusvorgang ausführen, indem Sie Attributnamen für die Quelleingabeattribute abgleichen, oder Sie können die Attribute nach ihrer Attributposition abgleichen.

Minus nach Attributname

Sehen Sie sich die folgenden beiden Beispiele für Datenentitys an. Datenentity 1 wird als primäre Eingabe festgelegt. Die resultierende Datenentity zeigt, wie die Daten aus den beiden Eingaben bei einem Vorgang "Minus nach Name" subtrahiert werden. Die resultierende Datenentity verwendet den Attributnamen, die Reihenfolge und den Datentyp aus der Datenentity mit der primären Eingabe.

Datenentity 1, primäre Eingabe
AbteilungLOCATION-IDWarehouse
IT1400San Francisco
Versand1500Austin
Buchhaltung1700New Jersey
Datenentity 2
AbteilungWarehouseLOCATION-ID
LeistungenDenver1600
ITSan Francisco1400
Resultierende Datenentity
AbteilungLOCATION-IDWarehouse
Versand1500Austin
Buchhaltung1700New Jersey
Minus nach Attributposition

Sehen Sie sich die folgenden beiden Beispiele für Datenentitys an. Datenentity 2 wird als primäre Eingabe festgelegt. Die resultierende Datenentity zeigt, wie die Daten aus den beiden Eingaben bei einem Vorgang "Minus nach Position" subtrahiert werden. Die resultierende Datenentity verwendet den Attributnamen, die Reihenfolge und den Datentyp aus der Datenentity mit der primären Eingabe.

Datenentity 1
AbteilungLOCATION-IDWarehouse
IT1400San Francisco
Versand1500Austin
Buchhaltung1700New Jersey
Datenentity 2, primäre Eingabe
AbteilungsnameStandortWarehouse-Ort
Leistungen1600Denver
IT1400San Francisco
Resultierende Datenentity
AbteilungsnameStandortWarehouse-Ort
Leistungen1600Denver
Minusoperator hinzufügen und konfigurieren
  1. Um dem Datenfluss einen Minusoperator hinzuzufügen, ziehen Sie den Operator vom Typ Minus aus dem Bereich Operatoren auf die Leinwand.
    Die Registerkarte Details für den Minusoperator wird im Bereich "Eigenschaften" angezeigt.
  2. Geben Sie auf der Registerkarte Details einen Namen für diesen Minusvorgang in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
  3. Geben Sie im Feld Eingabeattribute vergleichen nach an, wie der Minusvorgang ausgeführt werden soll. Sie können eine der beiden folgenden Optionen auswählen:
    • Name: Die Attributnamen aus den Quellen werden zur Ausführung des minus. Die Attributnamen und Datentypen sowie die Anzahl der Attribute in den Eingaben müssen identisch sein. Beim Abgleich wird die Groß-/Kleinschreibung beachtet. In den Beispielen wird die Funktionsweise des Minusvorgangs nach Name beschrieben.
    • Position: Die Attribute aus den Quellen werden basierend auf ihren Positionen abgeglichen. Die Anzahl der Attribute und die Attributdatentypen in den Eingaben müssen identisch sein. In den Beispielen wird die Funktionsweise des Minusvorgangs nach Position beschrieben.
  4. Aktivieren Sie für Minus alle das Kontrollkästchen, wenn der Vorgang alle Zeilen in einer Datenentity zurückgeben soll, die in der anderen Datenentity nicht vorhanden sind, ohne Duplikate zu entfernen.
  5. Wählen Sie unter Primäre Eingabe die Quelle aus, die als primäre Quelle für den Minusvorgang verwendet werden soll. Anhand der primären Eingabe werden die Attributnamen, die Attributdatentypen und die Attributreihenfolge in der resultierenden Ausgabe bestimmt. Standardmäßig wird die erste Quelle, die mit dem Minusoperator verbunden ist, als primäre Eingabe festgelegt.
    Symbol Primäre Eingabe Beschreibung
    Venn-Diagramm für linken Outer Join Links minus Wählt alle verbleibenden eindeutigen Zeilen aus der eingehenden Quelle 1 aus, nachdem die mit der eingehenden Quelle 2 übereinstimmenden Zeilen entfernt wurden.
    Venn-Diagramm für rechten Outer Join Rechts minus Wählt alle verbleibenden eindeutigen Zeilen aus der eingehenden Quelle 2 aus, nachdem die mit der eingehenden Quelle 1 übereinstimmenden Zeilen entfernt wurden.
  6. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Wenn Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (Numerisch, varchar) anwenden, werden die Attribute nach dem Namensmuster *_CODE und dem Typ "Numerisch" oder "varchar" gefiltert.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  7. Zeigen Sie auf der Registerkarte Daten ein Sampler der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  8. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.

Schnittmengenoperator

Mit dem Schnittmengenoperator können Sie zwei oder mehr Datenentitys vergleichen und die Zeilen zurückgeben, die in den verbundenen Entitys vorhanden sind.

Sie können auswählen, ob doppelte Zeilen in den resultierenden Daten beibehalten oder entfernt werden sollen.

Schnittmengentypen

Sie können einen Schnittmengenvorgang für zwei oder mehr Quelloperatoren ausführen. Sie können den Vorgang ausführen, indem Sie Attributnamen für die Quelleingabeattribute abgleichen, oder Sie können die Attribute nach ihrer Attributposition abgleichen.

Schnittmenge nach Attributname

Sehen Sie sich die folgenden beiden Beispiele für Datenentitys an. Datenentity 1 wird als primäre Eingabe festgelegt. Die resultierende Datenentity zeigt, wie für die Daten aus den beiden Eingaben die Schnittmenge nach Attributname gebildet wird. Die resultierende Datenentity verwendet den Attributnamen, die Reihenfolge und den Datentyp aus der Datenentity mit der primären Eingabe.

Datenentity 1, primäre Eingabe
AbteilungLOCATION-IDWarehouse
IT1400San Francisco
Versand1500Austin
Buchhaltung1700New Jersey
Datenentity 2
AbteilungWarehouseLOCATION-ID
LeistungenDenver1600
ITSan Francisco1400
Resultierende Datenentity
AbteilungLOCATION-IDWarehouse
IT1400San Francisco
Schnittmenge nach Attributposition

Sehen Sie sich die folgenden beiden Beispiele für Datenentitys an. Datenentity 2 wird als primäre Eingabe festgelegt. Die resultierende Datenentity zeigt, wie für die Daten aus den beiden Eingaben die Schnittmenge nach Attributposition gebildet wird. Die resultierende Datenentity verwendet den Attributnamen, die Reihenfolge und den Datentyp aus der Datenentity mit der primären Eingabe.

Datenentity 1
AbteilungLOCATION-IDWarehouse
IT1400San Francisco
Versand1500Austin
Buchhaltung1700New Jersey
Datenentity 2, primäre Eingabe
AbteilungsnameStandortWarehouse-Ort
Leistungen1600Denver
IT1400San Francisco
Resultierende Datenentity
AbteilungsnameStandortWarehouse-Ort
IT1400San Francisco
Schnittmengenoperator hinzufügen und konfigurieren
  1. Um dem Datenfluss einen Intersect-Operator hinzuzufügen, ziehen Sie den Operator Intersect aus dem Bereich Operatoren auf die Leinwand.
    Die Registerkarte Details für den Schnittmengenoperator wird im Bereich "Eigenschaften" angezeigt.
  2. Geben Sie auf der Registerkarte Details einen Namen für diesen Schnittmengenvorgang in das Feld ID ein, oder übernehmen Sie den Namen wie angegeben.
  3. Geben Sie im Feld Eingabeattribute vergleichen nach an, wie der Schnittmengenvorgang ausgeführt werden soll. Sie können eine der beiden folgenden Optionen auswählen:
    • Name: Die Attributnamen aus den Quellen werden zur Ausführung des Kreuzungsvorgangs abgeglichen. Die Attributnamen und Datentypen sowie die Anzahl der Attribute in den Eingaben müssen identisch sein. Beim Abgleich wird die Groß-/Kleinschreibung beachtet. In den Beispielen wird die Funktionsweise des Schnittmengenvorgangs nach Name beschrieben.
    • Position: Die Attribute aus den Quellen werden basierend auf ihren Positionen abgeglichen. Die Anzahl der Attribute und die Attributdatentypen in den Eingaben müssen identisch sein. In den Beispielen wird die Funktionsweise des Schnittmengenvorgangs nach Position beschrieben.
  4. Aktivieren Sie unter Schnittstellen alle das Kontrollkästchen, wenn der Vorgang alle Zeilen in der resultierenden Ausgabe zurückgeben soll, ohne Duplikate zu entfernen.
  5. Wählen Sie unter Primäre Eingabe die Quelle aus, die als primäre Quelle für den Schnittmengenvorgang verwendet werden soll. Anhand der primären Eingabe werden die Attributnamen, die Attributdatentypen und die Attributreihenfolge in der resultierenden Ausgabe bestimmt. Standardmäßig wird die erste Quelle, die mit dem Schnittmengenoperator verbunden ist, als primäre Eingabe festgelegt.
  6. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Wenn Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (Numerisch, varchar) anwenden, werden die Attribute nach dem Namensmuster *_CODE und dem Typ "Numerisch" oder "varchar" gefiltert.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  7. Zeigen Sie auf der Registerkarte Daten ein Sampler der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  8. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.

Aufteilungsoperator

Mit dem Aufteilungsoperator können Sie eine Eingabedatenquelle basierend auf Aufteilungsbedingungen, die in einer Sequenz ausgewertet werden, auf zwei oder mehr Ausgabeports aufteilen.

Jede Aufteilungsbedingung hat einen Ausgabeport. Daten, die eine Bedingung erfüllen, werden an den entsprechenden Ausgabeport geleitet.

Standardmäßig wird ein Aufteilungsoperator mit der Bedingung "Keine Übereinstimmung" konfiguriert, die immer als letzte Bedingung in der Sequenz verfügbar ist. Sie können keine eigene Bedingung zur Bedingung "Keine Übereinstimmung" hinzufügen. Sie können die Bedingung "Keine Übereinstimmung" auch nicht löschen.

Der Operator wertet die Bedingungen nacheinander aus. Nachdem alle Bedingungen in der Sequenz ausgewertet wurden, werden Daten, die keine Bedingung erfüllen, an den Ausgabeport für "Keine Übereinstimmung" geleitet.

Aufteilung - Beispiel

Angenommen, Sie verwenden die Datenentity BANK mit den Attributen BANK_ID und BANK_NAME.

Sie richten zwei Aufteilungsbedingungen ein. Die vollständige Sequenz, einschließlich der Bedingung "Keine Übereinstimmung" sieht wie folgt aus:

Ausgabeport für BedingungBedingung
CONDITION1SPLIT_1.BANK.BANK_ID<102
CONDITION2SPLIT_1.BANK.BANK_ID<104
UNMATCHEDDie Standardbedingung UNMATCHED (Keine Übereinstimmung) leitet alle Daten, die die anderen Bedingungen in der Sequenz nicht erfüllen, an den Ausgabeport für UNMATCHED weiter
Datenentity BANK

Die Datenentity umfasst vier Zeilen.

BANK_IDBANK_NAME
101A Bank 101
102B Bank 102
103C Bank 103
104D Bank 104
Ausgabe für Condition1, erste übereinstimmende Bedingung

CONDITION1 gibt eine übereinstimmende Zeile zurück.

BANK_IDBANK_NAME
101A Bank 101
Ausgabe für Condition2, erste übereinstimmende Bedingung

CONDITION2 gibt zwei übereinstimmende Zeilen zurück (aus den nicht übereinstimmenden Zeilen nach CONDITION1).

BANK_IDBANK_NAME
102B Bank 102
103C Bank 103
Ausgabe für Bedingung "Keine Übereinstimmung", erste übereinstimmende Bedingung

Bedingung UNMATCHED gibt die verbleibende Zeile zurück.

BANK_IDBANK_NAME
104D Bank 104
Ausgabe für Condition1, alle übereinstimmenden Bedingungen

CONDITION1 gibt eine übereinstimmende Zeile zurück.

BANK_IDBANK_NAME
101A Bank 101
Ausgabe für Condition2, alle übereinstimmenden Bedingungen

Alle Daten werden nach CONDITION2 ausgewertet, wobei drei übereinstimmende Zeilen zurückgegeben werden.

BANK_IDBANK_NAME
101A Bank 101
102B Bank 102
103C Bank 103
Ausgabe für Bedingung "Keine Übereinstimmung", alle übereinstimmenden Bedingungen

Bedingung UNMATCHED gibt die Zeilen zurück, die CONDITION1 und CONDITION2 nicht erfüllen.

BANK_IDBANK_NAME
104D Bank 104
Aufteilungsoperator hinzufügen und konfigurieren

Wenn Sie einen Aufteilungsoperator auf der Leinwand hinzufügen, wird standardmäßig das Aufteilungsoperatorsymbol eingeblendet, und die Aufteilungsbedingung "Keine Übereinstimmung" wird angezeigt. Die Bedingung "Keine Übereinstimmung" leitet alle Daten weiter, die die anderen Bedingungen nicht erfüllen, die Sie der Sequenz hinzufügen.

  1. Ziehen Sie den Operator vom Typ Aufteilung aus dem Bereich Operatoren auf die Leinwand.
  2. Geben Sie für den ausgewählten Aufteilungsoperator im Bereich "Eigenschaften" auf der Registerkarte Details einen Namen in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
  3. Geben Sie unter Abgleich an, wie eingehende Daten verarbeitet werden sollen, die eine Aufteilungsbedingung erfüllen. Sie können eine der beiden folgenden Optionen auswählen:
    • Erste übereinstimmende Bedingung: Daten, die die erste Bedingung in der Sequenz erfüllen, werden durch nachfolgende Bedingungen aus der weiteren Verarbeitung entfernt.

      Beispiel: Angenommen, Sie verwenden eine Sequenz mit vier Bedingungen, einschließlich der letzten Bedingung "Keine Übereinstimmung": Condition1, Condition2, Condition3 und Keine Übereinstimmung.

      Für Condition1 findet der Vorgang keine Übereinstimmungen. Für Condition2 werden Übereinstimmungen gefunden. Der Vorgang leitet die übereinstimmenden Daten an den Ausgabeport weiter, der für Condition2 angegeben ist, und wertet dann die Daten ohne Übereinstimmung für Condition3 aus. Werden keine Übereinstimmungen für Condition3 gefunden, werden alle Daten an den Ausgabeport weitergeleitet, der für die Bedingung "Keine Übereinstimmung" angegeben ist. Wenn jedoch Übereinstimmungen für Condition3 gefunden werden, leitet der Vorgang die übereinstimmenden Daten an den Ausgabeport für Condition3 weiter. Anschließend werden die restlichen Daten dann an den Port für die Bedingung "Keine Übereinstimmung" weitergeleitet.

    • Alle übereinstimmenden Bedingungen: Daten, die eine Bedingung erfüllen, werden für alle Bedingungen in der Sequenz ausgewertet.

      Beispiel: Angenommen, Sie verwenden eine Sequenz mit Condition1 und Condition2. Nachdem Condition1 ausgewertet wurde, werden Übereinstimmungen gefunden. Die übereinstimmenden Daten werden an den Ausgabeport weitergeleitet, der für Condition1 angegeben ist. Alle Daten (mit und ohne Übereinstimmung) werden dann anhand von Condition2 ausgewertet. Daten, die Condition2 erfüllen, werden an den entsprechenden Ausgabeport weitergeleitet. Daten, die Condition1 und Condition2 nicht erfüllen, werden an den Ausgabeport für die Aufteilungsbedingung "Keine Übereinstimmung" weitergeleitet.

  4. Wählen Sie unter Aufteilungsbedingungen die Option Bedingung hinzufügen aus, um eine Aufteilungsbedingung hinzuzufügen.
    1. Bearbeiten Sie im Bereich, um eine Aufteilungsbedingung hinzuzufügen, den Wert für ID, oder lassen Sie ihn unverändert.
    2. Im Abschnitt Bedingungsbuilder können Sie Attribute, Parameter und Funktionen doppelklicken oder ziehen, um sie dem Editor hinzuzufügen und eine Bedingung zu erstellen. Sie können einen Bedingungsausdruck auch manuell in den Editor eingeben und den Ausdruck validieren.
      Hinweis

      Im Editor kann ein hinzugefügtes Element (z.B. eine Funktion) Platzhalter enthalten. Um einen Platzhalter durch ein anderes Element zu ersetzen, markieren Sie den Platzhalter, und doppelklicken Sie dann auf ein anderes Element in der Liste.
    3. Wählen Sie Hinzufügen aus.
      Die erste hinzugefügte Bedingung wird vor der Bedingung "Keine Übereinstimmung" eingefügt. Die Sequenz der Bedingungen wird auch im eingeblendeten Operatorsymbol auf der Leinwand angezeigt.
    4. Wiederholen Sie die Schritte, um Bedingungen zum Erstellen einer Sequenz hinzuzufügen.
      Die zweite Bedingung wird zwischen der ersten Bedingung und der Bedingung "Keine Übereinstimmung" in der Sequenz eingefügt. Nachfolgende Bedingungen werden immer vor der Bedingung "Keine Übereinstimmung" eingefügt. Die Sequenz der Aufteilungsbedingungen wird auch im eingeblendeten Operatorsymbol auf der Leinwand dargestellt.
  5. So verbinden Sie einen Ausgabeport für eine Aufteilungsbedingung mit einem anderen Operator auf der Leinwand:
    1. Blenden Sie das Aufteilungsoperatorsymbol ein, um die Bedingungssequenz anzuzeigen.
      Wenn das Aufteilungsoperatorsymbol nicht eingeblendet ist, können Sie den Operator trotzdem mit dem nächsten Operator verbinden. Der Link wird dann jedoch über den Port für die Bedingung "Keine Übereinstimmung" erstellt.
    2. Zeigen Sie mit der Maus auf das Ende einer Bedingung, und ziehen Sie dann den kleinen Kreis auf der rechten Seite der Bedingung auf den nächsten Modellierungsoperator oder ein Ziel.
    3. Verbinden Sie jede Bedingung mit dem entsprechenden Operator oder Ziel.
    Der Ausgabeport jeder Bedingung kann mit mehreren Modellierungsoperatoren und Zieloperatoren verknüpft werden. Wenn das Aufteilungsoperatorsymbol nicht auf der Leinwand eingeblendet ist, können Sie mit der Maus auf eine Verknüpfungslinie zeigen, um den Bedingungsnamen dieser Verknüpfung anzuzeigen.
  6. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Um nach dem Namensmuster "*_CODE" und nach dem Typ "Numerisch" oder "varchar" zu filtern, wenden Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (numerisch, varchar) an.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  7. Zeigen Sie auf der Registerkarte Daten ein Sampling der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Im Menü Bedingter Ausgabeport entspricht die Anzahl der Elemente der Anzahl der Bedingungen, die für den Operator konfiguriert wurden, einschließlich der Bedingung "Keine Übereinstimmung". Standardmäßig wird die Ausgabe des Ports für die erste Bedingung angezeigt. Um die Ausgabeansicht zu ändern, wählen Sie den Port der Bedingungsausgabe im Menü aus.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  8. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.
Aufteilungsbedingung hinzufügen

Mit dem Bedingungsbuilder können Sie Elemente visuell auswählen, um eine Aufteilungsbedingung zu erstellen. Sie können eine Aufteilungsbedingung auch manuell im Editor eingeben.

Sie können Aufteilungsbedingungen zu einer vorhandenen Sequenz von Bedingungen hinzufügen. Aufteilungsbedingungen werden am Ende der Sequenz vor der Bedingung "Keine Übereinstimmung" hinzugefügt. Sie können keine eigene Bedingung zur Bedingung "Keine Übereinstimmung" hinzufügen.

Die Elemente, die Sie in einer Aufteilungsbedingung verwenden können, umfassen eingehende Attribute, Parameter und Funktionen. Sie können ein Element in der Liste doppelklicken oder ziehen, um es dem Editor hinzuzufügen und eine Bedingung zu erstellen. Sie können die Bedingung vor dem Erstellen validieren.

Unter Eingehend werden die Attribute aus dem Upstreamport angezeigt. Beispiel:

SPLIT_1.BANK.BANK_NAME='ABC Bank'

Parameter sind die Ausdrucksparameter, die dem Datenfluss mit dem Condition Builder (Filter-, Join-, Lookup- und Aufteilungsoperatoren) oder Expression Builder (Ausdrucks- und Aggregatoperatoren) hinzugefügt wurden. Ein Ausdrucksparameter hat einen Namen, einen Typ und einen Standardwert. Siehe Ausdrucksparameter hinzufügen.

Angenommen, Sie erstellen einen VARCHAR-Parameter mit dem Namen P_VARCHAR_NAME und setzen den Standardwert auf ABC BANK. Anschließend können Sie den Parameter in einer Aufteilungsbedingung wie folgt verwenden:

SPLIT_1.BANK.BANK_NAME=$P_VARCHAR_NAME

Funktionen sind die in Data Integration verfügbaren Funktionen, die Sie in einer Bedingung verwenden können. Funktionen sind Vorgänge, die für an die Funktion übergebene Argumente ausgeführt werden. Funktionen berechnen, bearbeiten oder extrahieren Datenwerte aus Argumenten.

Angenommen, Sie erstellen einen VARCHAR-Parameter mit dem Namen P_VARCHAR_LIKE und setzen den Standardwert auf B%. Anschließend können Sie den Parameter in einer Aufteilungsbedingung wie folgt verwenden:

SPLIT_1.BANK.BANK_NAME LIKE $P_VARCHAR_LIKE

Im Folgenden finden Sie eine Liste der Funktionen, die Sie beim Erstellen von Bedingungen hinzufügen können:

Hashfunktionen
FunktionBeschreibungBeispiel
MD5(all data types)Berechnet eine MD5-Prüfsumme des Datentyps und gibt einen Zeichenfolgenwert zurück. MD5(column_name)
SHA1(all data types)Berechnet einen SHA-1-Hashwert des Datentyps und gibt einen Zeichenfolgenwert zurück. SHA1(column_name)
SHA2(all data types, bitLength)Berechnet einen SHA-2-Hashwert des Datentyps und gibt einen Zeichenfolgenwert zurück. bitLength ist eine Ganzzahl. SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Berechnet einen Hashwert für expr und gibt einen NUMBER-Wert zurück.

expr kann ein Ausdruck, eine Spalte oder ein Literal sein.

max_bucket ist der zurückgegebene maximale Bucket-Wert zwischen 0 und 4294967295 (Standard).

seed_value ist ein Wert zwischen 0 (Standard) und 4294967295.

Oracle wendet die Hash-Funktion auf die Kombination aus expr und seed_value an, um viele verschiedene Ergebnisse für dasselbe Datenset zu erzeugen.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Arithmetische Funktionen
FunktionBeschreibungBeispiel
ABS(numeric)Gibt die absolute Potenz des Wertes numeric zurück.ABS(-1)
CEIL(numeric)Gibt die kleinste Ganzzahl zurück, die nicht größer als der Wert numeric ist.CEIL(-1,2)
FLOOR(numeric)Gibt die größte Ganzzahl zurück, die nicht größer als der Wert numeric ist.FLOOR(-1,2)
MOD(numeric1, numeric2)Gibt den Rest zurück, nachdem numeric1 durch numeric2 geteilt wurde.MOD(8,2)
POWER(numeric1, numeric2)Entspricht numeric1 hoch numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Gibt numeric1 gerundet auf numeric2 Dezimalstellen zurück.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Gibt numeric1 gekürzt auf numeric2 Dezimalstellen zurück.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Konvertiert expr basierend auf den Angaben für format und locale (optional) in eine Zahl. Das Standardgebietsschema ist en-US. Unterstützte Sprachtags.

Unterstützte Formatmuster:

  • 0: Eine Ziffer
  • #: Eine Ziffer, Null wird als nicht vorhanden angezeigt
  • .: Platzhalter für Dezimaltrennzeichen
  • ,: Platzhalter für Gruppierungstrennzeichen
  • E: Trennt Mantisse und Exponent bei exponentiellen Formaten
  • -: Standardpräfix für Negativ
  • ¤: Währungszeichen, wird durch das Währungssymbol ersetzt. Wenn es doppelt vorhanden ist, wird es durch das internationale Währungssymbol ersetzt. Bei Verwendung in einem Muster wird das monetäre Dezimaltrennzeichen statt des Dezimaltrennzeichens verwendet.

TO_NUMBER('5467.12') gibt 5467.12 zurück

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') gibt -45677.7 zurück

Datums- und Zeitfunktionen
Funktion Beschreibung Beispiel
CURRENT_DATE Gibt das aktuelle Datum zurück. CURRENT_DATE gibt das aktuelle Datum zurück, z.B. 2023-05-26
CURRENT_TIMESTAMP Gibt das aktuelle Datum und die Zeit für die Session-Zeitzone zurück. CURRENT_TIMESTAMP gibt das aktuelle Datum und die aktuelle Uhrzeit zurück, wie 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Gibt das Datum zurück, das number von Tagen nach dem angegebenen Datum date liegt. DATE_ADD('2017-07-30', 1) gibt 2017-07-31 zurück
DATE_FORMAT(expr, format[, locale])

Formatiert expr vom Typ "Datum" basierend auf den Angaben für format und locale (optional). Das Standardgebietsschema ist en-US. Unterstützte Sprachtags.

Unterstützte Datumsformatmuster:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') gibt '2020-10-11' zurück. Das erste Argument ist ein Date-Objekt, das den 11. Oktober 2020 darstellt.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') gibt '2018/junio/17' zurück

DAYOFMONTH(date) Gibt den Tag des Monats für das Datum zurück. DAYOFMONTH('2020-12-25') gibt 25 zurück
DAYOFWEEK(date) Gibt den Tag der Woche für das Datum zurück. DAYOFWEEK('2020-12-25') gibt 6 für Freitag zurück. In den USA gilt der Sonntag als 1, der Montag als 2 usw.
DAYOFYEAR(date) Gibt den Tag des Jahres für das Datum zurück. DAYOFYEAR('2020-12-25') gibt 360 zurück
WEEKOFYEAR(date) Gibt die Woche des Jahres für das Datum zurück.

WEEKOFYEAR('2022-07-28') gibt 30 zurück

WEEKOFYEAR('2022-07-28 13:24:30') gibt 30 zurück

HOUR(datetime) Gibt den Stundenwert für das Datum/die Uhrzeit zurück. HOUR('2020-12-25 15:10:30') gibt 15 zurück
LAST_DAY(date) Gibt den letzten Tag des Monats für das Datum zurück. LAST_DAY('2020-12-25') gibt 31 zurück
MINUTE(datetime) Gibt den Minutenwert für das Datum/die Uhrzeit zurück. HOUR('2020-12-25 15:10:30') gibt 10 zurück
MONTH(date) Gibt den Monatswert für das Datum zurück. MONTH('2020-06-25') gibt 6 zurück
QUARTER(date) Gibt das Quartal des Jahres zurück, in dem das Datum liegt. QUARTER('2020-12-25') gibt 4 zurück
SECOND(datetime) Gibt den Sekundenwert für das Datum/die Uhrzeit zurück. SECOND('2020-12-25 15:10:30') gibt 30 zurück
TO_DATE(string, format_string[, localeStr]) Parst den Zeichenfolgenausdruck mit dem Ausdruck format_string in ein Datum. Das Gebietsschema ist optional. Der Standardwert ist en-US. Unterstützte Sprachtags.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Formatzeichenfolgen (unter Beachtung der Groß-/Kleinschreibung) unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') gibt einen Datumswert von 2016-12-31 zurück

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') gibt einen Datumswert von 2018-06-17 zurück

TO_TIMESTAMP(expr, format_string[, localeStr]) Konvertiert expr vom Typ "VARCHAR" basierend auf den Angaben für format_string und localeStr (optional) in einen TIMESTAMP-Wert.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Formatmuster unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') gibt ein TIMESTAMP-Objekt zurück, das 11am 10:10 Oct 11th, 2020 darstellt
WEEK(date)

Gibt den Wochenwert für das Datum zurück.

WEEK('2020-06-25') gibt 4 zurück
YEAR(date) Gibt den Jahreswert für das Datum zurück. YEAR('2020-06-25') gibt 2020 zurück
ADD_MONTHS(date_expr, number_months) Gibt das Datum nach dem Hinzufügen der angegebenen Anzahl von Monaten zum angegebenen Datum, zum Zeitstempel oder zur Zeichenfolge mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS zurück.

ADD_MONTHS('2017-07-30', 1) gibt 2017-08-30 zurück

ADD_MONTHS('2017-07-30 09:07:21', 1) gibt 2017-08-30 zurück

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Gibt die Anzahl der Monate zwischen start_date_expr und end_date_expr zurück. start_date_expr und end_date_expr können Datumsangaben, Zeitstempel oder Zeichenfolgen mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS sein.

Eine Ganzzahl wird zurückgegeben, wenn beide Datumsangaben denselben Tag im Monat oder den letzten Tag im jeweiligen Monat angeben. Andernfalls wird die Differenz auf Basis von 31 Tagen pro Monat berechnet.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') gibt 1 zurück

MONTHS_BETWEEN('2022-07-28', '2020-07-25') gibt 24 zurück

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') gibt 24 zurück

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interpretiert ein Datum, einen Zeitstempel oder eine Zeichenfolge als UTC-Zeit und konvertiert diese Zeit in einen Zeitstempel in der angegebenen Zeitzone.

Verwenden Sie für eine Zeichenfolge ein Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Das Zeitzonenformat ist entweder eine regionsbasierte Zonen-ID (z.B. "Region/Ort", wie "Asia/Seoul") oder ein Zeitzonenversatz (z.B. UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') gibt 2017-07-14 03:40:00.0 zurück
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Konvertiert ein Datum, einen Zeitstempel oder eine Zeichenfolge in der angegebenen Zeitzone in einen UTC-Zeitstempel.

Verwenden Sie für eine Zeichenfolge ein Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Das Zeitzonenformat ist entweder eine regionsbasierte Zonen-ID (z.B. "Region/Ort", wie "Asia/Seoul") oder ein Zeitzonenversatz (z.B. UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') gibt 2017-07-14 01:40:00.0 zurück
FROM_UNIXTIME(unix_time[, fmt])

Konvertiert die angegebene Unix-Zeit oder -Epoche in eine Zeichenfolge, die den Zeitstempel dieses Zeitpunkts in der aktuellen Systemzeitzone und im angegebenen Format darstellt.

Hinweis: Die Unix-Zeit ist die Anzahl der Sekunden, die seit dem 1. Januar 1970 00:00:00 UTC verstrichen sind.

Wenn fmt ausgelassen wird, lautet das Standardformat yyyy-MM-dd HH:mm:ss.

FROM_UNIXTIME(1255033470) gibt '2009-10-08 13:24:30' zurück

FROM_UNIXTIME(1637258854) gibt '2021-11-18 10:07:34' zurück.

Die Standardzeitzone in den Beispielen ist PST.

UNIX_TIMESTAMP([time_expr[, fmt]])

Konvertiert die aktuelle oder angegebene Zeit in einen Unix-Zeitstempel in Sekunden.

time_expr ist ein Datum, ein Zeitstempel oder eine Zeichenfolge mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Wenn time_expr nicht angegeben wird, wird die aktuelle Uhrzeit konvertiert.

Wenn time_expr eine Zeichenfolge ist und fmt ausgelassen wird, lautet der Standardwert yyyy-MM-dd HH:mm:ss.

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') gibt 28800 zurück

Die Standardzeitzone in diesem Beispiel ist PST.

INTERVAL 'year' YEAR[(year_precision)]

Gibt einen Zeitraum in Jahren zurück.

year_precision ist die Anzahl der Stellen im Feld year. Der Wert muss zwischen 0 und 9 liegen. Wenn year_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '1' YEAR gibt ein Intervall von 1 Jahr zurück

INTERVAL '200' YEAR(3) gibt ein Intervall von 200 Jahren zurück

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Gibt einen Zeitraum in Jahren und Monaten zurück. Verwenden Sie diese Option, um einen Zeitraum mit den Feldern year und month zu speichern.

year_precision ist die Anzahl der Stellen im Feld year. Der Wert muss zwischen 0 und 9 liegen. Wenn year_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '100-5' YEAR(3) TO MONTH gibt ein Intervall von 100 Jahren und 5 Monaten zurück. Sie müssen 3 als führende Gesamtstellenanzahl für das Jahr angeben.
INTERVAL 'month' MONTH[(month_precision)]

Gibt einen Zeitraum in Monaten zurück.

month_precision ist die Anzahl der Stellen im Feld Monat. Der Wert muss 0 bis 9 sein. Wenn month_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '200' MONTH(3) gibt ein Intervall von 200 Monaten zurück. Sie müssen 3 als Gesamtstellenanzahl für den Monat angeben.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Tagen, Stunden, Minuten und Sekunden zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) gibt ein Intervall von 11 Tagen, 10 Stunden, 09 Minuten, 08 Sekunden und 555 Tausendstelsekunden zurück
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Gibt einen Zeitraum in Tagen, Stunden und Minuten zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '11 10:09' DAY TO MINUTE gibt ein Intervall von 11 Tagen, 10 Stunden und 09 Minuten zurück
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Gibt einen Zeitraum in Tagen und Stunden zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

INTERVAL '100 10' DAY(3) TO HOUR gibt ein Intervall von 100 Tagen und 10 Stunden zurück
INTERVAL 'day' DAY[(day_precision)]

Gibt einen Zeitraum in Tagen zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

INTERVAL '999' DAY(3) gibt ein Intervall von 999 Tagen zurück
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Stunden, Minuten und Sekunden zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) gibt ein Intervall von 9 Stunden, 08 Minuten und 7,6666666 Sekunden zurück
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Gibt einen Zeitraum in Stunden und Minuten zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '09:30' HOUR TO MINUTE gibt ein Intervall von 9 Stunden und 30 Minuten zurück
INTERVAL 'hour' HOUR[(hour_precision)]

Gibt einen Zeitraum in Stunden zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

INTERVAL '40' HOUR gibt ein Intervall von 40 Stunden zurück
INTERVAL 'minute' MINUTE[(minute_precision)]

Gibt einen Zeitraum in Minuten zurück.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '15' MINUTE gibt ein Intervall von 15 Minuten zurück
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Minuten und Sekunden zurück.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '15:30' MINUTE TO SECOND gibt ein Intervall von 15 Minuten und 30 Sekunden zurück
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Sekunden zurück.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des Feldes zweite. Er muss zwischen 0 und 9 liegen. Der Standard ist 3.

INTERVAL '15.678' SECOND gibt ein Intervall von 15,678 Sekunden zurück
Analytische Funktionen
Funktion Beschreibung Beispiel
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Gibt den Wert zurück, der in der Zeile ausgewertet wird, die der ersten Zeile des Fensterrahmens entspricht. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) gibt den ersten Wert von BANK_ID in einem Fenster zurück, über das die Zeilen als die aktuelle Zeile und 1 Zeile nach dieser Zeile berechnet werden, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Gibt den Wert zurück, der in der Zeile mit einem bestimmten Offset vor der aktuellen Zeile innerhalb der Partition ausgewertet wird. Wenn keine solche Zeile vorhanden ist, wird der Standardwert zurückgegeben. Sowohl Offset- als auch Standardwert werden in Bezug auf die aktuelle Zeile ausgewertet. Wenn keine Angabe gemacht wird, wird Offset standardmäßig auf 1 und standardmäßig auf NULL gesetzt. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) gibt den Wert von BANK_ID aus der zweiten Zeile vor der aktuellen Zeile zurück, unterteilt nach BANK_ID und in absteigender Reihenfolge von BANK_NAME. Wenn kein solcher Wert vorhanden ist, wird hello zurückgegeben.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Gibt den Wert zurück, der in der Zeile ausgewertet wird, die die letzte Zeile des Fensterrahmens ist. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) gibt den letzten Wert von BANK_ID in einem Fenster zurück, über das die Zeilen als die aktuelle Zeile und 1 Zeile nach dieser Zeile berechnet werden, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Gibt den Wert zurück, der in der Zeile mit einem bestimmten Offset nach der aktuellen Zeile innerhalb der Partition ausgewertet wird. Wenn keine solche Zeile vorhanden ist, wird der Standardwert zurückgegeben. Sowohl Offset- als auch Standardwert werden in Bezug auf die aktuelle Zeile ausgewertet. Wenn keine Angabe gemacht wird, wird Offset standardmäßig auf 1 und standardmäßig auf NULL gesetzt. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt den Wert von BANK_ID aus der zweiten Zeile nach der aktuellen Zeile zurück, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME. Wenn kein solcher Wert vorhanden ist, wird hello zurückgegeben.
RANK() OVER([ partition_clause ] order_by_clause) Gibt den Rang der aktuellen Zeile mit Lücken beginnend mit 1 zurück. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt den Rang der einzelnen Zeilen in der Partitionsgruppe von BANK_ID in aufsteigender Reihenfolge von BANK_NAME zurück.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Gibt die eindeutige Nummer der aktuellen Zeile innerhalb der zugehörigen Partition beginnend mit 1 zurück. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt die eindeutige Zeilennummer der einzelnen Zeilen innerhalb der Partitionsgruppe von BANK_ID in aufsteigender Reihenfolge von BANK_NAME zurück.
Zeichenfolgenfunktionen
FunktionenBeschreibungBeispiel
CAST(value AS type)Gibt den angegebenen Wert im angegebenen Typ zurück.CAST("10" AS INT) gibt 10 zurück
CONCAT(string, string)Gibt die kombinierten Werte von Zeichenfolgen oder Spalten zurück.CONCAT('Oracle','SQL') gibt OracleSQL zurück
CONCAT_WS(separator, expression1, expression2, expression3,...) Gibt die kombinierten Werte von Zeichenfolgen oder Spalten mit dem angegebenen Trennzeichen zwischen den Zeichenfolgen oder Spalten zurück.

Ein Trennzeichen ist erforderlich und muss eine Zeichenfolge sein.

Nach dem Trennzeichen muss mindestens ein Ausdruck angegeben werden. Beispiel: CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') gibt Hello-Oracle zurück

CONCAT_WS(' ', address, city, postal_code) gibt 123 MyCity 987654 zurück

Wenn ein untergeordnetes Element der Funktion ein Array ist, wird das Array vereinfacht:

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) gibt 1,2,3,4,5,6,7,8,9 zurück

INITCAP(string)Gibt die Zeichenfolge so zurück, dass jedes Wort mit einem Großbuchstaben beginnt, die anderen Buchstaben Kleinbuchstaben sind und die einzelnen Wörter durch ein Leerzeichen getrennt werden.INITCAP('oRACLE sql') gibt Oracle Sql zurück
INSTR(string, substring[start_position])Gibt den (1-basierten) Index des ersten Vorkommens von substring in string zurück.INSTR('OracleSQL', 'SQL') gibt 7 zurück
LOWER(string)Gibt die Zeichenfolge zurück, wobei alle Buchstaben in Kleinbuchstaben umgewandelt werden.LOWER('ORACLE') gibt oracle zurück
LENGTH(string)Gibt die Länge der Zeichenfolge in Zeichen oder die Anzahl der Byte von Binärdaten zurück. Nachgestellte Leerzeichen werden mitgezählt.LENGTH('Oracle') gibt 6 zurück
LTRIM(string)Gibt die Zeichenfolge zurück, wobei vorangestellte Leerzeichen von links entfernt werden.LTRIM(' Oracle')
NVL(expr1, epxr2)Gibt das Argument zurück, das nicht Null ist.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Sucht und extrahiert die Zeichenfolge, die einem regulären Ausdrucksmuster aus der Eingabezeichenfolge entspricht. Wenn der optionale Erfassungsgruppenindex angegeben ist, extrahiert die Funktion die spezifische Gruppe.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') gibt https://www.oracle.com zurück

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) gibt 22 zurück
REPLACE(string, search, replacement)Ersetzt alle Vorkommen von search durch replacement.

Wird search nicht in der Zeichenfolge gefunden, wird die Zeichenfolge unverändert zurückgegeben.

Wenn replacement nicht angegeben oder eine leere Zeichenfolge ist, wird search durch nichts ersetzt und aus string entfernt.

REPLACE('ABCabc', 'abc', 'DEF') gibt ABCDEF zurück
RTRIM(string)Gibt die Zeichenfolge zurück, wobei vorangestellte Leerzeichen von rechts entfernt werden.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Gibt die erste Teilzeichenfolge ab der Position zurück. SUBSTRING('Oracle SQL' FROM 2 FOR 3) gibt rac zurück
Für Zahlen, TO_CHAR(expr) und für Datumsangaben TO_CHAR(expr, format[, locale])Konvertiert Zahlen und Datumsangaben in Zeichenfolgen. Für Zahlen ist kein Format erforderlich. Verwenden Sie für Datumsangaben dasselbe Format wie DATE_FORMAT, das unter Datums- und Zeitfunktionen beschrieben wird. Das Standardgebietsschema ist en-US. Siehe unterstützte Sprachtags.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Datumsformatmuster unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

Zahlenbeispiel: TO_CHAR(123) gibt 123 zurück

Datumsbeispiel: TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') gibt die Zeichenfolge 2020.10.30 zurück. Das erste Argument ist ein Datumsobjekt, das für den 30. Oktober 2020 steht.

UPPER(string)Gibt eine Zeichenfolge zurück, wobei alle Buchstaben in Großbuchstaben geändert werden.UPPER('oracle') gibt ORACLE zurück
LPAD(str, len[, pad])Gibt eine Zeichenfolge zurück, die links mit angegebenen Zeichen auf eine bestimmte Länge aufgefüllt wird. Wenn Sie das pad-Zeichen auslassen, wird standardmäßig ein Speicherplatz verwendet.LPAD('ABC', 5, '*') gibt '**ABC' zurück
RPAD(str, len[, pad])Gibt eine Zeichenfolge zurück, die rechts mit angegebenen Zeichen auf eine bestimmte Länge aufgefüllt wird. Wenn Sie das pad-Zeichen auslassen, wird standardmäßig ein Speicherplatz verwendet.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
(Vergleichs-)Operatorfunktionen
FunktionBeschreibungBeispiel
CASE WHEN condition1 THEN result1 ELSE result2 ENDGibt den Wert zurück, für den eine Bedingung erfüllt wird.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END gibt ABC zurück, wenn 1> 0. Andernfalls wird XYZ zurückgegeben
ANDDer logische AND-Operator. Gibt "true" zurück, wenn beide Operanden wahr sind. Andernfalls wird "false" zurückgegeben.(x = 10 AND y = 20) gibt "true" zurück, wenn x gleich 10 und y gleich 20 ist. Wenn einer der Operanden nicht wahr ist, wird "false" zurückgegeben
ORDer logische OR-Operator. Gibt "true" zurück, wenn einer der Operanden wahr ist oder beide wahr sind. Andernfalls wird "false" zurückgegeben.(x = 10 OR y = 20) gibt "false" zurück, wenn x nicht gleich 10 und y nicht gleich 20 ist. Wenn einer der Operanden wahr ist, wird "true" zurückgegeben
NOTDer logische NOT-Operator.
LIKEErmittelt durch Mustervergleich, ob die Zeichenfolge string1 mit dem Muster in string2 übereinstimmt.
=Führt einen Gleichheitstest aus. Gibt "true" zurück, wenn expr1 gleich expr2 ist. Andernfalls wird "false" zurückgegeben.x = 10 gibt "true" zurück, wenn der Wert von x gleich 10 ist. Andernfalls wird "false" zurückgegeben
!=Führt einen Ungleichheitstest aus. Gibt "true" zurück, wenn expr1 nicht gleich expr2 ist. Andernfalls wird "false" zurückgegeben.x != 10 gibt "false" zurück, wenn der Wert von x gleich 10 ist. Andernfalls wird "true" zurückgegeben
>Testet, ob ein Ausdruck "größer als" ist. Gibt "true" zurück, wenn expr1 größer als expr2 ist.x > 10 gibt "true" zurück, wenn der Wert von x größer als 10 ist. Andernfalls wird "false" zurückgegeben
>=Testet, ob ein Ausdruck "größer/gleich" ist. Gibt "true" zurück, wenn expr1 größer als oder gleich expr2 ist.x >= 10 gibt "true" zurück, wenn der Wert von x größer als oder gleich 10 ist. Andernfalls wird "false" zurückgegeben
<Testet, ob ein Ausdruck "kleiner als" ist. Gibt "true" zurück, wenn expr1 kleiner als expr2 ist.x < 10 gibt "true" zurück, wenn der Wert von x kleiner als 10 ist. Andernfalls wird "false" zurückgegeben
<=Testet, ob ein Ausdruck "kleiner/gleich" ist. Gibt "true" zurück, wenn expr1 kleiner oder gleich expr2 ist.x <= 10 gibt "true" zurück, wenn der Wert von x kleiner als 10 ist. Andernfalls wird "false" zurückgegeben
||Verkettet zwei Zeichenfolgen.'XYZ' || 'hello' gibt 'XYZhello' zurück
BETWEENBewertet einen Bereich.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INTestet, ob ein Ausdruck mit einer Werteliste übereinstimmt.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Eindeutige-ID-Funktionen
FunktionBeschreibungBeispiel
NUMERIC_ID()Generiert eine universell eindeutige ID, die eine 64-Bit-Zahl für jede Zeile darstellt.NUMERIC_ID() gibt beispielsweise 3458761969522180096 und 3458762008176885761 zurück
ROWID()Generiert monoton aufsteigende 64-Bit-Zahlen.ROWID() gibt beispielsweise 0, 1, 2 usw. zurück
UUID()Generiert eine universell eindeutige ID, die in einer 128-Bit-Zeichenfolge für jede Zeile besteht.UUID() gibt zum Beispiel 20d45c2f-0d56-4356-8910-162f4f40fb6d zurück
MONOTONICALLY_INCREASING_ID() Generiert eindeutige, monoton aufsteigende 64-Bit-Ganzzahlen, die keine aufeinanderfolgenden Zahlen sind. MONOTONICALLY_INCREASING_ID() gibt beispielsweise 8589934592 und 25769803776 zurück
Bedingungen
FunktionBeschreibungBeispiel
COALESCE(value, value [, value]*)Gibt das erste Nicht-Null-Argument zurück, falls vorhanden. Andernfalls wird Null zurückgegeben.COALESCE(NULL, 1, NULL) gibt 1 zurück
NULLIF(value, value)Gibt Null zurück, wenn die beiden Werte gleich sind. Andernfalls wird der erste Wert zurückgegeben.NULLIF('ABC','XYZ') gibt ABC zurück
Hierarchische Funktionen
FunktionBeschreibungBeispiel
SCHEMA_OF_JSON(string)Parst eine JSON-Zeichenfolge und leitet das Schema im DDL-Format ab.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') gibt 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>' zurück

SCHEMA_OF_JSON('[{\"col\":0}]') gibt 'ARRAY<STRUCT<col: BIGINT>>' zurück

FROM_JSON(column, string)

Parst eine Spalte mit einer JSON-Zeichenfolge in einen der folgenden Typen mit dem angegebenen Schema.

  • Map, mit Zeichenfolge als Schlüsseltyp
  • Struct
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') gibt eine Spalte vom Typ "Struct" mit dem angegebenen Schema zurück: {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') gibt eine Spalte vom Typ "Struct" mit dem angegebenen Schema zurück: {1, 0.8}

TO_JSON(column)Konvertiert eine Spalte vom Typ "Struct" oder "Struct-Array" oder vom Typ "Map" oder "Map-Array" in eine JSON-Zeichenfolge.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) gibt eine JSON-Zeichenfolge {"s1":[1,2,3],"s2":{"key":"value"}} zurück
TO_MAP(string,column[,string,column]*)Erstellt eine neue Spalte vom Typ "Map". Die Eingabespalten müssen als Schlüssel/Wert-Paare gruppiert werden. Die Eingabeschlüsselspalten dürfen nicht Null sein und müssen alle denselben Datentyp aufweisen. Die Eingabewertspalten müssen alle denselben Datentyp aufweisen.

TO_MAP('Ename',Expression_1.attribute1) gibt eine Spalte vom Typ "Map" zurück: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) gibt eine Spalte vom Typ "Map" zurück: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Erstellt eine neue Spalte vom Typ "Struct". Die Eingabespalten müssen als Schlüssel/Wert-Paare gruppiert werden.

TO_STRUCT('Ename',Expression_1.attribute1) gibt {100} zurück

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) gibt {100, "John"} zurück

TO_ARRAY(column[,column]*)Erstellt eine neue Spalte vom Typ "Array". Die Eingabespalten müssen alle denselben Datentyp aufweisen.

TO_Array(Expression_1.attribute1) gibt [100] zurück

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) gibt ["John","Friend"] zurück

Funktionen höherer Ordnung

Datenflussoperatoren, die das Erstellen von Ausdrücken und hierarchischen Datentypen unterstützen, können Funktionen höherer Ordnung verwenden.

Die folgenden Operatoren werden unterstützt:

  • Aggregieren

  • Ausdruck

  • Filter

  • Join

  • Referenz

  • Teilen

  • Drehen

FunktionBeschreibungBeispiel
TRANSFORM(column, lambda_function)Nimmt ein Array und eine anonyme Funktion an. Richten Sie ein neues Array ein, indem Sie die Funktion auf jedes Element anwenden und das Ergebnis dem Ausgabearray zuweisen.Für ein Eingabearray mit Ganzzahlen [1, 2, 3] gibt TRANSFORM(array, x -> x + 1) ein neues Array von [2, 3, 4] zurück.
TRANSFORM_KEYS(column, lambda_function)Nimmt eine Karte und eine Funktion mit 2 Argumenten (Schlüssel und Wert) und gibt eine Karte zurück, in der die Schlüssel den Typ des Ergebnisses der Lambda-Funktion haben und die Werte den Typ der Spaltenzuordnungswerte haben.Bei einer Eingabezuordnung mit Ganzzahlschlüsseln und Zeichenfolgenwerten von {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'} gibt TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) eine neue Zuordnung von {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'} zurück.
TRANSFORM_VALUES(column, lambda_function)Nimmt eine Karte und eine Funktion mit 2 Argumenten (Schlüssel und Wert) und gibt eine Karte zurück, in der die Werte den Typ des Ergebnisses der Lambda-Funktionen haben und die Schlüssel den Typ der Spaltenzuordnungsschlüssel haben. Bei einer Eingabezuordnung mit Zeichenfolgenschlüsseln und Zeichenfolgenwerten von {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'} gibt TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) eine neue Zuordnung von {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'} zurück.
ARRAY_SORT(array(...), lambda_function)

Nur der Ausdrucksoperator unterstützt ARRAY_SORT.

Nimmt ein Array an und sortiert nach der angegebenen Funktion, die 2 Argumente annimmt.

Die Funktion muss -1, 0 oder 1 zurückgeben, je nachdem, ob das erste Element kleiner, gleich oder größer als das zweite Element ist.

Wenn die Funktion ausgelassen wird, wird das Array in aufsteigender Reihenfolge sortiert.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

Das zurückgegebene Array ist:

[1,5,6]
Aufteilungsbedingungen bearbeiten

Sie können alle Aufteilungsbedingungen mit Ausnahme der Bedingung "Keine Übereinstimmung" bearbeiten.

  1. Wählen Sie auf der Designerleinwand den Aufteilungsoperator der zu ändernden Bedingung aus.
    Die Registerkarte Details für den aufgeteilten Operator wird im Bereich "Eigenschaften" angezeigt. Auf der Leinwand können Sie das Operatorsymbol ein- und ausblenden, um die vorhandenen Aufteilungsbedingungen ein- und auszublenden.
  2. Klicken Sie auf der Registerkarte Details unter Aufteilungsbedingungen im Menü "Aktionen" (Menü Aktionen) neben der Aufteilungsbedingung, die Sie ändern möchten, auf Bearbeiten.
  3. Bearbeiten Sie im Bereich Aufteilungsbedingung bearbeiten den Wert ID, oder lassen Sie ihn unverändert.
  4. Im Abschnitt Bedingungsbuilder können Sie eingehende Attribute oder Funktionen doppelklicken oder in den Editor ziehen, um die Bedingung zu erstellen. Sie können den Bedingungsausdruck auch manuell im Editor bearbeiten und die Bedingung vor dem Speichern validieren.
  5. Wählen Sie Änderungen speichern aus.
Sequenz von Aufteilungsbedingungen ändern

Sie können eine Aufteilungsbedingung in der Sequenz nach oben oder nach unten verschieben. Nur die Bedingung "Keine Übereinstimmung" kann nicht verschoben werden.

  1. Wählen Sie auf der Designerleinwand den Splitoperator mit der Sequenz der Bedingungen aus, die Sie ändern möchten.
    Die Registerkarte Details für den aufgeteilten Operator wird im Bereich "Eigenschaften" angezeigt. Auf der Leinwand können Sie das Operatorsymbol ein- und ausblenden, um die vorhandenen Aufteilungsbedingungen ein- und auszublenden.
  2. Prüfen Sie auf der Registerkarte Details unter Aufteilungsbedingungen die Sequenz der Aufteilungsbedingungen.
  3. Wählen Sie neben einer Bedingungszeile im Menü "Aktionen" (Menü Aktionen) die Aktion aus, um diese Bedingung nach oben oder nach unten zu verschieben.
    Beachten Sie, dass sich die Bedingungsposition im eingeblendeten Aufteilungsoperatorsymbol auf der Leinwand entsprechend ändert, wenn Sie eine Bedingung verschieben.
Aufteilungsbedingungen löschen

Sie können alle aufgeteilten Bedingungen mit Ausnahme der Bedingung "Keine Übereinstimmung" löschen.

  1. Wählen Sie auf der Designerleinwand den Aufteilungsoperator der zu löschenden Bedingung aus.
    Die Registerkarte Details für den aufgeteilten Operator wird im Bereich "Eigenschaften" angezeigt. Auf der Leinwand können Sie das Operatorsymbol ein- und ausblenden, um die Aufteilungsbedingungen ein- und auszublenden.
  2. Wählen Sie auf der Registerkarte Details unter Aufteilungsbedingungen im Menü "Aktionen" (Menü Aktionen) neben der zu löschenden Bedingung die Option Löschen aus.
  3. Um zwei oder mehr Bedingungen zu löschen, verwenden Sie die Spalte neben der Spalte Sequenz, um die Bedingungen auszuwählen. Wählen Sie dann Löschen aus.
  4. Wenn der Ausgabeport für eine gelöschte Bedingung mit einem anderen Operator oder Ziel verbunden war, müssen Sie den Datenfluss prüfen und nach dem Löschen der Bedingungen die erforderlichen Änderungen vornehmen.

Pivot-Operator

Mit dem Pivot-Operator können Sie eindeutige Zeilenwerte aus einem Attribut in einer Eingabequelle in mehrere Attribute in der Ausgabe pivotieren.

Mit Eingabe aus mehreren Zeilen führt der Pivot-Vorgang eine Transformation basierend auf Aggregatfunktionsausdrücken und den Werten eines Attributs aus, das Sie als Pivot-Schlüssel angeben. Das Ergebnis eines Pivot-Vorgangs ist eine pivotierte oder neu angeordnete Ausgabe von Zeilen und Attributen.

Die Anzahl der Zeilen in der Ausgabe basiert auf der Auswahl der Attribute, nach denen gruppiert werden soll.

  • Wenn Sie Attribute zum Gruppieren angeben, werden die eingehenden Zeilen mit demselben Group-by-Attributwert in einer Zeile gruppiert. Beispiel: Wenn Sie ein Group-by-Attribut mit vier eindeutigen Werten angeben, werden die eingehenden Daten transformiert und in vier Zeilen in der Ausgabe gruppiert.
  • Wenn Sie keine Attribute angeben, nach denen gruppiert werden soll, werden alle eingehenden Daten in eine einzelne Ausgabezeile transformiert.

Die Anzahl der Attribute in der Ausgabe:

  • basiert auf der Anzahl der Attribute, die Sie für die Gruppierung auswählen
  • ist ein Vielfaches der Anzahl der Werte, die Sie im Pivot-Schlüssel auswählen
  • resultiert aus der Anzahl der Attribute, die von den Aggregatfunktionsausdrücken transformiert werden

Beispiel: Wenn Sie ein Group-by-Attribut und drei Pivot-Schlüsselwerte auswählen und einen Ausdruck hinzufügen, der zwei Attribute transformiert, lautet die Anzahl der Attribute in der Ausgabe:

1 + (3 * 2)

Die Gesamtanzahl der Attribute in der resultierenden Pivot-Ausgabe wird wie folgt berechnet:

Number of group by attributes + (Number of pivot key values * Number of attributes that are transformed from expressions)

Die Namen neuer Attribute in der Ausgabe werden von einem Muster abgeleitet, das Sie bei der Erstellung der Ausdrücke für Zielattribute hinzufügen.

Die Aggregatfunktionen, die Sie mit einem Pivot-Operator verwenden, bestimmen die pivotierten Werte in der Ausgabe. Falls keine Daten gefunden werden, wird ein Nullwert eingefügt, wenn ein pivotierter Wert erwartet wird.

Pivot-Beispiel

Die Datenentity PRODUCT_SALES umfasst die Attribute STORE, PRODUCT und SALES. Die Datenentity enthält fünf Zeilen. Sie möchten einen Pivot für das Attribut PRODUCT mit einer Aggregatsummenfunktion (SUM) für SALES erstellen.

Sie geben an, dass pivotierte Zeilen nach dem Attribut STORE gruppiert werden sollen. Jeder eindeutige STORE-Wert wird in der resultierenden Ausgabe zu einer Zeile. Eingabezeilen mit demselben Group-by-Wert werden in der pivotierten Ausgabe in derselben Zeile gruppiert. Wenn Sie kein Group-by-Attribut angeben, werden alle Eingabezeilen in eine einzelne Zeile in der resultierenden Ausgabe transformiert.

Sie geben PRODUCT als Pivot-Schlüssel an und wählen alle drei Werte aus, die in der resultierenden Ausgabe in neue Attribute pivotiert werden sollen.

Der SUM-Aggregatfunktionsausdruck für SALES lautet:

SUM(PIVOT_1_1.PRODUCT_SALES.SALES)

Das Muster für Zielattribute lautet:

%PIVOT_KEY_VALUE%
Datenentity PRODUCT_SALES
STOREPRODUCTSALES
AB StoreTelevision2
AB StoreTelevision4
Country-StoreTelevision6
Country-StoreRefrigerator8
E-StoreCoffee maker10
Pivot-Ausgabe: Group-by-Attribut STORE, Pivot-Schlüssel PRODUCT
STORETELEVISIONREFRIGERATORCOFFEE MAKER
AB-Store6--
Country-Store68-
E-Store--10
Pivot-Ausgabe: Ohne Group-by-Attribut, Pivot-Schlüssel PRODUCT
TELEVISIONREFRIGERATORCOFFEE MAKER
12810
Pivot-Operator hinzufügen und konfigurieren

Der Pivot-Operator führt eine Transformation mit Aggregatfunktionsausdrücken für einen oder mehrere Werte eines Attributs aus, das Sie als Pivot-Schlüssel angeben.

Sie können die pivotierten Zeilen in einer einzelnen Zeile gruppieren oder Attribute auswählen, um mehrere Ausgabezeilen basierend auf demselben Group-by-Wert zu erstellen.

  1. Ziehen Sie einen Pivot-Operator aus dem Bereich Operatoren auf die Leinwand.
  2. Geben Sie für den ausgewählten Pivot-Operator auf der Registerkarte Details des Bereichs "Eigenschaften" einen Namen in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
  3. (Optional) Geben Sie unter Gruppieren nach die Attribute an, mit deren eindeutigen Werten die pivotierten Daten in gruppierten Zeilen angeordnet werden. Standardmäßig werden alle eingehenden Zeilen aggregiert und in einer Zeile gruppiert, es sei denn, Sie geben Attribute zum Gruppieren der Zeilen an.
    • Wählen Sie Attribute und dann mindestens ein Attribut aus, um pivotierte Zeilen nach demselben Wert zu gruppieren. Beispiel: Wenn Sie ein Attribut mit zwei eindeutigen Werten auswählen, enthält die resultierende Ausgabe zwei Zeilen mit aggregierten Daten.
    • Wählen Sie Pattern aus, um die Attribute, nach denen Sie gruppieren möchten, mit einem regulären Ausdrucksmuster auszuwählen. Nur Attribute, die mit dem Muster übereinstimmen, werden verwendet, um pivotierte Zeilen nach demselben Wert zu gruppieren.
  4. Wählen Sie unter Pivot-Schlüssel das Attribut aus, dessen Werte als neue Attribute in der pivotierten Ausgabe verwendet werden können. Als Pivot-Schlüssel können nur Attribute des Typs VARCHAR, INTEGER, FLOAT oder BOOLEAN verwendet werden.
  5. Wählen Sie unter der Option Pivot-Schlüsselwerte die Option Schlüsselwerte hinzufügen aus, um einen oder mehrere Werte aus dem ausgewählten Pivot-Schlüssel auszuwählen, die in der Ausgabe zu pivotierten Attributen werden sollen. Sie können bis zu 50 Werte auswählen.

    Sie können einen Alias für einen ausgewählten Pivot-Schlüsselwert verwenden. Ein Alias darf nicht mit einer Zahl beginnen. Nur das Sonderzeichen _ ist zulässig.

    Um einen Alias für einen ausgewählten Pivot-Schlüsselwert zu verwenden, wählen Sie im Menü "Aktionen" (Menü Aktionen) für diesen Schlüsselwert die Option Bearbeiten aus. Geben Sie im Bereich {\b Edit Pivot Key Alias} den Alias für den Schlüsselwert ein.

    Um einen Pivot-Schlüsselwert aus der ausgewählten Liste zu löschen, aktivieren Sie das entsprechende Kontrollkästchen, und wählen Sie Löschen aus. Alternativ können Sie auch aus dem Menü "Aktionen" die Option Löschen auswählen (Menü "Aktionen").

  6. Wählen Sie unter Ausdrücke die Option Ausdruck hinzufügen aus, um die Aggregatfunktionsausdrücke hinzuzufügen. Siehe Pivot-Ausdruck hinzufügen.
  7. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Um nach dem Namensmuster "*_CODE" und nach dem Typ "Numerisch" oder "varchar" zu filtern, wenden Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (numerisch, varchar) an.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  8. Zeigen Sie auf der Registerkarte Daten ein Sampling der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  9. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.
Pivot-Ausdruck hinzufügen

Für einen Pivot-Operator ist mindestens ein Aggregatfunktionsausdruck erforderlich.

  1. Wenn der Pivot-Operator auf der Datenflussleinwand ausgewählt ist, wählen Sie im Eigenschaftsfenster unter Ausdrücke die Option Ausdruck hinzufügen aus.

  2. Geben Sie im Bereich "Ausdruck hinzufügen" einen Namen für den Ausdruck in das Feld ID ein, oder lassen Sie den Namen unverändert.

  3. (Optional) Wählen Sie Blobale Auswahl zulassen aus, um mit einem Muster einen Ausdruck auf mehrere Quellattribute anzuwenden.

    Beispiel: Das Dataset enthält zwei DISCOUNT_-Attribute (DISCOUNT_VALUE und DISCOUNT_RATE), und Sie möchten die Funktion MAX auf beide Attribute anwenden.

    1. Wählen Sie unter Quellattribute Muster aus, und wählen Sie Muster hinzufügen aus.

    2. Fügen Sie im Bereich "Quellmuster hinzufügen" ein Muster zur Auswahl einer Gruppe von Quellattributen hinzu, deren Namen mit "DISCOUNT_" beginnen. Beispiel: Geben Sie DISCOUNT* ein, und wählen Sie Hinzufügen aus. Wählen Sie dann den Datentyp aus.

    3. Verwenden Sie unter Zielattribute ein Muster für die resultierenden Ausgabeattributnamen.

      Standardmäßig ist das Muster %MACRO_INPUT%_%PIVOT_KEY_VALUE% bereits für Sie eingefügt. %MACRO_INPUT% entspricht den Namen der Quellattribute, die durch das hinzugefügte Muster ausgewählt werden. %PIVOT_KEY_VALUE% entspricht den im Pivot-Schlüssel ausgewählten Werten.

      Beispiel: Wenn %PIVOT_KEY_VALUE% TELEVISION und %MACRO_INPUT% DISCOUNT_VALUE und DISCOUNT_RATE angibt, sind die pivotierten Attribute in der Ausgabe <pivot_name>.<expression_name>.DISCOUNT_VALUE_TELEVISION und <pivot_name>.<expression_name>.DISCOUNT_RATE_TELEVISION.

    4. Sie können die Option Quellattributtypen verwenden aktiviert lassen. Andernfalls wählen Sie unter Ausdrucksdatentyp den Datentyp aus, und füllen Sie die Felder entsprechend dem ausgewählten Typ aus.
  4. Wenn Sie die Option Bulkauswahl zulassen nicht aktiviert haben, verwenden Sie unter Zielattribute ein Muster für die resultierenden Ausgabeattributnamen.

    Standardmäßig ist das Muster %PIVOT_KEY_VALUE% bereits für Sie eingefügt. %PIVOT_KEY_VALUE% entspricht den im Pivot-Schlüssel ausgewählten Werten.

    Beispiel: Wenn %PIVOT_KEY_VALUE% TELEVISION und TELEPHONE angibt, lauten die pivotierten Attribute in der Ausgabe <pivot_name>.<expression_name>.TELEVISION und <pivot_name>.<expression_name>.TELEPHONE.

    Wählen Sie unter Ausdrucksdatentyp den Datentyp aus, und füllen Sie die Felder entsprechend dem ausgewählten Typ aus.

  5. Doppelklicken Sie im Abschnitt Expression Builder auf eingehende Attribute, Parameter oder Aggregatfunktionen, oder ziehen Sie sie in den Editor, um den Ausdruck zu erstellen. Sie können den Ausdruck auch selbst manuell schreiben und validieren.

    Die folgende Tabelle enthält die Liste der Aggregatfunktionen, die zum Erstellen von Pivot-Ausdrücken verfügbar sind.

    FunktionBeschreibungBeispiel
    COUNT(value[, value]*)Gibt die Anzahl der Zeilen zurück, für die mindestens ein angegebener Ausdruck nicht Null ist.COUNT(expr1)
    COUNT(*)Gibt die Gesamtanzahl der abgerufenen Zeilen zurück, einschließlich Zeilen, die Null enthalten.COUNT(*)
    MAX(value)Gibt den Höchstwert des Arguments zurück.MAX(expr)
    MIN(value)Gibt den Mindestwert des Arguments zurück.MIN(expr)
    SUM(numeric)Gibt die aus Werten einer Gruppe berechnete Summe zurück.SUM(expr1)

    Sie können auch Funktionen höherer Ordnung (Transformation) in einem Pivot-Ausdruck verwenden.

  6. Um einen Pivot-Ausdruck zu erstellen, geben Sie die Attribute und die Aggregatfunktion an.

    • Wenn Sie Bulkauswahl zulassen ausgewählt haben, geben Sie mit %MACRO_INPUT% im Ausdruck die Attribute an, auf die die Funktion angewendet werden soll.

      Beispiel: Wenn Sie das Muster DISCOUNT* zum Abgleich der Quellattribute DISCOUNT_RATE und DISCOUNT_VALUE verwendet haben, können Sie eine Aggregatfunktion wie SUM(numeric) angeben, um die Funktion auf alle Attribute anzuwenden, die dem Muster entsprechen. %MACRO_INPUT% ersetzt dabei den Platzhalter numeric in der Funktion:

      SUM(%MACRO_INPUT%)
    • Wenn Sie Blobale Auswahl zulassen nicht ausgewählt haben, geben Sie das Attribut in der Funktion an.

      Beispiel: Die Datenentity ist PRODUCT_SALES, und Sie möchten eine SUM-Aggregatfunktion für das SALES-Attribut verwenden. Sie können die Funktion als SUM(numeric) angeben und den Platzhalter numeric in der Funktion durch den Attributnamen ersetzen:

      SUM(PIVOT_1_1.PRODUCT_SALES.SALES)
    • Sie können einen Ausdrucksparameter für den Aggregatfunktionsnamen im Pivot-Ausdruck verwenden. Ein Ausdrucksparameter hat einen Namen, einen Typ und einen Standardwert.

      Beispiel: Der Ausdrucksparameter P_VARCHAR hat den Typ VARCHAR und den Standardwert MIN. Sie können die Aggregatfunktion wie folgt angeben:

      $P_VARCHAR(%MACRO_INPUT%)
      $P_VARCHAR(PIVOT_1_1.PRODUCT_SALES.SALES)
  7. Wählen Sie im Bereich "Ausdruck hinzufügen" die Option Hinzufügen aus.

Lookup-Operator

Der Lookup-Operator führt eine Abfrage und eine Transformation mithilfe einer Lookup-Bedingung und einer Eingabe aus zwei Quellen aus: einer primären Eingabequelle und einer Lookup-Eingabequelle.

Der Abfragevorgang verwendet die Bedingung und einen Wert in der primären Eingabe, um Zeilen in der Lookup-Quelle zu suchen. Die Transformation hängt Attribute aus der Lookup-Quelle an die primäre Quelle an.

Sie können die Aktion angeben, die ausgeführt werden soll, wenn mehrere Zeilen und keine Zeilen von der Lookup-Abfrage zurückgegeben werden. Beispiel: Sie können angeben, dass nicht übereinstimmende Zeilen übersprungen werden und jede übereinstimmende Zeile zurückgegeben wird, wenn mehrere übereinstimmende Zeilen vorhanden sind.

Die resultierende Ausgabe ist eine Kombination aus beiden Eingabequellen basierend auf der Lookup-Bedingung, einem Wert in der primären Eingabe und den bevorzugten auszuführenden Aktionen. Die primäre Eingabe bestimmt die Reihenfolge der Attribute und Zeilen in der Ausgabe. Dabei werden die Attribute aus der primären Eingabe vor den Attributen aus der Lookup-Eingabe platziert.

Lookup - Beispiel

Angenommen, Sie verwenden zwei Quelldatenentitys in einem Datenfluss. Datenentity 1 (PAYMENTS) wird als primäre Eingabe festgelegt. Datenentity 2 (CUSTOMERS) wird als Lookup-Eingabe festgelegt. Die Lookup-Bedingung ist wie folgt festgelegt:

LOOKUP_1_1.PAYMENTS.CUSTOMER_ID = LOOKUP_1_2.CUSTOMERS.CUSTOMER_ID

Die resultierende Lookup-Ausgabe zeigt, wie die Daten aus den beiden Eingaben kombiniert und transformiert werden. Attribute aus der Lookup-Quelle werden an die Attribute der primären Quelle mit den folgenden Verhaltensweisen angehängt:

  • Wenn der Vorgang keinen übereinstimmenden Datensatz für einen Wert in der Lookup-Quelle findet, wird der Datensatz mit Null für die Lookup-Attribute zurückgegeben. Beispiel: Für die CUSTOMER_ID-Werte 103, 104 und 105 werden keine übereinstimmenden Datensätze gefunden. Daher werden in der resultierenden Ausgabe die angehängten AttributenCUSTOMER_ID und NAME mit Null aufgefüllt.
  • Wenn der Vorgang mehrere übereinstimmende Datensätze für einen Wert in der Lookup-Quelle findet, wird jeder übereinstimmende Datensatz zurückgegeben.
Datenentity 1, primäre Eingabequelle
PAYMENT_IDCUSTOMER_IDAMOUNT
11012500
21021110
3103500
4104400
5105150
6102450
Datenentity 2, Lookup-Eingabequelle
CUSTOMER_IDNAME
101Peter
102Paul
106Mary
102Pauline
Lookup-Ausgabe
PAYMENT_IDCUSTOMER_IDAMOUNTCUSTOMER_IDNAME
11012500101Peter
21021110102Paul
3103500null (Nulldatentyp)null (Nulldatentyp)
4104400null (Nulldatentyp)null (Nulldatentyp)
5105150null (Nulldatentyp)null (Nulldatentyp)
6102450102Paul
Lookup-Operator hinzufügen und konfigurieren

Ein Lookup-Operator verwendet zwei Eingabequellen in einem Datenfluss.

Im folgenden Verfahren wird davon ausgegangen, dass Sie zwei Quelloperatoren hinzugefügt und konfiguriert haben.

  1. Ziehen Sie im Bereich Operatoren den Operator vom Typ Lookup auf die Leinwand.
  2. Geben Sie für den ausgewählten Lookup-Operator auf der Registerkarte Details des Bereichs "Eigenschaften" einen Namen in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
  3. Wählen Sie unter Primäre Eingabe die Quelle aus, die einen Wert für den Abgleich von Zeilen in der Lookup-Quelle enthält. Der Abgleich basiert auf einer Lookup-Bedingung, die Sie in Schritt 5 erstellen.
    Die primäre Eingabe bestimmt auch die Reihenfolge der Attribute und Zeilen in der resultierenden Lookup-Ausgabe.
  4. Wählen Sie unter Eingabe für Lookup die Quelle aus, die die primäre Quelle referenziert, um Zeilen abzugleichen.
    Attribute aus der Lookup-Eingabe werden an die Attribute der primären Quelle in der resultierenden Ausgabe angehängt.
  5. Wählen Sie unter Mehrere Abgleiche die Aktion aus, die ausgeführt werden soll, wenn mehrere übereinstimmende Zeilen zwischen der primären Quelle und der Lookup-Quelle gefunden werden. Die ausgewählte Aktion bestimmt die Zeilen, die in der resultierenden Ausgabe verwendet werden.
    • Eine übereinstimmende Zeile zurückgeben: Standardaktion. Wählt eine übereinstimmende Zeile aus.
    • Erste übereinstimmende Zeile zurückgeben: Wählt die erste Zeile aus den entsprechenden Zeilen aus.
    • Letzte übereinstimmende Zeile zurückgeben: Wählt die letzte Zeile aus den entsprechenden Zeilen aus.
    • Fehler zurückgeben: Zeigt einen Fehler an. Der Vorgang wird nicht abgeschlossen.
    • Alle übereinstimmenden Zeilen zurückgeben: Wählen Sie alle übereinstimmenden Zeilen aus.
  6. Wählen Sie unter Keine Übereinstimmung die Aktion aus, die ausgeführt werden soll, wenn keine übereinstimmende Zeile zwischen der primären Quelle und der Lookup-Quelle gefunden wird. Die ausgewählte Aktion bestimmt, wie eine primäre Quellenzeile verarbeitet wird, die keine übereinstimmende Zeile in der Lookup-Quelle aufweist.
    • Nicht übereinstimmende Zeilen überspringen: Nicht übereinstimmende Zeilen werden nicht in die resultierende Ausgabe aufgenommen.
    • Nicht übereinstimmende Zeilen zurückgeben: Standardaktion. Nicht übereinstimmende Zeilen werden mit Nullwerten in die resultierende Ausgabe aufgenommen.
  7. Wählen Sie neben Suchbedingung die Option Erstellen aus.
    1. Im Bereich "Lookup-Bedingung erstellen" im Abschnitt "Bedingungsbuilder" können Sie Attribute, Parameter und Funktionen doppelklicken oder ziehen, um sie dem Editor hinzuzufügen, um eine Bedingung zu erstellen. Sie können den Bedingungsausdruck auch manuell in den Editor eingeben und den Ausdruck validieren.
      Hinweis

      Im Editor kann ein hinzugefügtes Element (z.B. eine Funktion) Platzhalter enthalten. Um einen Platzhalter durch ein anderes Element zu ersetzen, markieren Sie den Platzhalter, und doppelklicken Sie dann auf ein anderes Element in der Liste.
    2. Wählen Sie Erstellen aus.
  8. (Optional) Wählen Sie auf Parameter zuweisen, um Parameter zu verwenden, damit die Lookup-Bedingung beim Veröffentlichen des Datenflusses nicht an den kompilierten Code gebunden ist. Siehe Parameter zuweisen.
  9. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Um nach dem Namensmuster "*_CODE" und nach dem Typ "Numerisch" oder "varchar" zu filtern, wenden Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (numerisch, varchar) an.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  10. Zeigen Sie auf der Registerkarte Daten ein Sampling der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  11. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.
Lookup-Bedingung erstellen

Mit dem Bedingungsbuilder können Sie Elemente visuell auswählen, um eine Lookup-Bedingung zu erstellen. Sie können eine Bedingung auch manuell im Editor eingeben.

Mit einer Lookup-Bedingung können Sie einen Wert in einer primären Eingabequelle verwenden, um Datensätze in einer Lookup-Eingabequelle zu suchen und alle übereinstimmenden Zeilen zurückzugeben. Zeilen ohne Übereinstimmung werden mit Nullwerten zurückgegeben.

Die Elemente, die Sie in einer Lookup-Bedingung verwenden können, umfassen eingehende Attribute, Parameter und Funktionen. Sie können ein Element in der Liste doppelklicken oder ziehen, um es dem Editor hinzuzufügen und eine Bedingung zu erstellen. Sie können die Bedingung vor dem Erstellen validieren.

Incoming zeigt die Attribute aus den Upstreameingabeports in zwei separaten LOOKUP-Ordnern an. Zeigen Sie die Attribute der einzelnen Ports an, indem Sie den entsprechenden LOOKUP-Ordner ein- oder ausblenden. Beispiel: Wenn LOOKUP_1_1 die primäre Eingabe und LOOKUP_1_2 die Lookup-Eingabe ist, können die Lookup-Bedingungen basierend auf einem Wert im primären Eingabeattribut ADDRESS_ID wie folgt lauten:

LOOKUP_1_1.BANK_ADDRESS.ADDRESS_ID = '2001'
LOOKUP_1_1.BANK_ADDRESS.ADDRESS_ID = LOOKUP_1_2.BANK_CUSTOMER.ADDRESS_ID

Parameter sind die Ausdrucksparameter, die dem Datenfluss mit dem Condition Builder (Filter-, Join-, Lookup- und Aufteilungsoperatoren) oder Expression Builder (Ausdrucks- und Aggregatoperatoren) hinzugefügt wurden. Ein Ausdrucksparameter hat einen Namen, einen Typ und einen Standardwert. Siehe Ausdrucksparameter hinzufügen.

Angenommen, Sie möchten Bankkunden einer bestimmten Bank suchen. Sie können einen VARCHAR-Parameter mit dem Namen P_LOOK_UP erstellen und den Standardwert auf 2001 setzen, also den spezifischen Bankwert. Anschließend können Sie die Lookup-Bedingung wie folgt erstellen:

LOOKUP_1_1.BANK_ADDRESS.ADDRESS_ID = LOOKUP_1_2.BANK_CUSTOMER.ADDRESS_ID AND LOOKUP_1_1.BANK_ADDRESS.ADDRESS_ID = $P_LOOK_UP

Funktionen sind die in Data Integration verfügbaren Funktionen, die Sie in einer Bedingung verwenden können. Funktionen sind Vorgänge, die für an die Funktion übergebene Argumente ausgeführt werden. Funktionen berechnen, bearbeiten oder extrahieren Datenwerte aus Argumenten.

Im Folgenden finden Sie eine Liste der Funktionen, die Sie beim Erstellen von Bedingungen hinzufügen können:

Hashfunktionen
FunktionBeschreibungBeispiel
MD5(all data types)Berechnet eine MD5-Prüfsumme des Datentyps und gibt einen Zeichenfolgenwert zurück. MD5(column_name)
SHA1(all data types)Berechnet einen SHA-1-Hashwert des Datentyps und gibt einen Zeichenfolgenwert zurück. SHA1(column_name)
SHA2(all data types, bitLength)Berechnet einen SHA-2-Hashwert des Datentyps und gibt einen Zeichenfolgenwert zurück. bitLength ist eine Ganzzahl. SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Berechnet einen Hashwert für expr und gibt einen NUMBER-Wert zurück.

expr kann ein Ausdruck, eine Spalte oder ein Literal sein.

max_bucket ist der zurückgegebene maximale Bucket-Wert zwischen 0 und 4294967295 (Standard).

seed_value ist ein Wert zwischen 0 (Standard) und 4294967295.

Oracle wendet die Hash-Funktion auf die Kombination aus expr und seed_value an, um viele verschiedene Ergebnisse für dasselbe Datenset zu erzeugen.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Arithmetische Funktionen
FunktionBeschreibungBeispiel
ABS(numeric)Gibt die absolute Potenz des Wertes numeric zurück.ABS(-1)
CEIL(numeric)Gibt die kleinste Ganzzahl zurück, die nicht größer als der Wert numeric ist.CEIL(-1,2)
FLOOR(numeric)Gibt die größte Ganzzahl zurück, die nicht größer als der Wert numeric ist.FLOOR(-1,2)
MOD(numeric1, numeric2)Gibt den Rest zurück, nachdem numeric1 durch numeric2 geteilt wurde.MOD(8,2)
POWER(numeric1, numeric2)Entspricht numeric1 hoch numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Gibt numeric1 gerundet auf numeric2 Dezimalstellen zurück.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Gibt numeric1 gekürzt auf numeric2 Dezimalstellen zurück.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Konvertiert expr basierend auf den Angaben für format und locale (optional) in eine Zahl. Das Standardgebietsschema ist en-US. Unterstützte Sprachtags.

Unterstützte Formatmuster:

  • 0: Eine Ziffer
  • #: Eine Ziffer, Null wird als nicht vorhanden angezeigt
  • .: Platzhalter für Dezimaltrennzeichen
  • ,: Platzhalter für Gruppierungstrennzeichen
  • E: Trennt Mantisse und Exponent bei exponentiellen Formaten
  • -: Standardpräfix für Negativ
  • ¤: Währungszeichen, wird durch das Währungssymbol ersetzt. Wenn es doppelt vorhanden ist, wird es durch das internationale Währungssymbol ersetzt. Bei Verwendung in einem Muster wird das monetäre Dezimaltrennzeichen statt des Dezimaltrennzeichens verwendet.

TO_NUMBER('5467.12') gibt 5467.12 zurück

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') gibt -45677.7 zurück

Datums- und Zeitfunktionen
Funktion Beschreibung Beispiel
CURRENT_DATE Gibt das aktuelle Datum zurück. CURRENT_DATE gibt das aktuelle Datum zurück, z.B. 2023-05-26
CURRENT_TIMESTAMP Gibt das aktuelle Datum und die Zeit für die Session-Zeitzone zurück. CURRENT_TIMESTAMP gibt das aktuelle Datum und die aktuelle Uhrzeit zurück, wie 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Gibt das Datum zurück, das number von Tagen nach dem angegebenen Datum date liegt. DATE_ADD('2017-07-30', 1) gibt 2017-07-31 zurück
DATE_FORMAT(expr, format[, locale])

Formatiert expr vom Typ "Datum" basierend auf den Angaben für format und locale (optional). Das Standardgebietsschema ist en-US. Unterstützte Sprachtags.

Unterstützte Datumsformatmuster:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') gibt '2020-10-11' zurück. Das erste Argument ist ein Date-Objekt, das den 11. Oktober 2020 darstellt.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') gibt '2018/junio/17' zurück

DAYOFMONTH(date) Gibt den Tag des Monats für das Datum zurück. DAYOFMONTH('2020-12-25') gibt 25 zurück
DAYOFWEEK(date) Gibt den Tag der Woche für das Datum zurück. DAYOFWEEK('2020-12-25') gibt 6 für Freitag zurück. In den USA gilt der Sonntag als 1, der Montag als 2 usw.
DAYOFYEAR(date) Gibt den Tag des Jahres für das Datum zurück. DAYOFYEAR('2020-12-25') gibt 360 zurück
WEEKOFYEAR(date) Gibt die Woche des Jahres für das Datum zurück.

WEEKOFYEAR('2022-07-28') gibt 30 zurück

WEEKOFYEAR('2022-07-28 13:24:30') gibt 30 zurück

HOUR(datetime) Gibt den Stundenwert für das Datum/die Uhrzeit zurück. HOUR('2020-12-25 15:10:30') gibt 15 zurück
LAST_DAY(date) Gibt den letzten Tag des Monats für das Datum zurück. LAST_DAY('2020-12-25') gibt 31 zurück
MINUTE(datetime) Gibt den Minutenwert für das Datum/die Uhrzeit zurück. HOUR('2020-12-25 15:10:30') gibt 10 zurück
MONTH(date) Gibt den Monatswert für das Datum zurück. MONTH('2020-06-25') gibt 6 zurück
QUARTER(date) Gibt das Quartal des Jahres zurück, in dem das Datum liegt. QUARTER('2020-12-25') gibt 4 zurück
SECOND(datetime) Gibt den Sekundenwert für das Datum/die Uhrzeit zurück. SECOND('2020-12-25 15:10:30') gibt 30 zurück
TO_DATE(string, format_string[, localeStr]) Parst den Zeichenfolgenausdruck mit dem Ausdruck format_string in ein Datum. Das Gebietsschema ist optional. Der Standardwert ist en-US. Unterstützte Sprachtags.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Formatzeichenfolgen (unter Beachtung der Groß-/Kleinschreibung) unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') gibt einen Datumswert von 2016-12-31 zurück

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') gibt einen Datumswert von 2018-06-17 zurück

TO_TIMESTAMP(expr, format_string[, localeStr]) Konvertiert expr vom Typ "VARCHAR" basierend auf den Angaben für format_string und localeStr (optional) in einen TIMESTAMP-Wert.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Formatmuster unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') gibt ein TIMESTAMP-Objekt zurück, das 11am 10:10 Oct 11th, 2020 darstellt
WEEK(date)

Gibt den Wochenwert für das Datum zurück.

WEEK('2020-06-25') gibt 4 zurück
YEAR(date) Gibt den Jahreswert für das Datum zurück. YEAR('2020-06-25') gibt 2020 zurück
ADD_MONTHS(date_expr, number_months) Gibt das Datum nach dem Hinzufügen der angegebenen Anzahl von Monaten zum angegebenen Datum, zum Zeitstempel oder zur Zeichenfolge mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS zurück.

ADD_MONTHS('2017-07-30', 1) gibt 2017-08-30 zurück

ADD_MONTHS('2017-07-30 09:07:21', 1) gibt 2017-08-30 zurück

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Gibt die Anzahl der Monate zwischen start_date_expr und end_date_expr zurück. start_date_expr und end_date_expr können Datumsangaben, Zeitstempel oder Zeichenfolgen mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS sein.

Eine Ganzzahl wird zurückgegeben, wenn beide Datumsangaben denselben Tag im Monat oder den letzten Tag im jeweiligen Monat angeben. Andernfalls wird die Differenz auf Basis von 31 Tagen pro Monat berechnet.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') gibt 1 zurück

MONTHS_BETWEEN('2022-07-28', '2020-07-25') gibt 24 zurück

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') gibt 24 zurück

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interpretiert ein Datum, einen Zeitstempel oder eine Zeichenfolge als UTC-Zeit und konvertiert diese Zeit in einen Zeitstempel in der angegebenen Zeitzone.

Verwenden Sie für eine Zeichenfolge ein Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Das Zeitzonenformat ist entweder eine regionsbasierte Zonen-ID (z.B. "Region/Ort", wie "Asia/Seoul") oder ein Zeitzonenversatz (z.B. UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') gibt 2017-07-14 03:40:00.0 zurück
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Konvertiert ein Datum, einen Zeitstempel oder eine Zeichenfolge in der angegebenen Zeitzone in einen UTC-Zeitstempel.

Verwenden Sie für eine Zeichenfolge ein Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Das Zeitzonenformat ist entweder eine regionsbasierte Zonen-ID (z.B. "Region/Ort", wie "Asia/Seoul") oder ein Zeitzonenversatz (z.B. UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') gibt 2017-07-14 01:40:00.0 zurück
FROM_UNIXTIME(unix_time[, fmt])

Konvertiert die angegebene Unix-Zeit oder -Epoche in eine Zeichenfolge, die den Zeitstempel dieses Zeitpunkts in der aktuellen Systemzeitzone und im angegebenen Format darstellt.

Hinweis: Die Unix-Zeit ist die Anzahl der Sekunden, die seit dem 1. Januar 1970 00:00:00 UTC verstrichen sind.

Wenn fmt ausgelassen wird, lautet das Standardformat yyyy-MM-dd HH:mm:ss.

FROM_UNIXTIME(1255033470) gibt '2009-10-08 13:24:30' zurück

FROM_UNIXTIME(1637258854) gibt '2021-11-18 10:07:34' zurück.

Die Standardzeitzone in den Beispielen ist PST.

UNIX_TIMESTAMP([time_expr[, fmt]])

Konvertiert die aktuelle oder angegebene Zeit in einen Unix-Zeitstempel in Sekunden.

time_expr ist ein Datum, ein Zeitstempel oder eine Zeichenfolge mit einem Format wie yyyy-MM-dd oder yyyy-MM-dd HH:mm:ss.SSS.

Wenn time_expr nicht angegeben wird, wird die aktuelle Uhrzeit konvertiert.

Wenn time_expr eine Zeichenfolge ist und fmt ausgelassen wird, lautet der Standardwert yyyy-MM-dd HH:mm:ss.

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') gibt 28800 zurück

Die Standardzeitzone in diesem Beispiel ist PST.

INTERVAL 'year' YEAR[(year_precision)]

Gibt einen Zeitraum in Jahren zurück.

year_precision ist die Anzahl der Stellen im Feld year. Der Wert muss zwischen 0 und 9 liegen. Wenn year_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '1' YEAR gibt ein Intervall von 1 Jahr zurück

INTERVAL '200' YEAR(3) gibt ein Intervall von 200 Jahren zurück

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Gibt einen Zeitraum in Jahren und Monaten zurück. Verwenden Sie diese Option, um einen Zeitraum mit den Feldern year und month zu speichern.

year_precision ist die Anzahl der Stellen im Feld year. Der Wert muss zwischen 0 und 9 liegen. Wenn year_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '100-5' YEAR(3) TO MONTH gibt ein Intervall von 100 Jahren und 5 Monaten zurück. Sie müssen 3 als führende Gesamtstellenanzahl für das Jahr angeben.
INTERVAL 'month' MONTH[(month_precision)]

Gibt einen Zeitraum in Monaten zurück.

month_precision ist die Anzahl der Stellen im Feld Monat. Der Wert muss 0 bis 9 sein. Wenn month_precision ausgelassen wird, lautet der Standardwert 2 (muss weniger als 100 Jahre betragen).

INTERVAL '200' MONTH(3) gibt ein Intervall von 200 Monaten zurück. Sie müssen 3 als Gesamtstellenanzahl für den Monat angeben.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Tagen, Stunden, Minuten und Sekunden zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) gibt ein Intervall von 11 Tagen, 10 Stunden, 09 Minuten, 08 Sekunden und 555 Tausendstelsekunden zurück
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Gibt einen Zeitraum in Tagen, Stunden und Minuten zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '11 10:09' DAY TO MINUTE gibt ein Intervall von 11 Tagen, 10 Stunden und 09 Minuten zurück
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Gibt einen Zeitraum in Tagen und Stunden zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

INTERVAL '100 10' DAY(3) TO HOUR gibt ein Intervall von 100 Tagen und 10 Stunden zurück
INTERVAL 'day' DAY[(day_precision)]

Gibt einen Zeitraum in Tagen zurück.

day_precision ist die Anzahl der Stellen im Feld day. Der Wert muss zwischen 0 und 9 liegen. Der Standard ist 2.

INTERVAL '999' DAY(3) gibt ein Intervall von 999 Tagen zurück
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Stunden, Minuten und Sekunden zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) gibt ein Intervall von 9 Stunden, 08 Minuten und 7,6666666 Sekunden zurück
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Gibt einen Zeitraum in Stunden und Minuten zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '09:30' HOUR TO MINUTE gibt ein Intervall von 9 Stunden und 30 Minuten zurück
INTERVAL 'hour' HOUR[(hour_precision)]

Gibt einen Zeitraum in Stunden zurück.

hour_precision ist die Anzahl der Stellen im Feld Stunde. Der Wert muss 0 bis 2 sein. Der Standard ist 2.

INTERVAL '40' HOUR gibt ein Intervall von 40 Stunden zurück
INTERVAL 'minute' MINUTE[(minute_precision)]

Gibt einen Zeitraum in Minuten zurück.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

INTERVAL '15' MINUTE gibt ein Intervall von 15 Minuten zurück
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Minuten und Sekunden zurück.

minute_precision ist die Anzahl der Stellen im Feld Minute. Der Wert muss zwischen 0 und 2 liegen. Der Standard ist 2.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des zweiten Wertes im Feld time. Der Wert muss zwischen 0 und 9 liegen.

INTERVAL '15:30' MINUTE TO SECOND gibt ein Intervall von 15 Minuten und 30 Sekunden zurück
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Gibt einen Zeitraum in Sekunden zurück.

fractional_seconds_precision ist die Anzahl der Ziffern im Bruchteil des Feldes zweite. Er muss zwischen 0 und 9 liegen. Der Standard ist 3.

INTERVAL '15.678' SECOND gibt ein Intervall von 15,678 Sekunden zurück
Analytische Funktionen
Funktion Beschreibung Beispiel
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Gibt den Wert zurück, der in der Zeile ausgewertet wird, die der ersten Zeile des Fensterrahmens entspricht. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) gibt den ersten Wert von BANK_ID in einem Fenster zurück, über das die Zeilen als die aktuelle Zeile und 1 Zeile nach dieser Zeile berechnet werden, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Gibt den Wert zurück, der in der Zeile mit einem bestimmten Offset vor der aktuellen Zeile innerhalb der Partition ausgewertet wird. Wenn keine solche Zeile vorhanden ist, wird der Standardwert zurückgegeben. Sowohl Offset- als auch Standardwert werden in Bezug auf die aktuelle Zeile ausgewertet. Wenn keine Angabe gemacht wird, wird Offset standardmäßig auf 1 und standardmäßig auf NULL gesetzt. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) gibt den Wert von BANK_ID aus der zweiten Zeile vor der aktuellen Zeile zurück, unterteilt nach BANK_ID und in absteigender Reihenfolge von BANK_NAME. Wenn kein solcher Wert vorhanden ist, wird hello zurückgegeben.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Gibt den Wert zurück, der in der Zeile ausgewertet wird, die die letzte Zeile des Fensterrahmens ist. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) gibt den letzten Wert von BANK_ID in einem Fenster zurück, über das die Zeilen als die aktuelle Zeile und 1 Zeile nach dieser Zeile berechnet werden, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Gibt den Wert zurück, der in der Zeile mit einem bestimmten Offset nach der aktuellen Zeile innerhalb der Partition ausgewertet wird. Wenn keine solche Zeile vorhanden ist, wird der Standardwert zurückgegeben. Sowohl Offset- als auch Standardwert werden in Bezug auf die aktuelle Zeile ausgewertet. Wenn keine Angabe gemacht wird, wird Offset standardmäßig auf 1 und standardmäßig auf NULL gesetzt. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt den Wert von BANK_ID aus der zweiten Zeile nach der aktuellen Zeile zurück, unterteilt nach BANK_ID und in aufsteigender Reihenfolge von BANK_NAME. Wenn kein solcher Wert vorhanden ist, wird hello zurückgegeben.
RANK() OVER([ partition_clause ] order_by_clause) Gibt den Rang der aktuellen Zeile mit Lücken beginnend mit 1 zurück. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt den Rang der einzelnen Zeilen in der Partitionsgruppe von BANK_ID in aufsteigender Reihenfolge von BANK_NAME zurück.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Gibt die eindeutige Nummer der aktuellen Zeile innerhalb der zugehörigen Partition beginnend mit 1 zurück. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) gibt die eindeutige Zeilennummer der einzelnen Zeilen innerhalb der Partitionsgruppe von BANK_ID in aufsteigender Reihenfolge von BANK_NAME zurück.
Zeichenfolgenfunktionen
FunktionenBeschreibungBeispiel
CAST(value AS type)Gibt den angegebenen Wert im angegebenen Typ zurück.CAST("10" AS INT) gibt 10 zurück
CONCAT(string, string)Gibt die kombinierten Werte von Zeichenfolgen oder Spalten zurück.CONCAT('Oracle','SQL') gibt OracleSQL zurück
CONCAT_WS(separator, expression1, expression2, expression3,...) Gibt die kombinierten Werte von Zeichenfolgen oder Spalten mit dem angegebenen Trennzeichen zwischen den Zeichenfolgen oder Spalten zurück.

Ein Trennzeichen ist erforderlich und muss eine Zeichenfolge sein.

Nach dem Trennzeichen muss mindestens ein Ausdruck angegeben werden. Beispiel: CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') gibt Hello-Oracle zurück

CONCAT_WS(' ', address, city, postal_code) gibt 123 MyCity 987654 zurück

Wenn ein untergeordnetes Element der Funktion ein Array ist, wird das Array vereinfacht:

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) gibt 1,2,3,4,5,6,7,8,9 zurück

INITCAP(string)Gibt die Zeichenfolge so zurück, dass jedes Wort mit einem Großbuchstaben beginnt, die anderen Buchstaben Kleinbuchstaben sind und die einzelnen Wörter durch ein Leerzeichen getrennt werden.INITCAP('oRACLE sql') gibt Oracle Sql zurück
INSTR(string, substring[start_position])Gibt den (1-basierten) Index des ersten Vorkommens von substring in string zurück.INSTR('OracleSQL', 'SQL') gibt 7 zurück
LOWER(string)Gibt die Zeichenfolge zurück, wobei alle Buchstaben in Kleinbuchstaben umgewandelt werden.LOWER('ORACLE') gibt oracle zurück
LENGTH(string)Gibt die Länge der Zeichenfolge in Zeichen oder die Anzahl der Byte von Binärdaten zurück. Nachgestellte Leerzeichen werden mitgezählt.LENGTH('Oracle') gibt 6 zurück
LTRIM(string)Gibt die Zeichenfolge zurück, wobei vorangestellte Leerzeichen von links entfernt werden.LTRIM(' Oracle')
NVL(expr1, epxr2)Gibt das Argument zurück, das nicht Null ist.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Sucht und extrahiert die Zeichenfolge, die einem regulären Ausdrucksmuster aus der Eingabezeichenfolge entspricht. Wenn der optionale Erfassungsgruppenindex angegeben ist, extrahiert die Funktion die spezifische Gruppe.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') gibt https://www.oracle.com zurück

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) gibt 22 zurück
REPLACE(string, search, replacement)Ersetzt alle Vorkommen von search durch replacement.

Wird search nicht in der Zeichenfolge gefunden, wird die Zeichenfolge unverändert zurückgegeben.

Wenn replacement nicht angegeben oder eine leere Zeichenfolge ist, wird search durch nichts ersetzt und aus string entfernt.

REPLACE('ABCabc', 'abc', 'DEF') gibt ABCDEF zurück
RTRIM(string)Gibt die Zeichenfolge zurück, wobei vorangestellte Leerzeichen von rechts entfernt werden.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Gibt die erste Teilzeichenfolge ab der Position zurück. SUBSTRING('Oracle SQL' FROM 2 FOR 3) gibt rac zurück
Für Zahlen, TO_CHAR(expr) und für Datumsangaben TO_CHAR(expr, format[, locale])Konvertiert Zahlen und Datumsangaben in Zeichenfolgen. Für Zahlen ist kein Format erforderlich. Verwenden Sie für Datumsangaben dasselbe Format wie DATE_FORMAT, das unter Datums- und Zeitfunktionen beschrieben wird. Das Standardgebietsschema ist en-US. Siehe unterstützte Sprachtags.

In Pipelineausdrücken muss format_string die strftime-Formatcodes verwenden. Andernfalls werden folgende Datumsformatmuster unterstützt:

  • yy: Zweistelliges Jahr
  • yyyy: Vierstelliges Jahr
  • M: Numerischer Monat, z.B. 1 für Januar
  • MM: Numerischer Monat, z.B. 01 für Januar
  • MMM: Abgekürzter Monat, z.B. Jan
  • MMMM: Vollständiger Monat, z.B. Januar
  • d: Numerischer Tag des Monats, z.B. 1 für den 1. Juni
  • dd: Numerischer Tag des Monats, Beispiel: 01 für den 1. Juni
  • DDD: Numerischer Tag des Jahres von 001 bis 366, z.B. 002 für den 2. Januar
  • F: Numerischer Wochentag in einem Monat, z.B. 3 für den 3. Montag im Juni.
  • EEE oder E: Abgekürzter benannter Tag der Woche, z.B. Sun für Sonntag
  • EEEE: Benannter Tag der Woche, z.B. Sonntag
  • HH: 24-Stunden-Format von 00 bis 23
  • H: 24-Stunden-Format von 0 bis 23
  • hh: das 12-Stunden-Format von 01 bis 12
  • h: 12-Stunden-Format von 1 bis 12
  • mm: Minuten von 00 bis 59
  • ss: Sekunden von 00 bis 59
  • SSS: Millisekunden von 000 bis 999
  • a: AM oder PM
  • z: Zeitzone wie PDT

Zahlenbeispiel: TO_CHAR(123) gibt 123 zurück

Datumsbeispiel: TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') gibt die Zeichenfolge 2020.10.30 zurück. Das erste Argument ist ein Datumsobjekt, das für den 30. Oktober 2020 steht.

UPPER(string)Gibt eine Zeichenfolge zurück, wobei alle Buchstaben in Großbuchstaben geändert werden.UPPER('oracle') gibt ORACLE zurück
LPAD(str, len[, pad])Gibt eine Zeichenfolge zurück, die links mit angegebenen Zeichen auf eine bestimmte Länge aufgefüllt wird. Wenn Sie das pad-Zeichen auslassen, wird standardmäßig ein Speicherplatz verwendet.LPAD('ABC', 5, '*') gibt '**ABC' zurück
RPAD(str, len[, pad])Gibt eine Zeichenfolge zurück, die rechts mit angegebenen Zeichen auf eine bestimmte Länge aufgefüllt wird. Wenn Sie das pad-Zeichen auslassen, wird standardmäßig ein Speicherplatz verwendet.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
(Vergleichs-)Operatorfunktionen
FunktionBeschreibungBeispiel
CASE WHEN condition1 THEN result1 ELSE result2 ENDGibt den Wert zurück, für den eine Bedingung erfüllt wird.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END gibt ABC zurück, wenn 1> 0. Andernfalls wird XYZ zurückgegeben
ANDDer logische AND-Operator. Gibt "true" zurück, wenn beide Operanden wahr sind. Andernfalls wird "false" zurückgegeben.(x = 10 AND y = 20) gibt "true" zurück, wenn x gleich 10 und y gleich 20 ist. Wenn einer der Operanden nicht wahr ist, wird "false" zurückgegeben
ORDer logische OR-Operator. Gibt "true" zurück, wenn einer der Operanden wahr ist oder beide wahr sind. Andernfalls wird "false" zurückgegeben.(x = 10 OR y = 20) gibt "false" zurück, wenn x nicht gleich 10 und y nicht gleich 20 ist. Wenn einer der Operanden wahr ist, wird "true" zurückgegeben
NOTDer logische NOT-Operator.
LIKEErmittelt durch Mustervergleich, ob die Zeichenfolge string1 mit dem Muster in string2 übereinstimmt.
=Führt einen Gleichheitstest aus. Gibt "true" zurück, wenn expr1 gleich expr2 ist. Andernfalls wird "false" zurückgegeben.x = 10 gibt "true" zurück, wenn der Wert von x gleich 10 ist. Andernfalls wird "false" zurückgegeben
!=Führt einen Ungleichheitstest aus. Gibt "true" zurück, wenn expr1 nicht gleich expr2 ist. Andernfalls wird "false" zurückgegeben.x != 10 gibt "false" zurück, wenn der Wert von x gleich 10 ist. Andernfalls wird "true" zurückgegeben
>Testet, ob ein Ausdruck "größer als" ist. Gibt "true" zurück, wenn expr1 größer als expr2 ist.x > 10 gibt "true" zurück, wenn der Wert von x größer als 10 ist. Andernfalls wird "false" zurückgegeben
>=Testet, ob ein Ausdruck "größer/gleich" ist. Gibt "true" zurück, wenn expr1 größer als oder gleich expr2 ist.x >= 10 gibt "true" zurück, wenn der Wert von x größer als oder gleich 10 ist. Andernfalls wird "false" zurückgegeben
<Testet, ob ein Ausdruck "kleiner als" ist. Gibt "true" zurück, wenn expr1 kleiner als expr2 ist.x < 10 gibt "true" zurück, wenn der Wert von x kleiner als 10 ist. Andernfalls wird "false" zurückgegeben
<=Testet, ob ein Ausdruck "kleiner/gleich" ist. Gibt "true" zurück, wenn expr1 kleiner oder gleich expr2 ist.x <= 10 gibt "true" zurück, wenn der Wert von x kleiner als 10 ist. Andernfalls wird "false" zurückgegeben
||Verkettet zwei Zeichenfolgen.'XYZ' || 'hello' gibt 'XYZhello' zurück
BETWEENBewertet einen Bereich.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INTestet, ob ein Ausdruck mit einer Werteliste übereinstimmt.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Eindeutige-ID-Funktionen
FunktionBeschreibungBeispiel
NUMERIC_ID()Generiert eine universell eindeutige ID, die eine 64-Bit-Zahl für jede Zeile darstellt.NUMERIC_ID() gibt beispielsweise 3458761969522180096 und 3458762008176885761 zurück
ROWID()Generiert monoton aufsteigende 64-Bit-Zahlen.ROWID() gibt beispielsweise 0, 1, 2 usw. zurück
UUID()Generiert eine universell eindeutige ID, die in einer 128-Bit-Zeichenfolge für jede Zeile besteht.UUID() gibt zum Beispiel 20d45c2f-0d56-4356-8910-162f4f40fb6d zurück
MONOTONICALLY_INCREASING_ID() Generiert eindeutige, monoton aufsteigende 64-Bit-Ganzzahlen, die keine aufeinanderfolgenden Zahlen sind. MONOTONICALLY_INCREASING_ID() gibt beispielsweise 8589934592 und 25769803776 zurück
Bedingungen
FunktionBeschreibungBeispiel
COALESCE(value, value [, value]*)Gibt das erste Nicht-Null-Argument zurück, falls vorhanden. Andernfalls wird Null zurückgegeben.COALESCE(NULL, 1, NULL) gibt 1 zurück
NULLIF(value, value)Gibt Null zurück, wenn die beiden Werte gleich sind. Andernfalls wird der erste Wert zurückgegeben.NULLIF('ABC','XYZ') gibt ABC zurück
Hierarchische Funktionen
FunktionBeschreibungBeispiel
SCHEMA_OF_JSON(string)Parst eine JSON-Zeichenfolge und leitet das Schema im DDL-Format ab.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') gibt 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>' zurück

SCHEMA_OF_JSON('[{\"col\":0}]') gibt 'ARRAY<STRUCT<col: BIGINT>>' zurück

FROM_JSON(column, string)

Parst eine Spalte mit einer JSON-Zeichenfolge in einen der folgenden Typen mit dem angegebenen Schema.

  • Map, mit Zeichenfolge als Schlüsseltyp
  • Struct
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') gibt eine Spalte vom Typ "Struct" mit dem angegebenen Schema zurück: {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') gibt eine Spalte vom Typ "Struct" mit dem angegebenen Schema zurück: {1, 0.8}

TO_JSON(column)Konvertiert eine Spalte vom Typ "Struct" oder "Struct-Array" oder vom Typ "Map" oder "Map-Array" in eine JSON-Zeichenfolge.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) gibt eine JSON-Zeichenfolge {"s1":[1,2,3],"s2":{"key":"value"}} zurück
TO_MAP(string,column[,string,column]*)Erstellt eine neue Spalte vom Typ "Map". Die Eingabespalten müssen als Schlüssel/Wert-Paare gruppiert werden. Die Eingabeschlüsselspalten dürfen nicht Null sein und müssen alle denselben Datentyp aufweisen. Die Eingabewertspalten müssen alle denselben Datentyp aufweisen.

TO_MAP('Ename',Expression_1.attribute1) gibt eine Spalte vom Typ "Map" zurück: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) gibt eine Spalte vom Typ "Map" zurück: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Erstellt eine neue Spalte vom Typ "Struct". Die Eingabespalten müssen als Schlüssel/Wert-Paare gruppiert werden.

TO_STRUCT('Ename',Expression_1.attribute1) gibt {100} zurück

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) gibt {100, "John"} zurück

TO_ARRAY(column[,column]*)Erstellt eine neue Spalte vom Typ "Array". Die Eingabespalten müssen alle denselben Datentyp aufweisen.

TO_Array(Expression_1.attribute1) gibt [100] zurück

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) gibt ["John","Friend"] zurück

Funktionen höherer Ordnung

Datenflussoperatoren, die das Erstellen von Ausdrücken und hierarchischen Datentypen unterstützen, können Funktionen höherer Ordnung verwenden.

Die folgenden Operatoren werden unterstützt:

  • Aggregieren

  • Ausdruck

  • Filter

  • Join

  • Referenz

  • Teilen

  • Drehen

FunktionBeschreibungBeispiel
TRANSFORM(column, lambda_function)Nimmt ein Array und eine anonyme Funktion an. Richten Sie ein neues Array ein, indem Sie die Funktion auf jedes Element anwenden und das Ergebnis dem Ausgabearray zuweisen.Für ein Eingabearray mit Ganzzahlen [1, 2, 3] gibt TRANSFORM(array, x -> x + 1) ein neues Array von [2, 3, 4] zurück.
TRANSFORM_KEYS(column, lambda_function)Nimmt eine Karte und eine Funktion mit 2 Argumenten (Schlüssel und Wert) und gibt eine Karte zurück, in der die Schlüssel den Typ des Ergebnisses der Lambda-Funktion haben und die Werte den Typ der Spaltenzuordnungswerte haben.Bei einer Eingabezuordnung mit Ganzzahlschlüsseln und Zeichenfolgenwerten von {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'} gibt TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) eine neue Zuordnung von {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'} zurück.
TRANSFORM_VALUES(column, lambda_function)Nimmt eine Karte und eine Funktion mit 2 Argumenten (Schlüssel und Wert) und gibt eine Karte zurück, in der die Werte den Typ des Ergebnisses der Lambda-Funktionen haben und die Schlüssel den Typ der Spaltenzuordnungsschlüssel haben. Bei einer Eingabezuordnung mit Zeichenfolgenschlüsseln und Zeichenfolgenwerten von {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'} gibt TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) eine neue Zuordnung von {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'} zurück.
ARRAY_SORT(array(...), lambda_function)

Nur der Ausdrucksoperator unterstützt ARRAY_SORT.

Nimmt ein Array an und sortiert nach der angegebenen Funktion, die 2 Argumente annimmt.

Die Funktion muss -1, 0 oder 1 zurückgeben, je nachdem, ob das erste Element kleiner, gleich oder größer als das zweite Element ist.

Wenn die Funktion ausgelassen wird, wird das Array in aufsteigender Reihenfolge sortiert.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

Das zurückgegebene Array ist:

[1,5,6]

Funktionsoperator

Verwenden Sie den Funktionsoperator, um Oracle Cloud Infrastructure Functions aus Data Integration aufzurufen.

Hinweis

Bei komplexen Datenstrukturen wie Map, Array und Composite (Struct) wird derzeit nur das JSON-Serie-Format unterstützt.

Bevor Sie OCI Functions aus einem Datenfluss in Data Integration verwenden, verstehen Sie die Abhängigkeiten, und schließen Sie die erforderlichen Aufgaben ab.

Bevor Sie beginnen

Die Funktion, die Sie aufrufen möchten, muss in OCI Functions bereitgestellt sein. Die Funktion kann in jeder Sprache geschrieben werden.

Stellen Sie mit der folgenden Aufgabencheckliste sicher, dass Sie über das erforderliche Setup und die erforderlichen Informationen zur Verwendung des Funktionsoperators mit OCI Functions verfügen.

AufgabeAnforderung
OCI Functions einrichten

In diesem Thema wird vorausgesetzt, dass der Mandant und die Entwicklungsumgebung bereits für das Deployment von Funktionen in OCI Functions eingerichtet sind.

Siehe Funktionen vorbereiten.

In Data Integration können nur Funktionen verwendet werden, die in OCI Functions bereitgestellt sind.

Policys erstellen, um den Aufruf und die Verwaltung von Funktionen zu kontrollieren

In diesem Thema wird davon ausgegangen, dass Sie oder der Mandantenadministrator bereits die erforderlichen Oracle Cloud Infrastructure-Policys erstellt haben. Informationen hierzu finden Sie unter Policys zur Kontrolle des Zugriffs auf Netzwerkressourcen und funktionsbezogene Ressourcen erstellen.

In einer Produktionsumgebung möchten Sie möglicherweise festlegen, dass Benutzer Funktionen nur in einer bestimmten Anwendung oder nur eine bestimmte Funktion aufrufen können.

Beispiel: Um festzulegen, dass Benutzer Funktionen nur in einem bestimmten Workspace aufrufen können, geben Sie die Policy-Anweisungen im folgenden Format ein:

allow any-user to use fn-invocation in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<workspace-ocid>'}

allow any-user to read fn-function in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<workspace-ocid>'}

So legen Sie fest, dass Benutzer nur eine bestimmten Funktion in einem Workspace aufrufen können:

allow any-user to use fn-invocation in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<workspace-ocid>', target.function.id='<function-ocid>'}

allow any-user to read fn-function in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<workspace-ocid>', target.function.id='<function-ocid>'}

Siehe Zugriff zum Aufrufen und Verwalten von Funktionen steuern.

Erstellen Sie eine Anwendung in OCI Functions.

Eine Anwendung ist eine logische Gruppierung von Funktionen.

In einer Anwendung geben Sie ein bis drei Subnetze an, in denen Funktionen ausgeführt werden. Funktionen, die in einer Anwendung ausgeführt werden, sind von Funktionen isoliert, die in einer anderen Anwendung ausgeführt werden.

Siehe Anwendungen erstellen (in Functions).

Stellen Sie eine Funktion in OCI Functions bereit.

Damit die Funktion in OCI Functions mit dem Data Integration-Funktionsoperator in einem Datenfluss funktioniert, darf die Funktion keine ID mit einem Leerzeichen lesen oder schreiben.

Wenn Sie eine Funktion mit der Fn-Projekt-CLI in OCI Functions bereitstellen, wird die Funktion als Docker-Image erstellt und in eine angegebene Docker-Registry per Push übertragen.

Siehe Funktionen erstellen und bereitstellen.

Informationen erfassen, die für die Verwendung der bereitgestellten Funktion mit dem Funktionsoperator erforderlich sind

Wenn Sie einen Funktionsoperator in einem Data Integration-Datenfluss hinzufügen und konfigurieren, benötigen Sie folgende Informationen:

  • Das Compartment mit der OCI Functions-Anwendung, in der die gewünschte Funktion bereitgestellt ist
  • Die Anwendung in OCI Functions mit der bereitgestellten Funktion
  • Den Namen der bereitgestellten Funktion
  • Die in der Funktion definierten Felder
Funktionsoperator hinzufügen und konfigurieren

Mit einem Funktionsoperator können Sie eine in OCI Functions bereitgestellte Funktion verwenden, um Daten aus einer Eingabequelle zu verarbeiten. Dabei werden primitive und komplexe Datentypen unterstützt.

Geben Sie die Eingabeausprägung der Funktion sowie die Eingabe- und Ausgabeattribute an, die der Funktionsoperator lesen und schreiben soll. Ordnen Sie dann die Quellattribute manuell den Eingabeattributen zu.

Derzeit wird nur das JSON-Serialisierungsformat für komplexe Datenstrukturen wie Map, Array und Composite (Struct) unterstützt.

Im folgenden Verfahren wird davon ausgegangen, dass Sie einen Quelloperator mit der Datenentity hinzugefügt und konfiguriert haben, die Sie mit der Funktion verwenden möchten.

  1. Ziehen Sie einen Funktionsoperator aus dem Bereich Operatoren auf die Leinwand.
  2. Geben Sie für den ausgewählten Funktionsoperator im Bereich "Eigenschaften" auf der Registerkarte Details einen Namen in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
  3. Wählen Sie die OCI-Funktion aus, die für diesen Operator verwendet werden soll. Siehe Funktion auswählen.
  4. Wählen Sie das Serialisierungsformat aus, und definieren Sie die Eingabe- und Ausgabedaten der Funktion.
  5. Geben Sie die Eingabeattribute und Ausgabeattribute für den Operator sowie die Funktionskonfiguration für die Funktion an. Siehe Funktionsoperatoreigenschaft hinzufügen.

    Die Eingabeattribute definieren die Eingabeausprägung für den Funktionsoperator. Dabei handelt es sich um ein oder mehrere eingehende Attribute, die die die Funktion verarbeitet. Eingabeattribute werden den eingehenden Attributen aus der Datenentityquelle zugeordnet.

    Die Funktionskonfigurationswerte definieren die Eingabeausprägung der Funktion. Dabei handelt es sich um Felder, die in der Funktion definiert sind. Definieren Sie ein Funktionsfeld mit einem Namen und einem Wert. Der Wert eines Feldes entspricht einem Eingabeattribut. Sie können einen Funktionskonfigurationswert parametrisieren.

    Die Ausgabeattribute definieren die Ausgabeausprägung für den Funktionsoperator. Dabei handelt es sich um ein oder mehrere Attribute, in die die Funktion die Ausgabe schreibt. Fügen Sie für jedes Funktionsfeld, das in der Ausgabe enthalten sein soll, ein Ausgabeattribut hinzu. Nachfolgende Downstreamoperatoren können die Ausgabeattribute verwenden.

    Hinweis

    Verwenden Sie kein Leerzeichen im ID-Namen für ein Eingabeattribut, ein Ausgabeattribut oder ein Funktionsfeld. Auch Namen wie "Element", "Schlüssel" und "Wert" sind nicht zulässig.
  6. (Optional) Blenden Sie unter Funktionseigenschaften die Option Funktionskonfiguration ein, um die Funktionskonfigurationswerte zu prüfen. Sie können einen Wert ändern oder parametrisieren.

    BATCH_SIZE ist eine vordefinierte Funktionskonfiguration, die die die Anzahl der Zeilen darstellt, die eine Funktion jeweils verarbeitet. Der Standardwert beträgt 10,000 Zeilen.

    Sie können folgende Aktionen für einen Funktionskonfigurationswert ausführen:

    • Wählen Sie im Menü "Aktionen" (Menü Aktionen) Bearbeiten aus, um den Wert zu ändern.
    • Wählen Sie Parameter zuweisen aus, um einen Parameter für den Wert zu verwenden. Siehe Parameter zuweisen.
  7. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Um nach dem Namensmuster "*_CODE" und nach dem Typ "Numerisch" oder "varchar" zu filtern, wenden Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (numerisch, varchar) an.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  8. Verschieben Sie auf der Registerkarte Zuordnen ein Attribut per Drag-and-Drop von der Datenquelle zum entsprechenden Eingabeattribut der Funktion, um eine manuelle Zuordnung zu erstellen.
  9. Zeigen Sie auf der Registerkarte Daten ein Sampler der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Die Funktionsausgabeattribute werden an das Dataset angehängt.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  10. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.
Funktion auswählen

Die Funktion, die Sie mit einem Funktionsoperator verwenden möchten, muss in einer Anwendung in Oracle Cloud Infrastructure Functions bereitgestellt sein.

  1. Wählen Sie auf der Leinwand den Funktionsoperator aus.
  2. Klicken Sie im Bereich Eigenschaften auf der Registerkarte Details für OCI-Funktion auf Auswählen.
  3. Wählen Sie im Bereich das Compartment mit der OCI Functions-Anwendung aus, in der die gewünschte Funktion bereitgestellt ist.
  4. Wählen Sie die Anwendung in OCI Functions mit der bereitgestellten Funktion aus.
  5. Wählen Sie im Abschnitt OCI-Funktion die Funktion aus.
  6. Wählen Sie OK aus.
Funktionsoperatoreigenschaft hinzufügen

Nachdem Sie eine bereitgestellte Funktion ausgewählt haben, geben Sie die Eigenschaften an, die die Eingabedaten für die zu verarbeitende Funktion, die Felder in der Funktionskonfiguration und die von der Funktion zurückgegebenen Ausgabedaten definieren.

Hinweis

Verwenden Sie kein Leerzeichen im ID-Namen für ein Eingabeattribut, ein Ausgabeattribut oder ein Funktionsfeld. Auch Namen wie "Element", "Schlüssel" und "Wert" sind nicht zulässig.
  1. Wählen Sie unter Funktionseigenschaften die Option Eigenschaft hinzufügen aus.
  2. Wählen Sie im Bereich den Typ der Eigenschaft aus, die Sie angeben möchten.
    • Eingabeattribute: Eingabeausprägung für den Operator. Geben Sie mindestens ein Attribut als eingehendes Attribut für die zu verarbeitende Funktion an. Eingabeattribute werden den eingehenden Attributen aus der Datenentityquelle zugeordnet.
    • Funktionskonfiguration: Geben Sie mindestens ein Funktionsfeld an, das die Eingabeausprägung der Funktion definiert. Ein Feld hat einen Namen und einen Wert. Der Wert eines Feldes gibt ein Eingabeattribut an.
    • Ausgabeattribute: Ausgabeausprägung für den Operator. Geben Sie null oder mehr Attribute an, um die Ausgabe der Funktion nach der Verarbeitung der Daten darzustellen. Fügen Sie für jedes Funktionsfeld, das in der Ausgabe enthalten sein soll, ein Ausgabeattribut hinzu. Nachfolgende Downstreamoperatoren können die Ausgabeattribute verwenden.
  3. Geben Sie im Feld ID einen Namen für die Eigenschaft ein. Verwenden Sie kein Leerzeichen im Namen für ein Eingabeattribut, ein Ausgabeattribut oder ein Funktionsfeld.
  4. Wählen Sie den Datentyp der Eigenschaft aus.
  5. Geben Sie für einen primären Datentyp je nach Typ und Datentyp der angegebenen Eigenschaft die folgenden Felder und andere anwendbare Felder an.

    • Länge: Geben Sie eine Länge für ein Eingabe- oder Ausgabeattribut ein. Beispiel: Sie geben eine Länge für einen numerischen oder Varchar-Datentyp an.
    • Wert: Geben Sie für ein Funktionsfeld einen Wert ein, der mit einem Eingabeattribut übereinstimmt.
  6. Geben Sie für den komplexen Datentyp "Map" das Schlüssel/Wert-Paar für ein Mapelement an. Wählen Sie Datentyp hinzufügen aus, um den Schlüsseldatentyp und Wertdatentyp auszuwählen.

    • Schlüssel: Wählen Sie nur primäre Datentypen aus.
    • Wert: Wählen Sie primitive oder komplexe Datentypen aus.
  7. Wählen Sie für einen komplexen Datentyp "Array" die Option Datentyp hinzufügen, um den Elementdatentyp anzugeben. Sie können primitive oder komplexe Datentypen auswählen.

  8. Geben Sie für den Datentyp "Composite" (Struct) die untergeordneten Schemaelemente an. Um ein untergeordnetes Schemaelement hinzuzufügen, wählen Sie das Pluszeichen (+) neben dem Namen des übergeordneten Schemas.

    Geben Sie im Bereich "Feld hinzufügen" für ein untergeordneter Schemaelement die ID ein, und wählen Sie einen Datentyp aus. Sie können primitive oder komplexe Datentypen auswählen. Wählen Sie Hinzufügen, um das untergeordnete Schemaelement hinzuzufügen.

    Wählen Sie erneut das Pluszeichen +, wenn Sie dem übergeordneten Schema mehrere untergeordnete Schemaelemente hinzufügen möchten.

    Zum Bearbeiten oder Löschen eines untergeordneten Schemas verwenden Sie das Menü "Aktionen" (Menü Aktionen) am Ende der Zeile.

    Das übergeordnete Schemaelement können Sie nicht löschen.

  9. Wählen Sie im Bereich "Eigenschaft hinzufügen" die Option Hinzufügen aus.
  10. Wiederholen Sie die Schritte, um die benötigten Eigenschaften zum Definieren der Funktionseingabe, der Funktionsfelder und der Funktionsausgabe hinzuzufügen.

Operator vereinfachen

Verwenden Sie den Vereinfachungsoperator, um hierarchische Daten in ein vereinfachtes Format für die Verwendung mit anderen relationalen Daten umzuwandeln. Der Vereinfachungsprozess wird auch als Denormalisierung oder Entschlüsselung bezeichnet.

Sie können folgende hierarchische Dateiformate denormalisieren:

  • JSON und mehrzeilige JSON
  • Avro
  • Parquet

Der derzeit unterstützte hierarchische Datentyp, den Sie entschlüsseln können, ist Array. Sie können nur einen Arrayknoten in einem hierarchischen Dataset zum Vereinfachen auswählen. Die Datenstruktur wird von der Root zum ausgewählten Arrayknoten vereinfacht und in einem vereinfachten Format dargestellt. Wenn das Dataset über andere Arrayknoten verfügt, können Sie diese in Zeichenfolgen konvertieren.

Sie können die Attribute oder Felder konfigurieren, die in die vereinfachte Ausgabe aufgenommen werden sollen, indem Sie Voreinstellungen für Prognosen festlegen.

Erläuterungen zu Projektionsvoreinstellungen

Projektionsvoreinstellungen sind Einstellungen für das Format, die Anzahl und den Typ der projizierten Attribute, die nach dem Vereinfachen der eingehenden Daten in die Ausgabe aufgenommen werden sollen.

Data Integration bietet vier Standardeinstellungen für Projekteinstellungen, die standardmäßig ausgewählt sind, was zu einer prognostizierten Ausgabe führt, die Folgendes enthält:

  • Indexarrays
  • Alle Attribute bis zum Attribut, das zum Vereinfachen ausgewählt wurde
  • Nullwerte für die Attribute, die in den nachfolgenden Arrays fehlen
  • Herkunft des übergeordneten Namens in den Attributnamen

Um die Projektionsvoreinstellungen zu verstehen, die Sie konfigurieren können, verwenden Sie die folgenden Themen mit dem Beispiel für die JSON-Datenstruktur.

Beispiel für JSON-Datenstruktur
id
vehicle[]
    make
    model
    insurance{}
        company
        policy_number
    maintenance[]
        date
        description[]
        dealerdetails[]
            servicestation1[]
                dealeraddress[]
                    city
                    state
                    contact
                dealername
            servicestation2[]
                dealeraddress[]
                    city
                    state
                    contact
                dealername
Arrayindizes erstellen und projizieren

Mit der Voreinstellung Erstellen und Projektarrayindizes können Sie steuern, ob Indexattribute für Arrays in die vereinfachte Ausgabe aufgenommen werden sollen.

Das Indexattribut stellt den Index eines Arrays dar. Angenommen, das Array ist ["a","b","c"], dann ist der Index für "a" 0, der Index für "b" ist 1 und der Index für "c" ist 2.

Standardmäßig erstellt Data Integration ein Attribut mit dem Suffix _INDEX für den Arrayknoten, in den Sie Daten vereinfachen möchten. Der Datentyp eines Arrayindexattributs ist "Ganzzahl".

Indexattribute werden auch für die übergeordneten Arrayknoten des ausgewählten Arrayknotens erstellt. Der Vereinfachungsvorgang wirkt sich auf alle übergeordneten Arrayknoten in der hierarchischen Struktur aus, von der Root bis zum ausgewählten Knoten. Wenn ein betroffener übergeordneter Arrayknoten gleichgeordnete Arrays aufweist, werden keine Indexattribute für diese gleichgeordneten Arrayknoten erstellt.

Wenn Sie im JSON-Datenstrukturbeispiel das Array dealeraddress auswählen, das zur Vereinfachung unter servicestation2 steht, erstellt Data Integration fünf Arrayindexattribute: eines für den ausgewählten Arrayknoten und vier für die übergeordneten Knoten, die vom Vereinfachungsvorgang betroffen sind.

Nach dem Vereinfachen lauten die Attribute in der vereinfachten Struktur wie folgt:

id
vehicle_INDEX
vehicle_make
vehicle_model
vehicle_insurance
    company
    policy_number
vehicle_maintenance_INDEX
vehicle_maintenance_date
vehicle_maintenance_description
vehicle_maintenance_dealerdetails_INDEX
vehicle_maintenance_servicestation1
    dealeraddress
        city
        state
        contact
    dealername
vehicle_maintenance_servicestation2_INDEX
vehicle_maintenance_servicestation2_dealeraddress_INDEX
vehicle_maintenance_servicestation2_dealeraddress_city
vehicle_maintenance_servicestation2_dealeraddress_state
vehicle_maintenance_servicestation2_dealeraddress_contact
vehicle_maintenance_servicestation2_dealeraddress_dealername

Für servicestation1 wird kein Arrayindexattribut erstellt, weil der Arrayknoten ein gleichgeordnetes Element des betroffenen übergeordneten Knotens servicestation2 ist. Ebenso wird kein Indexattribut für description erstellt, da der Arrayknoten ein gleichgeordnetes Element des betroffenen übergeordneten Knotens dealerdetails ist.

Wenn Sie die Projektionsvoreinstellung Array-Indizes erstellen und projektieren nicht auswählen, lauten die Attribute in der vereinfachten Struktur wie folgt:

id
vehicle_make
vehicle_model
vehicle_insurance
    company
    policy_number
vehicle_maintenance_date
vehicle_maintenance_description
vehicle_maintenance_servicestation1
    dealeraddress
        city
        state
        contact
    dealername
vehicle_maintenance_servicestation2_dealeraddress_city
vehicle_maintenance_servicestation2_dealeraddress_state
vehicle_maintenance_servicestation2_dealeraddress_contact
vehicle_maintenance_servicestation2_dealeraddress_dealername
Alle Attribute bis zum vereinfachten Array beibehalten

Mit der Voreinstellung Alle Attribute bis zum vereinfachten Array beibehalten können Sie steuern, ob die Attribute, die nicht Teil der vereinfachten Arrays sind, in die vereinfachte Ausgabe aufgenommen werden sollen.

Standardmäßig zeigt Data Integration alle Attribute vom Stamm bis zum ausgewählten Array an, einschließlich gleichrangiger Arrays, die nicht von der Vereinfachung betroffen sind.

Wenn Sie im Beispiel für die JSON-Datenstruktur die Projektionsvoreinstellung Alle Attribute bis zum vereinfachten Array beibehalten nicht auswählen, lauten die Attribute in der vereinfachten Struktur wie folgt:

id
vehicle_INDEX
vehicle_maintenance_INDEX
vehicle_maintenance_dealerdetails_INDEX
vehicle_maintenance_servicestation2_INDEX
vehicle_maintenance_servicestation2_dealeraddress_INDEX
vehicle_maintenance_servicestation2_dealeraddress_city
vehicle_maintenance_servicestation2_dealeraddress_state
vehicle_maintenance_servicestation2_dealeraddress_contact
Einzelne Zeile mit Nullwerten für fehlendes übergeordnetes Array erzeugen

Mit der Projektionsvoreinstellung Eine einzelne Zeile mit Nullwerten für fehlendes übergeordnetes Array erstellen können Sie steuern, ob Zeilen übersprungen werden sollen, die nicht von der Vereinfachung betroffen sind.

Die Auswirkung der Einstellung Eine einzelne Zeile mit Nullwerten für fehlendes übergeordnetes Array erstellen wird nur auf der Registerkarte "Daten" angezeigt. Standardmäßig zeigt Data Integration Nullwerte für die Attribute an, die in den nachfolgenden Arrays fehlen.

Beispiel: Es handelt sich um eine prognostizierte Ausgabe mit Nullwerten:

|Company1|Redmond |[...]|true |[...]|0 |1 |123.34 |0 |Laptop |20 |
|Company1|Redmond |[...]|true |[...]|0 |1 |123.34 |1 |Charger |2 |
|Company1|Redmond |[...]|true |[...]|1 |2 |323.34 |0 |Mouse |2 |
|Company1|Redmond |[...]|true |[...]|1 |2 |323.34 |1 |Keyboard |1 |
|Company2|Seattle |[...]|false |[...]|0 |4 |123.34 |0 |Laptop |20 |
|Company2|Seattle |[...]|false |[...]|0 |4 |123.34 |1 |Charger |3 |
|Company2|Seattle |[...]|false |[...]|1 |5 |343.24 |0 |Chair |4 |
|Company2|Seattle |[...]|false |[...]|1 |5 |343.24 |1 |Lamp |2 |
|Company3|Bellevue|null |true |[...]|0 |4 |123.34 |null |null |null |
|Company4|Kirkland|null |null |null |null |null |null |null |null |null |

Wenn Sie die Option nicht auswählen, werden die Zeilen übersprungen, und die prognostizierte Ausgabe lautet:

|Company1|Redmond |[...]|true |[...]|0 |1 |123.34 |0 |Laptop |20 |
|Company1|Redmond |[...]|true |[...]|0 |1 |123.34 |1 |Charger |2 |
|Company1|Redmond |[...]|true |[...]|1 |2 |323.34 |0 |Mouse |2 |
|Company1|Redmond |[...]|true |[...]|1 |2 |323.34 |1 |Keyboard |1 |
|Company2|Seattle |[...]|false |[...]|0 |4 |123.34 |0 |Laptop |20 |
|Company2|Seattle |[...]|false |[...]|0 |4 |123.34 |1 |Charger |3 |
|Company2|Seattle |[...]|false |[...]|1 |5 |343.24 |0 |Chair |4 |
|Company2|Seattle |[...]|false |[...]|1 |5 |343.24 |1 |Lamp |2 |
Herkunft des übergeordneten Namens in Attributnamen beibehalten

Mit der Voreinstellung Übergeordnete Namensherkunft in Attributnamen beibehalten für die Projektion können Sie steuern, ob die übergeordneten Namen in die Namen der untergeordneten Attribute aufgenommen werden sollen.

Standardmäßig erstellt Data Integration untergeordnete Knotennamen mit ihren übergeordneten Knotennamen.

Im Beispiel für die JSON-Datenstruktur lauten die Attribute mit übergeordneten Namen in der vereinfachten Struktur wie folgt (vorausgesetzt, gleichgeordnete Arrays, die nicht von Vereinfachungen betroffen sind, werden in der Ausgabe ausgeschlossen):

id
vehicle_INDEX
vehicle_maintenance_INDEX
vehicle_maintenance_dealerdetails_INDEX
vehicle_maintenance_servicestation2_INDEX
vehicle_maintenance_servicestation2_dealeraddress_INDEX
vehicle_maintenance_servicestation2_dealeraddress_city
vehicle_maintenance_servicestation2_dealeraddress_state
vehicle_maintenance_servicestation2_dealeraddress_contact

Wenn Sie die Voreinstellung Übergeordnete Namensherkunft in Attributnamen beibehalten nicht auswählen, lauten die Attribute wie folgt:

id
vehicle_INDEX
maintenance_INDEX
dealerdetails_INDEX
servicestation2_INDEX
dealeraddress_INDEX
city
state
contact
Vereinfachungsoperator hinzufügen und konfigurieren

Bei der folgenden Prozedur wird davon ausgegangen, dass Sie einen Quelloperator hinzugefügt und den Operator zu einer Object Storage-Quelle mit komplexen Datentypen wie einer JSON-Datei konfiguriert haben.

  1. Ziehen Sie im Bereich Operatoren den Operator Verkleinern auf die Leinwand, und verbinden Sie den Operator mit dem Quelloperator.

    Die Registerkarte Details für den Vereinfachungsoperator wird im Bereich "Eigenschaften" angezeigt.

    In der Attributtabelle wird die Baumdatenstruktur der eingehenden Daten angezeigt. Standardmäßig werden alle Knoten eingeblendet. Jeder Knoten hat einen Datentyp und einen Pfad wie VARCHAR und parent1.parent2.node1. Beispiel: vehicle.insurance.company

    Im Suchfeld können Sie nur nach Knoten der obersten Ebene suchen.

  2. Wenn der Vereinfachungsoperator fokussiert ist, können Sie auf der Registerkarte Details folgende Aktionen ausführen:
    1. Geben Sie einen Namen für den Operator in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
    2. Prüfen Sie unter Voreinstellungen für Prognosen die Einstellungen. Standardmäßig sind alle Einstellungen ausgewählt. Deaktivieren Sie das Kontrollkästchen der Einstellungen, die für diesen Vorgang nicht konfiguriert werden sollen.
    3. Aktivieren Sie in den Attributtabellen das Kontrollkästchen neben dem Arrayknoten, auf den Sie die Datenstruktur vereinfachen möchten. Wählen Sie dann Daten bis ausgewähltes Attribut vereinfachen aus.

      Sie können nur ein Kontrollkästchen aktivieren.

      Nach der Vereinfachung wird der Pfad des ausgewählten und abgeflachten komplexen Attributs über der Tabelle neben Abflachen nach angezeigt. Beispiel: FLATTEN_1.MYFILE_JSON.vehicle.maintenance.dealerdetails.servicestation2.dealeraddress

    4. (Optional) Wählen Sie in der vereinfachten Struktur das Aktionssymbol neben einem Arrayknoten in der Tabelle aus, und wählen Sie Array in Zeichenfolge konvertieren aus. Siehe auch Arraykonvertierungen.
    5. (Optional) Um die in Schritt c ausgewählte Vereinfachung rückgängig zu machen, wählen Sie Löschen neben dem Pfad Verkleinern um aus. Siehe Flachlegungspfad entfernen.
  3. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Wenn Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (Numerisch, varchar) anwenden, werden die Attribute nach dem Namensmuster *_CODE und dem Typ "Numerisch" oder "varchar" gefiltert.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  4. Zeigen Sie auf der Registerkarte Daten ein Sampling der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  5. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.
Andere Arrays in Zeichenfolgen konvertieren

Nachdem Sie ein komplexes Attribut zum Vereinfachen ausgewählt haben, können weitere Arrayknoten in der vereinfachten Struktur vorhanden sein.

Mit den anderen Arrayknoten in einer vereinfachten Struktur können Sie ein Array primitiver Datentypen oder ein Array von Strukturen in eine Zeichenfolge konvertieren. Derzeit wird das Format einer Konvertierungszeichenfolge als JSON unterstützt.

Je nach Daten ist der Datentyp einer Konvertierungszeichenfolge VARCHAR oder BLOB. Sie können eine Konvertierungszeichenfolge von VARCHAR in CLOB und umgekehrt von CLOB in VARCHAR ändern.

Bei dem folgenden Verfahren wird davon ausgegangen, dass Sie einen Vereinfachungsoperator hinzugefügt und ein komplexes Attribut ausgewählt haben, um eine vereinfachte Datenstruktur zu erstellen.

  1. Wechseln Sie mit dem Vereinfachungsoperator im Fokus auf der Datenflussleinwand zur Registerkarte Details im Bereich "Eigenschaften".
  2. Prüfen Sie in der Attributtabelle, ob die Datenstruktur vereinfacht ist.

    Neben Abflachen nach befindet sich der Pfad des komplexen Attributs, das Sie zum Abflachen ausgewählt haben. Beispiel: FLATTEN_1.MYFILE_JSON.vehicle.maintenance.dealerdetails.servicestation2.dealeraddress

    Das Aktionssymbol (drei Punkte) wird für Arrayknoten angezeigt, die in der vereinfachten Struktur für die Konvertierung verfügbar sind.

  3. Wählen Sie gegebenenfalls das Aktionssymbol neben einem Arrayknoten und dann Array in Zeichenfolge konvertieren aus.

    Beispiele für konvertierte Attribute:

    Arraytyp Konvertiertes Attribut

    Array aus Zeichenfolgen

    "goods": [
        "laptop",
        "charger",
        "chair"
      ]

    ["laptop","charger","chair"]

    Zahlenarray

    "numbers": [
        234,
        455,
        98
      ]

    [234,455,98] 
Arraykonvertierungen anzeigen, ändern und entfernen

Bei dem folgenden Verfahren wird davon ausgegangen, dass Sie einen Arrayknoten ausgewählt haben, der gegebenenfalls in eine Zeichenfolge konvertiert werden soll.

  1. Wechseln Sie mit dem Vereinfachungsoperator im Fokus auf der Datenflussleinwand zur Registerkarte Details im Bereich "Eigenschaften".
  2. Wählen Sie Arraykonvertierungen anzeigen aus.
  3. Prüfen Sie im angezeigten Bereich Arraykonvertierungen die komplexen Attribute, die in eine Zeichenfolge konvertiert wurden.
  4. Um den Datentyp einer Konvertierungszeichenfolge zu ändern, wählen Sie im Aktionssymbol eine Aktualisierungsaktion aus. Wählen Sie je nach Datentyp die Option Datentyp in CLOB aktualisieren oder Datentyp in VARCHAR aktualisieren aus.
  5. Gehen Sie folgendermaßen vor, um Konvertierungen zu entfernen:
    • Um eine einzelne Konvertierung zu entfernen, aktivieren Sie das Kontrollkästchen neben einer Konvertierung, und wählen Sie Entfernen aus. Alternativ können Sie im Aktionssymbol für eine Konvertierung die Option Entfernen auswählen.
    • Um alle Konvertierungen zu entfernen, aktivieren Sie das Kontrollkästchen oben in der Liste (neben den Header-Arraykonvertierungen), und wählen Sie Entfernen aus.

    Eine ausgewählte Konvertierung wird entfernt, und das zuvor konvertierte Attribut wird auf die ursprüngliche Hierarchiestruktur und den Datentyp zurückgesetzt.

Vereinfachungspfad entfernen

Wenn Sie einen Vereinfachungsoperator für einen Datenfluss konfigurieren, können Sie eine Vereinfachung rückgängig machen, indem Sie den Pfad Verkleinern um löschen.

  1. Wechseln Sie mit dem Vereinfachungsoperator im Fokus auf der Datenflussleinwand zur Registerkarte Details im Bereich "Eigenschaften".
  2. Wählen Sie über der Attributtabelle neben dem Pfad Abflachen nach die Option Löschen aus.
  3. Bestätigen Sie im daraufhin angezeigten Dialogfeld Glättung löschen den Namen des komplexen Attributs, dessen Vereinfachung Sie aufheben möchten, und wählen Sie dann Löschen, um fortzufahren.

    Durch Entfernen der Vereinfachung wird die ursprüngliche Datenstruktur vor der Vereinfachung wiederhergestellt:

    • Bei Erstellung werden alle Attribute mit dem Suffix _INDEX entfernt.
    • Wenn übergeordnete Namen aus untergeordneten Knotennamen entfernt wurden, wird die Hierarchie der übergeordneten/untergeordneten Namensherkunft wiederhergestellt.
    • Wenn einige Arrays in Zeichenfolgen konvertiert wurden, werden die Arraykonvertierungen entfernt, und die zuvor konvertierten Attribute werden auf ihre ursprüngliche Hierarchiestruktur und ihren ursprünglichen Datentyp zurückgesetzt.

Table-Funktionsoperator

Fügen Sie mit dem Tabellenfunktionsoperator Tabellenfunktionen hinzu, die Daten in Form von Tabellen zurückgeben.

Derzeit können nur integrierte Tabellenfunktionen aus einer Liste ausgewählt werden. Zu den Tabellenfunktionen, die vom Tabellenfunktionsoperator bereitgestellt werden, gehören Cube, tabellenübergreifende Analysen, häufige Elemente, Rollup und Spark SQL. Jede integrierte Tabellenfunktion verfügt über vordefinierte Felder, die Sie konfigurieren, um die gewünschte Datenerfassung zurückzugeben. Komplexe Logik kann in einer einzigen Funktion konsolidiert werden, die bestimmte Datenmengen zurückgibt. Die Parametrierung der Felder ermöglicht eine flexible Anpassung der Logik.

Ein Tabellenfunktionsoperator kann mit jedem anderen Operator innerhalb eines Datenflusses verbunden werden. Somit kann ein Tabellenfunktionsoperator als Datenquelle, als Midstreamoperator und als Ziel verwendet werden.

Tabellenfunktionsoperator hinzufügen
  1. Verschieben Sie einen Operator für die Tabellenfunktion per Drag-and-Drop aus dem Bereich Operatoren auf die Leinwand.
  2. Geben Sie für den ausgewählten Operator auf der Registerkarte Details des Bereichs "Eigenschaften" einen Namen in das Feld ID ein, oder übernehmen Sie den Namen unverändert.
  3. Wählen Sie unter Transformationstyp die Tabellenfunktion aus, die Sie für diesen Operator verwenden möchten.
  4. Führen Sie unter Parameter konfigurieren die folgenden Schritte aus:
    1. Konfigurieren Sie die Kernlogik der Tabellenfunktion, indem Sie die Funktionsdetails angeben. Nur bestimmte Funktionseingabeschlüssel und deren Werte können konfiguriert werden, wie auf der Registerkarte Details für die ausgewählte Tabellenfunktion dargestellt.
    2. (Optional) Um ein Eingabe-Schlüssel/Wert-Paar zu parametrisieren, wählen Sie Parameter zuweisen aus, um Parameter zu verwenden. Siehe Parameter zuweisen.
    3. Nachdem Sie die Eingabefelder ausgefüllt haben, wählen Sie Ausprägung berechnen aus.

      Data Integration generiert die Ausgabefelder anhand der Kernlogikdetails und materialisiert die Ein-/Ausgabeformen. In der Registerkarte Attribute können Sie die Eingabe-/Ausgabeausprägungen anzeigen.

  5. Zeigen Sie auf der Registerkarte Attribute eingehende Attribute oder Ausgabeattribute an. Eingehende Attribute sind mit dem Operator auf der linken Seite verknüpft. Ausgabeattribute sind mit dem Operator auf der rechten Seite verknüpft und gehen zum nächsten Operator über.

    Sie können einzelne Attribute auswählen oder mithilfe der Filtersymbole die Liste der Attribute filtern. Wenden Sie dann Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute an.

    • Wählen Sie das Filtersymbol in der Spalte Name aus, um Attribute nach einem Namensmuster zu filtern. Geben Sie im Filterfeld einen einfachen regulären Ausdruck ein. Sie können die Platzhalter "?" und "*" im Regex-Muster verwenden.
    • Wählen Sie das Filtersymbol in der Spalte Typ aus, um Attribute nach einem Datentyp zu filtern. Wählen Sie über das Menü den Typ aus, der als Filter verwendet werden soll.
      Hinweis

      Sie können jeweils nur einen Namensmusterfilter, jedoch mehrere Typfilter anwenden. Beispiel: Um nach dem Namensmuster "*_CODE" und nach dem Typ "Numerisch" oder "varchar" zu filtern, wenden Sie einen Namensmusterfilter (*_CODE) und zwei Typfilter (numerisch, varchar) an.
    • Über das Menü Aktionen können Sie Bulkausschlussregeln auf die ausgewählten oder gefilterten Attribute anwenden. Wählen Sie Nach Auswahl ausschließen oder Nach angewendetem Filter ausschließen aus.
    • Wählen Sie Regeln anzeigen, um den Bereich "Regeln" zu öffnen. Sie können die Regeln anzeigen und verwalten, die auf die Datenentity angewendet wurden. Standardmäßig schließt die erste Regel im Bereich "Regeln" alles ein.

    Ein komplexer Typ wird als ARRAY (data type), COMPOSITE oder MAP (key type, value type) angezeigt. Informationen zu den unterstützten komplexen Typen finden Sie unter Hierarchische Datentypen.

  6. Zeigen Sie auf der Registerkarte Daten ein Sampler der Daten basierend auf der Konfiguration des Operators und den Regeln an, die Sie auf der Registerkarte "Attribute" angewendet haben.

    Das Datenprofil wird für komplexe Datenattribute nicht angezeigt. Um die Hierarchie der Datenstruktur für komplexe Datenattribute in einer vereinfachten Struktur anzuzeigen, wählen Sie die angezeigten komplexen Daten aus. Beispiel: [...] oder {…}.

    Sie können Transformationen auf einzelne Attribute anwenden oder eine Bulktransformation für eine Gruppe von Attributen ausführen.

    Informationen zu den unterstützten Typen bei Entitys mit hierarchischen Datentypen finden Sie unter Hierarchische Datentypen.

  7. Prüfen Sie die Registerkarte Validierung auf Warnungen oder Fehler, die dazu führen könnten, dass der Datenfluss nicht erfolgreich verläuft.
Erläuterungen zu Tabellenfunktionen

Im Folgenden finden Sie eine Liste der integrierten Tabellenfunktionen, die vom Tabellenfunktionsoperator unterstützt werden.

Cachen

Speichert und speichert ein Dataset gemäß dem angegebenen Arbeitsspeicher level.

Gibt ein neues Dataset im gecachten resilienten verteilten Dataset (RDD) zurück.

Parameter Beschreibung
level

Der zu verwendende Speicherspeicher:

MEMORY_ONLY: Als deserialisierte Java-Objekte in der JVM speichern. Wenn der Speicher nicht ausreicht, werden einige RDD-Partitionen nicht gecacht, sondern nach Bedarf neu berechnet.

MEMORY_AND_DISK: Als deserialisierte Java-Objekte in der JVM speichern. Wenn der Speicher nicht ausreicht, werden einige RDD-Partitionen auf dem Datenträger gespeichert und bei Bedarf von der Festplatte gelesen.

MEMORY_ONLY_SER: Als deserialisierte Java-Objekte speichern.

MEMORY_AND_DISK_SER: Als deserialisierte Java-Objekte speichern. Partitionen, die nicht passen, werden auf dem Datenträger gespeichert.

DISK_ONLY: Speichern Sie die RDD-Partitionen nur auf dem Datenträger.

MEMORY_ONLY_2, MEMORY_AND_DISK_2, etc: Ähnlich wie bei anderen Ebenen, aber jede Partition wird auf zwei Clusterknoten repliziert.

Kreuztabellenanalyse

Berechnet eine paarweise Häufigkeits- oder Eventualfalltabelle aus eindeutigen Werten der angegebenen beiden Spalten.

Die Anzahl der eindeutigen Werte für jede Spalte muss kleiner als 1e4 sein.

Gibt einen Datenframe zurück, der die Eventualfalltabelle enthält. In der Notfalltabelle:

  • Der Name der ersten Spalte lautet col1_col2, wobei col1 die erste Spalte und col2 die zweite Spalte vor der Transformation ist. Die erste Spalte jeder Zeile sind die eindeutigen Werte von col1.
  • Die anderen Spaltennamen sind die eindeutigen Werte von col2.
  • Die Zählungen werden als Typ long zurückgegeben.
  • Paare ohne Vorkommen werden als Anzahl Null angegeben.
  • Die maximale Anzahl von Paaren ungleich Null beträgt 1e6.
  • Null-Elemente werden durch null ersetzt.
Parameter Beschreibung
col1

Name der ersten Spalte. Einschränkungen finden Sie im Hinweis nach dieser Tabelle.

Eindeutige Elemente aus col1 bilden das erste Element jeder Zeile im zurückgegebenen Datenframe.

col2

Name der zweiten Spalte. Einschränkungen finden Sie im Hinweis nach dieser Tabelle.

Eindeutige Elemente aus co2 machen die Spaltennamen im zurückgegebenen Datenframe.

Hinweis

In einem Spaltennamen sind nur die folgenden Zeichen zulässig:

  • Klein- und Großbuchstaben a-z A-Z
  • Zahlen 0-9
  • Unterstrich _
Beispiel

Angenommen, col1 ist age und col2 ist salary.

Vor der Transformation:

+---+------+
|age|salary|
+---+------+
|1  |100   |
|1  |200   |
|2  |100   |
|2  |100   |
|2  |300   |
|3  |200   |
|3  |300   |
+---+------+

Nach der Transformation:

+----------+---+---+---+
|age_salary|100|200|300|
+----------+---+---+---+
|2         |2  |0  |1  |
|1         |1  |1  |0  |
|3         |0  |1  |1  |
+----------+---+---+---+
Cube

Generiert einen mehrdimensionalen Cube aller möglichen Kombinationen anhand der angegebenen Spaltenliste und der Berechnungen in den angegebenen Aggregatfunktionsausdrücken.

Die folgenden Aggregatfunktionen werden in den Ausdrücken unterstützt:

  • AVG
  • COUNT
  • MEAN
  • MAX
  • MIN
  • SUM

Gibt nach der Cube-Transformation einen Datenframe zurück.

Parameter Beschreibung
cubeColumns

Die durch Kommas getrennte Liste der Spalten, durch die der mehrdimensionale Cube generiert wird.

aggExpressions

Die Aggregatfunktionsausdrücke, die für die Spalten ausgeführt werden sollen.

Beispiel: salary -> avg, age -> max

Beispiel

Vor der Transformation:

+----------+-----+-------+------+---+
|department|group|region |salary|age|
+----------+-----+-------+------+---+
|Eng       |A    |local  |1000  |10 |
|Art       |B    |foreign|2000  |11 |
|Sport     |C    |local  |1500  |13 |
|Eng       |A    |foreign|800   |19 |
|Art       |A    |foreign|3000  |30 |
|Eng       |E    |foreign|1000  |21 |
|Art       |D    |local  |1000  |32 |
|Sport     |C    |local  |1000  |28 |
+----------+-----+-------+------+---+

Wenn cubeColumns department, region und aggExpressions salary -> avg, age -> max ist (das Durchschnittsgehalt und das Höchstalter berechnen), lautet der After-Transformation-Cube:

+----------+-------+-----------------+--------+
|department|region |avg(salary)      |max(age)|
+----------+-------+-----------------+--------+
|Eng       |foreign|900.0            |21      |
|Sport     |null   |1250.0           |28      |
|Art       |null   |2000.0           |32      |
|Eng       |null   |933.3333333333334|21      |
|null      |local  |1125.0           |32      |
|Art       |foreign|2500.0           |30      |
|null      |foreign|1700.0           |30      |
|Eng       |local  |1000.0           |10      |
|null      |null   |1412.5           |32      |
|Sport     |local  |1250.0           |28      |
|Art       |local  |1000.0           |32      |
+----------+-------+-----------------+--------+
Datengenerierung

Generiert synthetische Daten mit dem angegebenen Dateiformat und Inhalt. Folgende Dateiformate werden unterstützt:

  • CSV
  • JSON

Gibt eine Datenentity zurück. Die synthetische Datenquelle kann in Pipeline-Einheitentests verwendet werden, bei denen reale Daten nicht verwendet oder verschoben werden.

Parameter Beschreibung
format

Der Dateityp. Unterstützte Werte sind:

  • CSV
  • JSON
content

Der Dateiinhalt für das angegebene Format.

Beispiel

Beispiel für einen CSV-Inhalt:

co1,co2,co3
1,B,3
A,2,C

Ergebnis der Datengenerierung:

+---+---+---+
|co1|co2|co3|
+---+---+---+
|1  |B  |3  |
+---+---+---+
|A  |2  |C  |
+---+---+---+
Deduplication

Sucht Duplikate in der angegebenen Spaltenliste und gibt ein neues Dataset zurück, wobei die doppelten Zeilen entfernt wurden.

Parameter Beschreibung
columns

Ein Spaltenname oder eine durch Komma getrennte Liste mit Spaltennamen.

Beispiel

Vor der Transformation:

+---+---+
|a  |b  |
+---+---+
|1  |2  |
|3  |4  |
|1  |3  |
|2  |4  |
+---+---+

Wenn columns a ist, lautet das Dataset nach der Transformation:

+---+---+
|a  |b  |
+---+---+
|1  |2  |
|3  |4  |
|2  |4  |
+---+---+
Häufige Artikel

Sucht häufige Elemente in der angegebenen Spalte oder Spaltenliste mit der angegebenen Mindesthäufigkeit.

Der von Karl et al. vorgeschlagene Algorithmus für häufige Elementanzahl wird verwendet, um häufige Elemente zu finden. Falsche Positive sind möglich.

Gibt einen Datenbereich mit einem Array von häufigen Elementen für jede Spalte zurück.

Parameter Beschreibung
freqItems

Ein Spaltenname oder eine durch Komma getrennte Liste mit Spaltennamen, für die Sie häufige Elemente suchen möchten.

support

Minimale Häufigkeit, mit der ein Artikel als häufig betrachtet wird.

Der Wert muss größer als 1e-4 sein (Dezimalwert von 0.0001).

Beispiel: 0.6 entspricht 60%. Das heißt, ein Element, das in mindestens 60% der Zeilen angezeigt wird, ist ein häufiges Element.

Beispiel

Vor der Transformation:

+-------+--------------+
|user_id|favorite_fruit|
+-------+--------------+
|      1|         apple|
|      2|        banana|
|      3|         apple|
|      4|        orange|
|      5|        banana|
|      6|        banana|
|      7|         apple|
+-------+--------------+

Wenn freqItems favorite_fruit und support 0.6 ist, lautet der nach der Transformation zurückgegebene Dataframe:

+------------------------+
|favorite_fruit_freqItems|
+------------------------+
|                [banana]|
+------------------------+
Na Drop

Entfernt Zeilen, die Null- oder NaN-Werte in der angegebenen Spalte oder Spaltenliste enthalten.

Gibt einen Datenbereich zurück, der die Zeilen ausschließt.

Parameter Beschreibung
how

Gibt an, ob eine Zeile gelöscht werden soll. Unterstützte Werte sind:

  • any: Löschen Sie die Zeile mit Nullwerten oder NaN-Werten in der angegebenen cols.
  • all: Löschen Sie die Zeile nur, wenn jeder angegebene Wert für cols Null oder NaN für diese Zeile ist.

Der Parameter how wird ignoriert, wenn der Parameter minNonNulls angegeben wird.

cols

Ein Spaltenname oder eine durch Komma getrennte Liste mit Spaltennamen.

minNonNulls

Die Mindestanzahl von Werten, die eine Zeile enthalten kann, die nicht Null und nicht NaN sind.

Löscht die Zeilen, die weniger als das angegebene Minimum enthalten.

Der Parameter minNonNulls setzt den Parameter how außer Kraft.

Beispiel

Vor der Transformation:

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Wenn how any und cols name ist, lautet der nach der Transformation zurückgegebene Dataframe:

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Wenn Sie den Parameter how mit dem Wert all verwenden, wird eine Zeile nur gelöscht, wenn alle zugehörigen Werte Null sind. Beispiel vor der Transformation:

+----+--------+----+
|  id|    name| age|
+----+--------+----+
|   1|John Doe|  30|
|   2|    null|null|
|   3|Jane Doe|  25|
|   4|Jake Doe|null|
|null|    null|null|
+----+--------+----+

Nach der Transformation:

+---+--------+----+
| id|    name| age|
+---+--------+----+
|  1|John Doe|  30|
|  2|    null|null|
|  3|Jane Doe|  25|
|  4|Jake Doe|null|
+---+--------+----+
Na Fill

Ersetzt Nullwerte und gibt einen Datenframe mit den ersetzten Werten zurück.

Parameter Beschreibung
replacement

Die Schlüssel/Wert-Zuordnung zum Ersetzen von Nullwerten. Der Schlüssel ist ein Spaltenname. Der Wert ist ein Ersatzwert.

Der Schlüssel verweist auf den Ersatzwert. Beispiel: name -> Tom bedeutet, dass Nullwerte in der Spalte name durch Tom ersetzt werden.

Ein Ersatzwert wird in den Datentyp der Spalte konvertiert. Ein Ersatzwert muss den folgenden Typ aufweisen:

  • Int
  • Long
  • Gleitkomma
  • Doppelt
  • String
  • Boolean
Beispiel

Vor der Transformation:

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Wenn die Schlüssel/Wert-Zuordnung folgendermaßen lautet:

id -> 3

name -> unknown

age -> 10

Nach der Transformation:

+---+-------+---+
|id |name   |age|
+---+-------+---+
|1  |Alice  |25 |
|2  |unknown|28 |
|3  |Bob    |10 |
|4  |Charlie|30 |
+---+-------+---+
Na Ersetzen

Ersetzt einen Wert durch einen anderen Wert in der oder den angegebenen Spalten, indem Schlüssel in der angegebenen Schlüssel- und Ersatzwertzuordnung übereinstimmen.

Gibt einen neuen Datenframe zurück, der die ersetzte Transformation enthält.

Parameter Beschreibung
cols

Ein Spaltenname oder eine durch Komma getrennte Liste von Spaltennamen, auf die Ersatzwerte angewendet werden sollen.

Wenn cols * ist, wird die Ersetzung auf alle Zeichenfolgen-, numerischen oder booleschen Spalten angewendet.

replacement

Die zu verwendende Ersatzschlüssel/Wert-Zuordnung. Der Schlüssel ist ein zu ersetzender Wert. Der Wert ist der Ersetzungswert. Der Zuordnungswert kann Nullen enthalten.

Der Schlüssel verweist auf den Ersatzwert. Beispiel: Alice -> Tom bedeutet, dass Alice durch Tom ersetzt wird.

Das Schlüssel-Ersatzwertpaar muss denselben Typ haben. Nur die folgenden Typen werden unterstützt:

  • Boolean
  • Doppelt
  • String
Beispiel

Vor der Transformation:

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Wenn cols name und replacement Alice -> Tom ist, lautet der Dataframe nach der Transformation:

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Tom    |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+
Erneut partitionieren

Teilt ein Dataset durch die angegebenen Spalten in die angegebene Anzahl von Partitionen auf.

Gibt ein neues Dataset zurück, das mit Hash partitioniert ist. Die genaue Anzahl der angegebenen Partition wird zurückgegeben.

Parameter Beschreibung
partitionColumns

Ein Spaltenname oder eine durch Komma getrennte Liste von Spaltennamen, nach denen das Dataset partitioniert ist.

numberOfPartitions

Die Anzahl von zu erstellenden Partitionen.

Aggregation

Generiert ein mehrdimensionales Rollup möglicher Kombinationen anhand der angegebenen Spaltenliste und der Berechnungen in den angegebenen Aggregatfunktionsausdrücken.

Die folgenden Aggregatfunktionen werden in den Ausdrücken unterstützt:

  • AVG
  • COUNT
  • MEAN
  • MAX
  • MIN
  • SUM

Gibt nach der Rollup-Transformation einen Datenframe zurück.

Parameter Beschreibung
rollupColumns

Die durch Kommas getrennte Liste der Spalten, durch die das mehrdimensionale Rollup generiert wird.

aggExpressions

Die Aggregatfunktionsausdrücke, die für die Spalten ausgeführt werden sollen.

Beispiel: salary -> avg, age -> max

Beispiel

Vor der Transformation:

+----------+-----+-------+------+---+
|department|group|region |salary|age|
+----------+-----+-------+------+---+
|Eng       |A    |local  |1000  |10 |
|Art       |B    |foreign|2000  |11 |
|Sport     |C    |local  |1500  |13 |
|Eng       |A    |foreign|800   |19 |
|Art       |A    |foreign|3000  |30 |
|Eng       |E    |foreign|1000  |21 |
|Art       |D    |local  |1000  |32 |
|Sport     |C    |local  |1000  |28 |
+----------+-----+-------+------+---+

Wenn rollupColumns department, region und aggExpressions salary -> avg, age -> max ist (das Durchschnittsgehalt und das Höchstalter berechnen), lautet das Rollup nach der Transformation:

+----------+-------+-----------------+--------+
|department|region |avg(salary)      |max(age)|
+----------+-------+-----------------+--------+
|Eng       |foreign|900.0            |21      |
|Sport     |null   |1250.0           |28      |
|Art       |null   |2000.0           |32      |
|Eng       |null   |933.3333333333334|21      |
|Art       |foreign|2500.0           |30      |
|Eng       |local  |1000.0           |10      |
|null      |null   |1412.5           |32      |
|Sport     |local  |1250.0           |28      |
|Art       |local  |1000.0           |32      |
+----------+-------+-----------------+--------+
Spark SQL

Führt Spark SQL-Abfragen für eingehende Daten aus, indem zuerst temporäre Views mit den angegebenen Tabellennamen erstellt werden.

Parameter Beschreibung
SQL

Die auszuführende SQL-Anweisung oder das auszuführende Skript.

Beispiel: select * from table1

tableName

Ein Tabellenname oder eine durch Komma getrennte Liste von Tabellennamen, mit denen Spark temporäre Tabellen erstellt.

Beispiel: table1, table2

Geschichtetes Abtasten

Generiert eine geschichtete Probe ohne Ersatz basierend auf der angegebenen Probenahmefraktion für jedes Stratum.

Gibt einen neuen Datenframe zurück, der die stratifizierte Probe darstellt.

Parameter Beschreibung
strata_col

Die Spalte, in der die Schichten definiert sind.

fractions

Die Stichprobenfraktion für jedes Stratum von 0.0 bis 1.0.

Beispiel: 0.1 gibt 10% der Zeilen zurück, und 1.0 gibt 100% der Zeilen zurück.

Wenn kein Bruch angegeben wird, wird Null angenommen.

sample_size

Wenn fractions nicht angegeben ist, geben Sie einen Teil des Datasets an, für das eine Stichprobe durchgeführt werden soll, von 0.0 bis 1.0.

seed

Verwenden Sie eine beliebige Zufallszahl in seed, um jedes Mal dieselbe Probe zurückzugeben, sodass das Ergebnis konsistent bleibt.

Beispiel

Vor der Transformation:

+---+-----+
|key|value|
+---+-----+
|  1|    1|
|  1|    2|
|  2|    1|
|  2|    1|
|  2|    3|
|  3|    2|
|  3|    3|
+---+-----+

Wenn strata_col key und fractions wie folgt lautet:

1 -> 1.0, 3 -> 0.5

Nach der Transformation:

+---+-----+
|key|value|
+---+-----+
|  1|    1|
|  1|    2|
|  3|    2|
+---+-----+
Zusammenfassung

Berechnet die angegebenen Statistiken für numerische und Zeichenfolgenspalten.

Wenn keine Statistiken angegeben werden, werden alle folgenden Daten berechnet:

  • COUNT
  • MEAN
  • STDDEV
  • MIN
  • ungefähre Quartile (Prozentile bei 25%, 50% und 75%)
  • MAX
Parameter Beschreibung
statistics

Eine durch Kommas getrennte Liste mit Statistiken.

Unterstützte Werte sind:

  • COUNT
  • MEAN
  • STDDEV
  • MIN
  • ein oder mehrere zufällige Näherungsperzentile, die als Prozentsatz angegeben sind (Beispiel: 75%)
  • MAX

Beispiel: count, mean, stddev, min, 27%, 41%, 95%, max

Beispiel

Vor der Transformation:

+----------+------+-----------------+--------+
|department|gender|avg(salary)      |max(age)|
+----------+------+-----------------+--------+
|Eng       |female|900.0            |21      |
|Sport     |null  |1250.0           |28      |
|Art       |null  |2000.0           |32      |
|Eng       |null  |933.3333333333334|21      |
|Art       |female|2500.0           |30      |
|Eng       |male  |1000.0           |10      |
|null      |null  |1412.5           |32      |
|Sport     |male  |1250.0           |28      |
|Art       |male  |1000.0           |32      |
+----------+------+-----------------+--------+

Angenommen, statistics ist count, mean, stddev, min, 27%, 41%, 95%, max.

Nach der Transformation:

+-------+----------+-----+------+----------------+----------------+
|summary|department|group|gender|salary          |age             |
+-------+----------+-----+------+----------------+----------------+
|count  |8         |8    |8     |8               |8               |
|mean   |null      |null |null  |1412.5          |20.5            |
|stddev |null      |null |null  |749.166203188585|8.76682056718072|
|min    |Art       |A    |female|800             |10              |
|27%    |null      |null |null  |1000            |13              |
|41%    |null      |null |null  |1000            |19              |
|95%    |null      |null |null  |3000            |32              |
|max    |Sport     |E    |male  |3000            |32              |
+-------+----------+-----+------+----------------+----------------+