UpdateDatabaseTable 2025.10.2.19

Bundle

org.apache.nifi | nifi-standard-nar

Beschreibung

Dieser Prozessor verwendet eine JDBC-Verbindung und eingehende Datensätze, um alle Änderungen in der Datenbanktabelle zu erzeugen, die zur Unterstützung der eingehenden Datensätze erforderlich sind. Es erwartet ein „flaches“ Datensatzlayout, d. h. keines der Datensatzfelder der obersten Ebene hat verschachtelte Felder, die selbst zu Spalten werden sollen.

Tags

alter, database, jdbc, metadata, table, update

Eingabeanforderung

REQUIRED

Unterstützt sensible dynamische Eigenschaften

false

Eigenschaften

Eigenschaft

Beschreibung

Column Name Translation Pattern

Der Spaltenname wird mit diesem regulären Ausdruck normalisiert.

Column Name Translation Strategy

Die Strategie, die zur Normalisierung der Tabellenspaltennamen verwendet wird. Der Spaltenname wird automatisch in Großbuchstaben konvertiert, damit der Abgleich ohne Berücksichtigung der Groß- und Kleinschreibung funktioniert – unabhängig von der Strategie.

Database Dialect Service

Database Dialect Service zur Generierung von Anweisungen, die auf einen bestimmten Dienst oder Anbieter zugeschnitten sind.

db-type

Datenbanktyp zum Generieren von Anweisungen, die für einen bestimmten Dienst oder Anbieter spezifisch sind. Der generische Typ unterstützt die meisten Fälle, aber die Auswahl eines bestimmten Typs ermöglicht eine optimale Verarbeitung oder zusätzliche Funktionen.

record-reader

Der Dienst zum Lesen eingehender FlowFiles. Der Reader wird nur zur Ermittlung des Schemas der Datensätze verwendet, die eigentlichen Datensätze werden nicht verarbeitet.

updatedatabasetable-catalog-name

Der Name des Katalogs, den die Anweisung aktualisieren soll. Dies gilt möglicherweise nicht für die Datenbank, die Sie aktualisieren. In diesem Fall lassen Sie das Feld leer. Beachten Sie, dass der Katalogname genau mit dem Katalognamen der Datenbank übereinstimmen muss, wenn die Eigenschaft gesetzt ist und die Datenbank Groß- und Kleinschreibung beachtet.

updatedatabasetable-create-table

Gibt an, wie die Zieltabelle verarbeitet werden soll, wenn sie nicht existiert (z B. erstellen, Fehler).

updatedatabasetable-dbcp-service

Der Controller Service, der verwendet wird, um die Verbindung(en) zur Datenbank herzustellen

updatedatabasetable-primary-keys

Eine durch Kommas getrennte Liste von Datensatzfeldnamen, die eine Zeile in der Datenbank eindeutig identifiziert. Diese Eigenschaft wird nur verwendet, wenn die angegebene Tabelle erstellt werden muss. In diesem Fall werden die Primärschlüsselfelder verwendet, um die Primärschlüssel der neu erstellten Tabelle anzugeben. IMPORTANT: Primärschlüsselfelder müssen exakt mit den Feldnamen des Datensatzes übereinstimmen, es sei denn, „Quote Column Identifiers“ ist falsch und die Datenbank erlaubt die Unterscheidung von Groß- und Kleinschreibung bei Spaltennamen. In der Praxis ist es am besten, wenn Sie Primärschlüsselfelder angeben, die genau mit den Namen der Datensatzfelder übereinstimmen. Diese werden dann die Spaltennamen in der erstellten Tabelle.

updatedatabasetable-query-timeout

Legt die Anzahl der Sekunden fest, die der Treiber auf die Ausführung einer Abfrage wartet. Ein Wert von 0 bedeutet keine Zeitüberschreitung. NOTE: Werte ungleich Null werden vom Treiber möglicherweise nicht unterstützt.

updatedatabasetable-quoted-column-identifiers

Wenn Sie diese Option aktivieren, werden alle Spaltennamen in Anführungszeichen gesetzt, sodass Sie reservierte Wörter als Spaltennamen in Ihren Tabellen verwenden können und/oder die Feldnamen der Datensätze genau mit den Spaltennamen übereinstimmen müssen.

updatedatabasetable-quoted-table-identifiers

Wenn diese Option aktiviert ist, wird der Tabellenname in Anführungszeichen gesetzt, um die Verwendung von Sonderzeichen im Tabellennamen zu unterstützen und/oder um sicherzustellen, dass der Wert der Eigenschaft „Tabellenname“ exakt mit dem Zieltabellennamen übereinstimmt.

updatedatabasetable-record-writer

