Deutsch   |   English
   
 digg.com  del.icio.us 

EXAloader Exceptions

Wenn ein Fehler beim IMPORT auftritt, rollt die Datenbank immer die aktuelle Transaktion zurück. Der Nutzer erhält eine Fehlermeldung [40001] Global Transaction Rollback. Im Exception-Text findet sich eine detaillierte Erklärung zum aufgetretenen Problem sowie ein zweiter Errorcode, der mit "ETL-" anfängt. 

Diese Codes können in folgende Gruppen aufgeteilt werden:

  • ETL-21XX CSV Parser Fehler
  • ETL-22XX FBV Parser Fehler
  • ETL-3XXX Transformationsfehler
  • ETL-4XXX Fehler bei externen Datenquelle

Immer wenn es möglich ist, enthalten Fehlermeldungen Datensatznummern, zum Beispiel: "Error while parsing row=2". Eine solche Datensatznummer bezieht sich auf eine Quelldatei, muss aber nicht unbedingt mit der Zeilennummer übereinstimmen. Das ist meist der Fall, wenn ein Zeilenumbruch als Datensatztrennzeichen (ROW SEPARATOR) verwendet wird und Datenbankfelder auch Zeilenumbrüche enthalten können.

Im Folgenden finden Sie für einige dieser Gruppen typische beziehungsweise häufig auftretende Fehler.

Beispiele für IMPORT-Befehl

  1. IMPORT INTO example.mytable FROM CSV AT ftp1 FILE 'mytable.csv';

ETL-21XX CSV Parser Fehler

Bitte beachten Sie, dass CSV nicht standardisiert ist. Das bedeutet, dass Sie bei der Datenübertragung zwischen verschiedenen Systemen auf Kompatibilität achten müssen, um Fehler zu vermeiden. Hierfür ist die Definition der von EXASOL unterstützten CSV Formats von großen Nutzen (siehe User Manual).

In der Tat resultieren beim IMPORT auftretende Probleme meist aus inkompatiblen oder fehlerhaften Dateien. Im Folgenden finden Sie einige typische Beispiele.

ETL-2106: Error while parsing row=2 (starting from 0)

  1. [CSV Parser found at byte 7 (starting with 0 at the beginning of the row) of 33 a field delimiter after an unquoted field (with additional whitespaces). Please check for correct enclosed fields, valid field separators and e.g. unescaped field delimiters that are contained in the data (these have to be escaped)].

Erklärung: Fehlendes Spaltentrennzeichen
In der dritten Zeile fehlt hinter "juhu" das Spaltentrennzeichen (hier: ',')

  1. "juhu","42","2009-12-01","exasol"
  2. "juhu","42","2009-12-01","exasol"
  3. "juhu" "42","2009-12-01","exasol"
  4. "juhu","42","2009-12-01","exasol"
  5. "juhu","42","2009-12-01","exasol"

Lösung: Korrigieren Sie bitte Ihre Eingangsdaten

ETL-2105: Error while parsing row=0 (starting from 0)

  1. [CSV Parser found at byte 33 (starting with 0 at the beginning of the row) of 33 a single field delimiter in enclosed field or not correct enclosed field. Please check for unescaped field delimiters in the data (they have to be
  2. escaped) and correct enclosing of this field)]
  3.  

Erklärung: falsch begrenztes CSV Feld

CSV-Parser fand Daten hinter der Feldbegrenzung.
In der Beispieldatei ist in der zweiten Zeile hinter "42" noch das Zeichen 'a' vorhanden.

  1. "juhu","42","2009-12-01","exasol"
  2. "juhu","42" a,"2009-12-01","exasol"
  3. "juhu","42","2009-12-01","exasol"
  4. "juhu","42","2009-12-01","exasol"
  5. "juhu","42","2009-12-01","exasol"

Lösung: Korrigieren Sie bitte Ihre Eingangsdaten

