2016-09-28 5 views
2

Ich versuche, Tausende von komprimierten Dateien auf einmal über NFS in Vertica mit einer Kopie-Anweisung mit dem glob Ausdruck zu laden, aber der Betrieb auf dem folgenden Fehler wird abgebrochen:Wie können Dateiladefehler in Vertica übersprungen und fortgeführt werden?

ERROR 6253: Error occured during LZO header processing: expecting more than 8 bytes, possibly file corrupted 

Was den richtigen Weg ist zu sagen, Vertica, um mit dem Laden aller guten Dateien fortzufahren und nur zu melden, welche am Ende des Ladevorgangs fehlgeschlagen sind?

Antwort

4

Wenn Sie Vertica 7.2.x ausführen, haben sie einen neuen Parameter mit der Bezeichnung ERROR TOLERANCE hinzugefügt. Vor dieser Version existiert es nicht.

Sie können die Kopieroptionen here sehen.

Treats each source during execution independently when loading data. The statement is not rolled back if a single source is invalid. The invalid source is skipped and the load continues.

This parameter is disabled for ORC files, Parquet files, and when using a fenced User Defined Load (UDL).

Die einzige andere Alternative wäre, die Gültigkeit in einem Skript PreCheck oder sie separat laden (natürlich wäre dies ein Performance-Problem sein, damit ich für den precheck entscheiden würde).

+0

danke, das war wirklich schnell. Es ist eine Schande, dass dies die zugewiesenen Ladefunktionen deaktiviert. – tamale

+0

@tamale Sie könnten dies innerhalb der ApportionedLoad-UDX selbst beheben, um Fehler in Quellen zu erfassen und zu behandeln. Nicht, dass das trivial wäre (es sei denn, du warst bereits mit dem Schreiben von UDL vertraut). – woot

+0

@tamale Eine Anmerkung ist auch, dass eine Aufteilung nicht erforderlich ist, wenn Ihre Daten bereits in viele Dateien aufgeteilt sind und Sie alle mit 'auf einem Knoten 'referenzieren. Es wird bereits parallel jede Datei auf einem anderen Knoten laden. – woot

Verwandte Themen