2016-06-29 13 views
-1

Ich habe eine CSV mit mehreren Millionen Zeilen-Datei:Import bestimmte Spalten von CSV mit Google Cloud SQL

origin,destination,commute_time 
A,B,123 
C,D,234 
... 

Ich möchte diese in eine Tabelle laden in Google Cloud SQL die wie folgt aussieht:

CREATE TABLE commutes(
    id INT NOT NULL AUTO_INCREMENT, 
    origin VARCHAR(20), 
    destination VARCHAR(20), 
    time INT, 
    distance FLOAT, 
    PRIMARY KEY(id) 
); 

Cloud SQL verfügt über eine CSV-Import-Funktion:

Cloud SQL CSV Import

Unfortu Dies setzt voraus, dass die CSV-Datei keine Kopfzeile hat (sie interpretiert die Kopfzeile als Daten). Außerdem wird davon ausgegangen, dass die CSV-Datei jede Spalte vom ersten bis zum letzten enthält. Die Spalte origin in der CSV-Datei wird daher als Spalte id in der Tabelle interpretiert.

Wie kann ich meine Daten in diese Tabelle importieren? Ich verwende Cloud SQL v2 Beta. Cloud SQL v1 hatte eine import API, mit der Sie eine Liste von Spalten angeben können, aber v2 hat noch keine API.

+0

Bin ich falsch, aber Sie stellen Ihre Frage und 1 Sekunde nach der Antwort? – Destrif

+0

[Es ist in Ordnung, Ihre eigenen Fragen zu stellen und zu beantworten] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/). – danvk

+0

Ja, aber keine Sekunde nach ... Ansonsten nimmt sich der Entwickler Zeit, um den ganzen Beitrag zu lesen, um eine Lösung zu finden. poste es woanders, wenn du eine Internetspur davon behalten willst. Lass andere Entwickler keine Zeit verlieren. Schreib es in die Kopfzeile [Beantwortet], Danke – Destrif

Antwort

-1

Der Trick besteht darin, die Spalten in Ihrer Tabelle neu anzuordnen, damit sie mit denen in der CSV übereinstimmen. Insbesondere möchten Sie Spalten wie id (die in Ihrer CSV fehlen) hinter die Spalten setzen, die vorhanden sind.

So sollte die Tabelle wie folgt aussehen:

CREATE TABLE commutes(
    origin VARCHAR(20), 
    destination VARCHAR(20), 
    time INT, 
    distance FLOAT, 
    id INT NOT NULL AUTO_INCREMENT, 
    PRIMARY KEY(id) 
); 

und die CSV sollte folgendermaßen aussehen:

A,B,123 
C,D,234 
... 

Die Cloud SQL V2 Quickstart seine Beispiel id Spalte in der letzten Position versetzt, so dass ich nehme an, dies ist ein Standardverfahren.