Gibt den Controller-Dienst an, der zum Schreiben von Ergebnissen in ein FlowFile verwendet werden soll. Der Record Writer sollte „Inherit Schema“ verwenden, um die Verhaltensweise des abgeleiteten Schemas zu emulieren, d. h. es muss kein explizites Schema im Writer nicht definiert werden und wird von derselben Logik bereitgestellt, die zur Ableitung des Schemas aus den Spaltentypen verwendet wird. Wenn „Create Table Strategy“ auf „Create If Not Exists“ (Erstellen, wenn nicht vorhanden) eingestellt ist, muss das Ausgabeformat des Record Writer mit dem Format des Record Reader übereinstimmen, damit die Daten am erstellten Tabellenspeicherort platziert werden können. Beachten Sie, dass diese Eigenschaft nur verwendet wird, wenn „Update Field Names“ auf „true“ gesetzt ist und die Feldnamen nicht alle genau mit den Spaltennamen übereinstimmen. Wenn für Feldnamen keine Aktualisierung erforderlich ist (oder „Update Field Names“ den Wert „false“ hat), wird nicht der „Record Writer“-Code verwendet, sondern das Eingabe-FlowFile wird ohne Änderung zum Erfolg oder Fehler weitergeleitet.

updatedatabasetable-schema-name

Der Name des Datenbankschemas, zu dem die Tabelle gehört. Dies gilt möglicherweise nicht für die Datenbank, die Sie aktualisieren. In diesem Fall lassen Sie das Feld leer. Beachten Sie, dass der Schemaname genau mit dem Schemanamen der Datenbank übereinstimmen muss, wenn die Eigenschaft gesetzt ist und die Datenbank Groß- und Kleinschreibung beachtet.

updatedatabasetable-table-name

Der Name der zu aktualisierenden Datenbanktabelle. Wenn die Tabelle nicht existiert, wird sie entweder erstellt oder es wird ein Fehler ausgegeben, je nach dem Wert der Eigenschaft Create Table.

updatedatabasetable-translate-field-names

Bei „true“, versucht der Prozessor, die Feldnamen in die entsprechenden Spaltennamen der angegebenen Tabelle zu übersetzen, um festzustellen, ob der Feldname als Spalte in der Zieltabelle existiert. NOTE: Wenn die Zieltabelle nicht existiert und erstellt werden soll, wird diese Eigenschaft ignoriert und die Feldnamen werden unverändert verwendet. Bei „false“ müssen die Feldnamen genau mit den Spaltennamen übereinstimmen. Andernfalls wird die Spalte nicht gefunden, und es wird eine Fehlermeldung ausgegeben, dass die Spalte bereits existiert.

updatedatabasetable-update-field-names

Diese Eigenschaft gibt an, ob das Ausgabeschema so aktualisiert werden soll, dass die Feldnamen auf die exakten Spaltennamen der angegebenen Tabelle gesetzt werden. Dies sollte verwendet werden, wenn die Feldnamen des eingehenden Datensatzes möglicherweise hinsichtlich Groß- und Kleinbuchstaben nicht mit den Spaltennamen der Tabelle übereinstimmen. Zum Beispiel sollte diese Eigenschaft auf „true“ gesetzt werden, wenn die Ausgabe von FlowFile für Oracle bestimmt ist, das erwartet, dass die Feldnamen genau mit den Spaltennamen übereinstimmen. NOTE: Der Wert der Eigenschaft „Translate Field Names“ wird bei der Aktualisierung von Feldnamen ignoriert. Stattdessen werden sie aktualisiert, um dem Spaltennamen zu entsprechen, wie er von der Datenbank zurückgegeben wird.

Beziehungen

Name

Beschreibung

failure

Ein FlowFile mit Datensätzen, die an diese Beziehung weitergeleitet werden, wenn der Datensatz nicht an die Datenbank übertragen werden konnte.

success

Ein FlowFile mit Datensätzen, die an diese Beziehung weitergeleitet werden, nachdem der Datensatz erfolgreich an die Datenbank übertragen wurde.

Schreibt Attribute

Name

Beschreibung

output.table

Dieses Attribut wird in die FlowFiles geschrieben, die an die Beziehungen „success“ und „failure“ weitergeleitet werden, und enthält den Namen der Zieltabelle.

output.path

Dieses Attribut wird in die FlowFiles geschrieben, die an die Beziehungen „success“ und „failure“ weitergeleitet werden, und enthält den Pfad im Dateisystem zur Tabelle (oder den Speicherort der Partition, wenn die Tabelle partitioniert ist).

mime.type

Setzt das Attribut mime.type auf den vom Record Writer angegebenen MIME-Typ, nur wenn ein Record Writer angegeben ist und Update Field Names „true“ ist.

record.count

Legt die Anzahl der Datensätze im FlowFile fest, nur wenn ein Record Writer angegeben ist und Feldnamen aktualisieren „true“ ist.