CSVReader

Beschreibung

Parst CSV-formatierte Daten und gibt jede Zeile in der CSV-Datei als separaten Datensatz zurück. Dieser Reader ermöglicht die Ableitung eines Schemas anhand der ersten Zeile der CSV, wenn eine „header line“ vorhanden ist, oder die Bereitstellung eines expliziten Schemas zur Interpretation der Werte. Weitere Informationen finden Sie unter „Verwendung des Controller Service“.

Tags

comma, csv, delimited, parse, reader, record, row, separated, values

Eigenschaften

In der folgenden Liste sind die erforderlichen Eigenschaften mit einem Sternchen (*) gekennzeichnet. Andere Eigenschaften werden als optional betrachtet. Die Tabelle zeigt auch alle Standardwerte und ob eine Eigenschaft die NiFi Expression Language unterstützt.

Display Name (Anzeigename)

API-Name

Standardwert

Zugelassene Werte

Beschreibung

CSV Format *

CSV Format

custom

  • Custom Format

  • RFC 4180

  • Microsoft Excel

  • Tab-Delimited

  • MySQL Format

  • Informix Unload

  • Informix Unload Escape Disabled

Legt fest, in welchem „Format“ die CSV-Daten vorliegen, oder gibt an, ob eine benutzerdefinierte Formatierung verwendet werden soll.

Comment Marker

Comment Marker

Das Zeichen, das verwendet wird, um den Beginn eines Kommentars zu kennzeichnen. Jede Zeile, die mit diesem Kommentar beginnt, wird ignoriert.

Date Format

Date Format

Gibt das Format an, das beim Lesen/Schreiben von Datumsfeldern verwendet werden soll. Wenn nicht anders angegeben, werden Datumsfelder als Anzahl der Millisekunden seit Epoche (Mitternacht, 1. Januar 1970 GMT) angenommen. Falls angegeben, muss der Wert dem Java-Format „java.time.format.DateTimeFormatter“ entsprechen (z. B. MM/dd/yyyy für einen zweistelligen Monat, gefolgt von einem zweistelligen Tag, gefolgt von einem vierstelligen Jahr, alle durch „/“ Zeichen getrennt, wie in 01/01/2017).

Escape Character *

Escape Character

Das Zeichen, das verwendet wird, um Zeichen zu umgehen, die sonst eine bestimmte Bedeutung für den CSV-Parser hätten. Wenn die Eigenschaft über Expression Language angegeben wurde, der Ausdruck jedoch zur Laufzeit in ein ungültiges Escape-Zeichen ausgewertet wird, wird dieser übersprungen und das Standard-Escape-Zeichen verwendet. Die Einstellung auf eine leere Zeichenkette bedeutet, dass kein Escape-Zeichen verwendet werden soll.

Null String

Null String

Gibt eine Zeichenfolge an, die, wenn sie als Wert in CSV vorhanden ist, als Nullfeld betrachtet werden soll, anstatt den Literalwert zu verwenden.

Quote Character *

Quote Character

Das Zeichen, mit dem Werte in Anführungszeichen gesetzt werden, sodass keine Escape-Zeichen verwendet werden müssen. Wenn die Eigenschaft über Expression Language angegeben wurde, der Ausdruck jedoch zur Laufzeit zu einem ungültigen Anführungszeichen ausgewertet wird, wird dieses übersprungen und das Standard-Anführungszeichen verwendet.

Record Separator *

Record Separator

n

Gibt die Zeichen an, die zur Trennung von CSV-Datensätzen verwendet werden sollen.

Treat First Line as Header *

Skip Header Line

false

  • true

  • false

Legt fest, ob die erste Zeile der CSV als Header oder als Datensatz betrachtet werden soll oder nicht. Wenn die Schema-Zugriffsstrategie angibt, dass die Spalten im Header definiert werden müssen, dann wird diese Eigenschaft ignoriert, da der Header immer vorhanden sein muss und nicht als Datensatz verarbeitet wird. Andernfalls, wenn „true“, wird die erste Zeile der CSV-Daten nicht als Datensatz verarbeitet, und wenn „false“, wird die erste Zeile als Datensatz interpretiert.

Time Format

Time Format

Gibt das Format an, das beim Lesen/Schreiben von Zeitfeldern verwendet werden soll. Wenn nicht anders angegeben, werden Zeitfelder als Anzahl der Millisekunden seit Epoche (Mitternacht, 1. Januar 1970 GMT) angenommen. Falls angegeben, muss der Wert dem Java-Format „java.time.format.DateTimeFormatter“ entsprechen (z. B. HH: mm:ss für eine zweistellige Stunde im 24-Stunden-Format, gefolgt von einer zweistelligen Minute, gefolgt von einer zweistelligen Sekunde, alle getrennt durch „:“-Zeichen, wie in 18:04:15).

Timestamp Format

Timestamp Format

Gibt das Format an, das beim Lesen/Schreiben von Zeitstempelfeldern verwendet werden soll. Wenn nicht anders angegeben wird, werden die Zeitstempelfelder als Anzahl der Millisekunden seit Epoche (Mitternacht, 1. Januar 1970 GMT) angenommen. Falls angegeben, muss der Wert dem Java-Format „java.time.format.DateTimeFormatter“ entsprechen (z. B. MM/dd/yyyy HH: mm:ss für einen zweistelligen Monat, gefolgt von einem zweistelligen Tag, gefolgt von einem vierstelligen Jahr, alle getrennt durch „/“-Zeichen; und dann gefolgt von einer zweistelligen Stunde im 24-Stunden-Format, gefolgt von einer zweistelligen Minute, gefolgt von einer zweistelligen Sekunde, alle getrennt durch „:“-Zeichen, wie in 01/01/2017 18:04:15).