ETL-2105: Error while parsing row=0 (starting from 0)

  1. [CSV Parser found at byte 33 (starting with 0 at the beginning of the row) of 33 a field delimiter after an unquoted field (with an additional whitespace). Please check for unescaped field delimiters in the data (they have to be escaped) and correct enclosing of this field]

Erklärung: Falsch angegebener Zeilenumbruch

Die Datei enthält <CR><LF> als Zeilenumbruch anstatt normalerweise <LF>. Die Fehlermeldung sieht genauso aus wie im Beispiel oben. <CR> kommt nach dem Anführungszeichen und wird als ungültiges Zeichen außerhalb der Feldbegrenzung interpretiert. Dies kann beispielsweise durch die Bearbeitung mit einigen Textbearbeitungsprogrammen vorkommen.

Lösung: Entweder wird die Datei korrigiert oder Sie könenn das Zeichen für den Zeilenumbruch muss entsprechend angeben:

  1. IMPORT INTO example.mytable FROM CSV
  2. AT ftp1 FILE 'mytable.csv'
  3. ROW SEPARATOR='CRLF';

ETL-2101: Error while parsing row=2 (starting from 0)

  1. [CSV Parser found incorrect number of columns. Expected: [4], found [1] columns]

Erklärung: Leere Zeile in einer Datei

In der Beispieldatei ist die dritte Zeile leer. Bei einer Datei mit einer Spalte würde eine leere Zeile eine NULL-Marke bedeuten. Dies erklärt die Eins bei der Anzahl der gefundenen Spalten.

  1. "juhu","42","2009-12-01","exasol"
  2. "juhu","42","2009-12-01","exasol"
  3.  
  4. "juhu","42","2009-12-01","exasol"
  5. "juhu","42","2009-12-01","exasol"
  6. "juhu","42","2009-12-01","exasol"

Lösung: Entweder kann die fehlerhafte Zeile als Kommentar gekennzeichnet werden (führendes Zeichen: '#') oder sie soll aus den Eingangsdaten entfernt werden.

ETL-3XXX Transformationsfehler

Zu dieser Gruppe gehören Fehler, die bei der Interpretation der Daten selbst auftreten. Hier wird zusätzlich zur Datensatznummer auch die entsprechende Spaltennummer und wenn möglich der Wert, der nicht interpretiert werden konnte.

ETL-3013: [Column=2 Row=0]

  1. [Data '01.12.2009' doesn't match FORMAT 'YYYY-MM-DD'. Couldn't identify $3$]

Erklärung: falsches Datumsformat in einer DATE-Spalte

Anstatt in der Schreibweise YYYY-MM-DD ist in einer Datei das Datum im Format DD.MM.YYYY angegeben.

  1. "juhu","42","01.12.2009","exasol"
  2. "juhu","42","01.12.2009","exasol"
  3. "juhu","42","01.12.2009","exasol"
  4. "juhu","42","01.12.2009","exasol"
  5. "juhu","42","01.12.2009","exasol"

Lösung: Es kann für die dritte Spalte ein abweichendes FORMAT angegeben werden um die Daten zu laden:

  1. IMPORT INTO example.mytable FROM CSV
  2. AT ftp1 FILE 'mytable.csv'
  3. (1,2,3 FORMAT='DD.MM.YYYY');

ETL-3022: [Column=1 Row=0]

  1. [Data '42' is out of range for DECIMAL(1,1)]

Erklärung: Einfügen eines Wertes außerhalb des Bereichs der Spalte (OutOfRange)

In diesem Beispiel ist die zweite Spalte vom Typ DECIMAL(1,1). '42' kann nicht eingefügt werden.

  1. "juhu","42","2009-12-01","exasol"
  2. "juhu","42","2009-12-01","exasol"
  3. "juhu","42","2009-12-01","exasol"
  4. "juhu","42","2009-12-01","exasol"
  5. "juhu","42","2009-12-01","exasol"

Lösung:

Sie haben 2 Möglichkeiten:

