Frage

Wir erhalten viele Daten als flache Dateien: delimitted oder nur Datensätze mit fester Länge. Es ist manchmal schwierig, herauszufinden, was die Dateien tatsächlich enthalten.

Gibt es bewährte Praktiken für die Einbettung des Schemas der Datei an den Anfang oder das Ende einer Datei die Datei selbsterklärend zu machen?

Nur um eine Idee zu bekommen, sich vorstellen, so etwas wie folgt aus:

<data name=test records=2 type=fixed>
   <field name=foo start=0 length=2 type=numeric>
   <field name=bar start=2 length=4 type=text>
</data>
11test
12ing 

Wir würden das xml am Anfang analysieren und es für die Datensätze zu lesen.

War es hilfreich?

Lösung

So weit ich bewusst nicht bin -. Oder zumindest nicht sehr groß

Das einzige, was ich kenne (im Sinne eines allgemein akzeptierten Standard) ist für die erste Zeile der Datendatei der Spaltennamen zu sein - zumindest für Datensätze begrenzt, für die feste Länge seines härteren vor allem, wenn Sie Ihre Daten enthalten kann mehrere Datensatztypen (die ich gefunden habe, viel eher mit fester Länge zu sein, als mit begrenzt).

Von wo ich sitze ich würde vorschlagen, dass man nicht wirklich die Definition in die Datei einbetten Ich gehe davon aus Sie Daten aus externen Quellen erhalten so dass Sie wahrscheinlich nicht von ihnen Hilfe bekommen und selbst wenn Sie tun Sie sofort Herausforderungen erstellen, wie Sie nicht (zum Beispiel) können leicht die Dateien mit Excel bei Bedarf öffnen.

Denken ein wenig seitlich könnte man - wenn XML - einbetten möglicherweise die Datei in die Definition (große Klumpen von CDATA). Dies ist eine etwas praktischere Lösung als einen Wrapper runden Ihre externen Daten stellen nicht fordern, dass die Daten selbst modifiziert werden. Nicht sicher, wie praktisch das ist -. Aber es fühlt sich besser für mich, als umgekehrt

Andere Tipps

Sie haben unter Protocol Buffers für Inspiration?

Ich weiß nicht, über jede gängige Praxis, aber Ihre Idee nur voranstellen, das Schema zu den Daten scheint in Ordnung. Apache Avro ist ein Daten Serialisierungsfunktion ähnlich wie Protocol Buffers und Thrift. Ich glaube, typische Avro Nutzung beinhaltet das Schema mit den Daten zu speichern (durch im Strom vorangestellt wird, würde ich schätzen).

Ich wollte auch erwähnen, das PADS projizieren. Sie haben eine Schemasprache lassen Sie „Ad-hoc“ Datenformate beschreiben. Derzeit glauben, dass ich sie nur C und ML-Implementierungen haben, was ein Problem sein kann. Auf der anderen Seite wurde die Schemasprache entwickelt, um eine Vielzahl von Formaten zu handhaben, so es immer noch wert sein könnte es über die eigene XML-basierte, was verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top