Trim Fields *

Trim Fields

true

  • true

  • false

Ob Leerzeichen am Anfang und Ende von Feldern entfernt werden sollen oder nicht

Trim double quote *

Trim double quote

true

  • true

  • false

Ob beginnende und endende doppelte Anführungszeichen abgeschnitten werden sollen oder nicht. Beispiel: Mit aktiviertem „Trim String“ wird die Zeichenfolge ‚„test“‘ zu ‚test‘ geparst, ohne „Trim“ hingegen zu ‚„test“‘. Die Einstellung „false“ bedeutet vollständige Compliance mit RFC-4180. Der Standardwert ist „true“, mit aktiviertem „Trim“.

Value Separator *

Value Separator

,

Das Zeichen, das verwendet wird, um Werte/Felder in einem CSV-Datensatz zu trennen. Wenn die Eigenschaft über die Expression Language angegeben wurde, der Ausdruck jedoch zur Laufzeit als ein ungültiges Werttrennzeichen ausgewertet wird, wird dieser übersprungen und das Standard-Werttrennzeichen verwendet.

CSV Parser *

csv-reader-csv-parser

commons-csv

  • Apache Commons CSV

  • Jackson CSV

  • FastCSV

Gibt den zum Lesen von CSV-Datensätzen zu verwendenden Parser an. NOTE: Verschiedene Parser können unterschiedliche Teilmengen an Funktionalität unterstützen und unterschiedliche Leistungsniveaus aufweisen.

Allow Duplicate Header Names

csvutils-allow-duplicate-header-names

true

  • true

  • false

Ob doppelte Kopfzeilennamen erlaubt sind. Bei Headernamen wird zwischen Groß- und Kleinschreibung unterschieden, z. B. werden „name“ und „Name“ als getrennte Felder behandelt. Die Behandlung von doppelten Hedernamen ist spezifisch für den CSV-Parser (falls zutreffend):* Apache Commons CSV – doppelte Header führen zu einer „Verschiebung“ der Spaltendaten nach rechts, wobei neue Felder für „unknown_field_index_X“ erstellt werden. Dabei ist „X“ die Indexnummer der CSV-Spalte.* Jackson CSV – doppelte Header werden dedupliziert, wobei der Feldwert aus der ganz rechten doppelten CSV-Spalte genommen wird. * FastCSV – doppelte Header werden dedupliziert, wobei der Feldwert aus der ganz linken doppelten CSV-Spalte genommen wird.

Character Set *

csvutils-character-set

UTF-8

Die Zeichencodierung, die zum Codieren/Decodieren der CSV-Datei verwendet wird

Ignore CSV Header Column Names

ignore-csv-header

false

  • true

  • false

Wenn die erste Zeile einer CSV ein Header ist und das konfigurierte Schema nicht mit den im Header genannten Feldern übereinstimmt, steuert dies, wie der Reader die Felder interpretiert. Wenn diese Eigenschaft „true“ ist, werden die Feldnamen, die den einzelnen Spalten zugeordnet sind, nur durch das konfigurierte Schema bestimmt und alle Felder, die nicht im Schema enthalten sind, werden ignoriert. Wenn diese Eigenschaft „false“ ist, werden die Feldnamen aus dem CSV-Header als Namen der Felder verwendet.

Schema Access Strategy *

schema-access-strategy

infer-schema

  • Eigenschaft „Schema Name“ verwenden

  • Eigenschaft „Schema Text“ verwenden

  • Schema Reference Reader

  • Use String Fields From Header

  • Infer Schema

Gibt an, wie das Schema abgerufen wird, das zur Interpretation der Daten verwendet werden soll.

Schema Branch

schema-branch

Gibt den Namen des Zweigs an, der beim Suchen des Schemas in der Eigenschaft „Schema Registry“ verwendet werden soll. Wenn die gewählte „Schema Registry“ keine Verzweigungen unterstützt, wird dieser Wert ignoriert.

Schema Name

schema-name

${schema.name}

Gibt den Namen des Schemas an, das in der Eigenschaft Schema Registry gesucht werden soll.

Schema Reference Reader *

schema-referenz-reader

Dienstimplementierung, die für das Lesen von FlowFile-Attributen oder -Inhalten verantwortlich ist, um den Schema Reference Identifier zu ermitteln

Schema Registry

schema-registry

Gibt den Controller Service an, der für die Schema Registry verwendet werden soll

Schema Text

schema-text

${avro.schema}

Der Text eines Avro-formatierten Schemas

Schema Version

schema-version

Gibt die Version des Schemas an, die in der Schema Registry gesucht werden soll. Wenn nicht angegeben, wird die neueste Version des Schemas abgerufen.

Statusmanagement

Diese Komponente speichert keinen Status.

Eingeschränkt

Diese Komponente ist nicht eingeschränkt.

Hinweise zu Systemressourcen

Diese Komponente enthält keine Angaben zu den Systemressourcen.