Datenimport – Feldlängen, Spaltentypen und Nullwerte [Artikel in Bearbeitung]

In DataLion gibt es verschiedene Optionen für den Umgang mit Variablentypen und Feldlängen beim Datenimport zu MySQL (standard-Datenbank von DataLion).

Für den Datenimport wählen Sie im Projektbackend > Datenquellen in einer Datentabelle das Feld Data Upload aus, speichern. 

mceclip0.png

Nach Klick auf Speichern erscheint das folgende Import-Menü:

mceclip0.png

Es gibt im Feld Handle column types / NULL values folgende Optionen: 

  • Standard import:
    • Technische Implementierung: VARCHAR(255)
    • D.h. es wird bei jeder Variable eine Feldlänge = 255 gesetzt
    • Das Limit der Spaltenlängen insgesamt ist 65.535. Dieses wird bei ca. 85 Spalten erreicht. Z.B. 92 Spalten x 255 Zeichen x 3 bytes => 70.380
  • Optimize column lenghts:
    • Technische Implementierung: VARCHAR(width)
    • In der Datenbank werden die Feldlängen automatisch auf die tatsächliche Spaltenbreite begrenzt 
    • Beispiel: Der längste Inhalt einer Spalte ist „9999“ –> Die Spalte hat die Feldlänge = 4 
    • Das ermöglicht breitere Datensätze und erhöht die Performance
  • Optimize column types and lengths:
    • Technische Implementierung: type(width)
    • Es werden neben den Feldlängen auch die Feldtypen automatisch erkannt
    • Im Datensatz werden leere Felder automatisch als NULL eingelesen.
      • Hintergrund: Numerische Spalten werden durch „optimize column type“ als numerische Feldtypen angelegt. Bei numerischen Feldtypen gibt es in mySQL als mögliche Werte Zahlen und NULL. Anders als bei anderen Feldtypen gibt es keine leere Zeichenkette. Bei numerischen Feldtypen wird eine leere Zeichenkette als 0 interpretiert. Beim Ausschließen leerer Zeichenketten würden in diesem Fall 0-Werte von den Berechnungen exkludiert.  
    • Beispiel 1: Eine Variable enthält Text wie Brand1, Brand2, Brand3. Es wird der Variablentyp String (varchar) mit einer Feldlänge = 6 erkannt.
    • Beispiel 2, Integers: Es gibt ausschließlich einstellige Ziffern in einer Spalte. Für diese Spalte wird der Variablentyp tinyint erkannt. Die Feldlänge wird auf 4 gesetzt (nicht auf 1). Das liegt daran, dass tinyint ein 1-Byte Integer ist. Es kann Werte zwischen 0 und 255 haben (d.h. eine maximale Feldlänge von 3) oder Werte zwischen -128 to 128 (d.h. eine maximale Feldlänge von 4). Tinyint setzt die Feldlänge automatisch auf 4, da tinyint(4) die gleiche Speicherkapazitäten benötigt wie tinyint(1) (1 Byte). Übrigens: MySQL wird zukünftig auf Feldlänge für Integers verzichten. Für Strings und Dezimalzahlen bleiben sie jedoch relevant. Weitere Informationen finden Sie hier und hier.