2016-10-13 1 views
0

Ich weiß, dass dies eine dumme Frage sein muss, aber nach stundenlangem Googlen kann ich die Antwort nicht bekommen.Wie grenzt ORC Felder ab?

Im Klartextformat wie csv ist es einfach zu verstehen, wie die Trennzeichen funktionieren. Während in ORC, da ist binär in HDFS gespeichert, was wäre ein Trennzeichen für ein Feld? Mir wurde gesagt, dass es im ORC kein Trennzeichen gibt, aber ich bezweifle diese Aussage sehr.

Auch wenn es als Zeilengruppen gespeichert ist, kann es für jede Zeilengruppe einer Zeile mehrere Datenfelder geben, wie unterscheidet sich jedes Feld von dem nächsten? Wie ist jede Reihe von der nächsten Reihe getrennt? Gibt es ein Trennzeichen, um dies zu erreichen?

Vielen Dank für Kommentare!

+0

vor 50 Jahren, * niemand * Feldbegrenzungszeichen verwendet, noch Zeilentrennzeichen. Weil Mainframe-Dateien Datensätze fester Breite mit Feldern fester Breite verwendeten. Und auch weil Lochkarten grundsätzlich Geräte mit fester Breite waren (keine Tastatur, kein Bildschirm, keine Maus, duh). –

+1

Dann wurden VARCHAR (Zeichenfolgen mit variabler Länge) erstellt. Aber immer noch kein Trennzeichen: Das Feld beginnt mit einer Ganzzahl fester Breite, die die Länge der folgenden Daten angibt. I.e. Wie viele Bytes müssen Sie überspringen, um das nächste Feld zu finden? Siehe auch das Konzept des BIFF-Dateiformats, das von älteren Excel-Dateien verwendet wurde http://www.gaia-gis.it/gaia-sins/freexl-1.0.1-doxy-doc/html/Format.html –

Antwort

0

Kein Trennzeichen. Es verwendet Stride/Stripes,

Der Körper der Datei ist in Streifen unterteilt. Jeder Streifen ist selbst enthalten und kann nur mit seinen eigenen Bytes kombiniert mit der Datei Fußzeile und Postscript gelesen werden. Jeder Stripe enthält nur ganze Zeilen, so dass Zeilen niemals Streifengrenzen überschreiten. Streifen haben drei Abschnitte: eine Reihe von Indizes für die Zeilen innerhalb des Stripe, die Daten selbst, und eine Stripe-Fußzeile. Sowohl die Indizes als auch die Datenbereiche sind durch Spalten unterteilt, so dass nur die Daten für die erforderlichen Spalten gelesen werden müssen.

Siehe: ORC