使用Google Cloud SQL从CSV导入特定列

时间:2016-06-29 14:27:30

标签: google-cloud-datastore

我有一个包含数百万行的CSV文件:

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

我想将其加载到Google Cloud SQL中的表格中,如下所示:

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

Cloud SQL具有CSV导入功能:

Cloud SQL CSV Import

不幸的是,这假设CSV文件没有标题行(它将标题行解释为数据)。它还假定CSV文件包含从头到尾的每一列。因此,CSV文件中的origin列被解释为表格中的id列。

如何将数据导入此表?我正在使用Cloud SQL v2 beta。 Cloud SQL v1有import API,可以指定列列表,但v2还没有API。

1 个答案:

答案 0 :(得分:-1)

诀窍是重新排序表格中的列以匹配CSV中的列。特别是,您希望在存在的列之后放置id(CSV中缺少的)列。

所以表格应该如下:

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

并且CSV应如下所示:

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

Cloud SQL V2 Quickstart将其示例id列放在最后一个位置,因此我认为这是标准做法。