zum einen, können Sie durch Anpassung des Wertebereichs der Zieltabelle die Daten in die so geänderte Zieltabelle einfügen. Wenn die Daten tatsächlich zu groß sind, können Sie die betroffene Spalte beim Ladevorgang auslassen.

ETL-3010: [Column=1 Row=0]

  1. [Data 'juhu' doesn't match format for DECIMAL. Valid data is e.g.: '123.45e-2']

Erklärung: Fehlerhafte Daten

In einer Decimal-Spalte kommt ein Text vor. 

"juhu","42","2009-12-01","exasol" "juhu","juhu","2009-12-01","exasol" "juhu","42","2009-12-01","exasol" "juhu","42","2009-12-01","exasol"

Lösung: Korrigieren Sie bitte Ihre Eingangsdaten

ETL-3002: [Column=0 Row=1]

  1. [Invalid byte stream for UTF-8 encoding. Please check the encoding setting and the input data]

Erklärung: Laden einer Datei im falschen encoding

In diesem Szenario enthält die Datei das Sonderzeichen 'ü' und die Datei ist im encoding 'Latin1' abgespeichert.

Beispieldatei ETL-3002

  1. "juhu","42","2009-12-01","exasol"
  2. "üppig","42","2009-12-01","exasol"
  3. "juhu","42","2009-12-01","exasol"
  4. "juhu","42","2009-12-01","exasol"

Lösung: Das entsprechende Encoding kann überschrieben werden:

  1. IMPORT INTO example.mytable FROM CSV
  2. AT ftp1 FILE 'mytable.csv'
  3. ENCODING='Latin-1';

Beispiele für EXPORT

Beim Exportieren von Daten kommen in der Regel nur Data Exceptions vor. Da die Inhalte der Quelldatenbank nicht verändert werden, tritt auch kein GlobalTransactionRollback auf.

ETL-3XXX Transformationsfehler

Error: [42636] ETL-3003: [Column=0] 
[String data right truncation. String length exceeds limit of 2 characters]

Erklärung: der Wert ist zu groß

Es wird versucht, eine Zeichenkette 'juhu' bestehend aus 4 Zeichen in eine Spalte einzufügen, die lediglich 2 Zeichen zulässt (VARCHAR(2))

  1. --lokale EXASolution:
  2. CREATE TABLE stringtruncorig
  3. (c1 VARCHAR(10), c2 DECIMAL, c3 DATE, c4 CHAR(10));
  4.  
  5. INSERT INTO strintruncorig
  6. VALUES('juhu', 42, '2009-12-01', 'exasol');
  7.  
  8. ---externe EXASolution:
  9. CREATE TABLE stringtrunc
  10. (c1 VARCHAR(2), c2 DECIMAL, c3 DATE, c4 CHAR(10));
  11.  
  12. EXPORT example.stringtruncorig INTO EXA AT external_exa
  13. TABLE example.stringtrunc;

Lösung: Folgende Lösungsansätze stehen Ihnen zur Verfügung:

  • Anpassung der Datentypen in der externen EXASolution
  • Auslassen der entsprechenden Spalte
  • Gestaltung der Quelldaten als eine SELECT-Abfrage, wo Daten auf maximal 2 Zeichen abgeschnitten werden.
Sie kommen nicht weiter?
Unterstützte Formate


In diesem Auszug aus unserem Manual finden Sie CSV und FBV Formatdefinitionen.

Referenzen
  • AHOOLY
  • COOP
  • „Mit EXASolution sind wir für zukünftiges Datenwachstum bestens gerüstet. Dadurch, dass wir jetzt Geodaten verarbeiten, sprich die Dimension des Raumbezugs mit auswerten können, bieten wir unseren Kunden ganz neue Analysemöglichkeiten und noch umfassendere Marktübersichten. Wir sind sehr zufrieden mit der neuen Lösung, können flexibel auf zukünftige Anforderungen reagieren und trotzdem unsere Total Cost of Ownership reduzieren, da der so gewählte BI-Stack unsere Vision eines „Lean-BI“ in vollem Umfang unsterstützt.“

    Guido Niermann, IT-Leiter, Dataforce GmbH

    Dataforce
  • "Durch die Einbindung von EXASOL können wir unseren Kunden ein ganz neues Erlebnis bezüglich der explorativen Datenanalyse bieten… Neben der Technologie waren wir vor allem mit der Pre-Sales Beratung und dem Support während der Integration äußerst zufrieden."

     Martin Heink
    Geschäftsführer und Inhaber, econda GmbH 

    Econda
  • "Entscheidend für die IMS Health war insbesondere, dass wir uns durch einen sehr schnell aufgesetzten Proof of Concept von der Leistungsfähigkeit von EXASolution direkt überzeugen konnten."

     Michael Kempke
    Director Data Collection Global Operations, IMS Health GmbH & Co. OHG

    IMS
  • "Mit der innovativen Datenbank von EXASOL können wir komplexe Berechnungen genauer und umfangreicher durchführen. Das gibt uns einen signifikanten Technologievorsprung gegenüber der Konkurrenz."

     Tobias Kiessling
    CTO, intelliAd 

    Intelliad
  • "Die durchgängig hohe Leistung und die Möglichkeit, Echtzeitanalysen fahren zu können, waren für uns ausschlaggebend bei der Wahl von EXASolution."

     Tobias Kroha, Geschäftsführer der für das m-pathy-Projekt verantwortlichen seto GmbH

    m-pathy
  • Media Control
  • Olympus
  • "Wir haben uns für EXASolution entschieden, da die Hochleistungsdatenbank mit den zu erwartenden großen Datenmengen sehr gut umgehen kann und optimale Flexibilität bietet."

     Dr. Michael Röbbecke
    (ehem.) Geschäftsführer, RatePAY 

    RatePAY
  • "Mit EXASolution können wir unsere Geschäftsprozesse deutlich optimieren." 

     Gerhard Zapf
    Projektleiter, Semikron 

    Semikron
  • "Ein zuverlässiger und schneller Support, eine bessere Kundenbetreuung sowie eine bewiesene Fachkompetenz…"

     David Hodge
    IT Director, Sony Music Entertainment Germany 

    Sony Music
  • SOQUERO
  • SponsorPay
  • Stayfriends
  • "Die Datenbank von EXASOL ist Technik made in Germany, auf die wir uns langfristig verlassen können. Da sie bei steigendem Datenvolumen selbstständig skaliert und auch physisch beliebig erweitert werden kann, wächst unsere Datenbank mit unserem Unternehmen, und wir können auch in Zukunft flexibel und schnell auf neue Anforderungen reagieren."

     Heinrich Zetlmayer
    Geschäftsführer, Turtle Entertainment 

    Turtle Entertainment
  • United Internet Dialog
  • "Mit EXASolution haben wir eine Lösung erworben, die unsere hohen Leistungsansprüche komplexer Analysen bei steigenden Datenmengen für unsere Kunden optimal erfüllt." 

     Christian Sauer
    Geschäftsführer, Webtrekk GmbH 

    Webtrekk
  • "Wir haben uns nach einem ausgiebigen Benchmark-Test für die Lösung von EXASOL entschieden. Die hohe Performance des Systems, das Preis-/Leistungs-Verhältnis und der Service haben uns vollauf überzeugt"

    Dr. Ulrich Fricke
    Leiter Business Intelligence, XING AG 

    Xing
  • "Neben Wirtschaftlichkeit, Geschwindigkeit und hoher Leistungsfähigkeit war Flexibilität eines der entscheidenden Kriterien bei der Wahl unserer Datenbank… Die neue Datenbank bietet uns diese Skalierbarkeit bei reduzierten Total Cost of Ownership. So können wir auch in Zukunft immer die optimale Analyseleistung für unsere Kunden erbringen…"

     Sebastian Hoop
    Head of Operations, xplosion interactive gmbh 

    Xplosion
  • Zalando