2017-02-09 8 views
0

Ich habe eine 13gb .txt-Datei, die ich in MySQL importiere, aber ich möchte nicht alle Daten importieren. Zum Beispiel gibt es viele Spalten, die entweder komplett leer sind oder irrelevante Informationen enthalten - ich möchte nur ~ 100/360 importieren, die mir zur Verfügung gestellt wurden. Wenn ich nur Kopfzeilen für die gewünschten Spalten erstelle, kann ich die spezifischen entsprechenden Daten aus der .txt-Datei auswählen, die hochgeladen werden sollen?Kann ich Daten selektiv aus einer Textdatei in MySQL importieren?

Normalerweise würde ich einen Texteditor verwenden, um die überflüssigen Daten zu entfernen, aber ich besitze keinen Texteditor, der eine Datei dieser Größe verarbeiten kann.

+0

zeigen Sie ein Beispiel, welche Linien in Ordnung und welche nicht. dann können Sie es mit grep, awk oder sed filtern und importieren Sie direkt diese gefilterten Daten –

+1

Verweisen Sie die zweite Antwort des [thread] (http://stackoverflow.com/questions/4202564/how-to-insert-selected-columns- Von-a-CSV-Datei-zu-MySQL-Datenbank-Using-Load-DA) –

Antwort

0

Sie können bestimmte Spalten in der Eingabedatei ignorieren, indem Sie sie einer benutzerdefinierten Variablen anstelle einer Datenbankspalte zuweisen.

Zum Beispiel, wenn Sie eine CSV-Datei mit 4 Spalten haben und wollte nur die Spalten 1 und 4 in der Tabelle importieren Sie so etwas tun könnten:

die Größe des Eingangs es
load data infile '/tmp/so42140337.csv' 
into table so42140337 
fields terminated by ',' 
lines terminated by '\n' 
(c1,@dummy,@dummy,c2); 

angegebene Datei kann effizienter zu importieren, anstatt die gesamte Datei in einem Befehl zu importieren. Sie können dafür das Tool pt-fifo-split verwenden, das dem Muster in dieser blog post folgt.

Verwandte Themen