我有一个包含数百万行的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导入功能:
不幸的是,这假设CSV文件没有标题行(它将标题行解释为数据)。它还假定CSV文件包含从头到尾的每一列。因此,CSV文件中的origin
列被解释为表格中的id
列。
如何将数据导入此表?我正在使用Cloud SQL v2 beta。 Cloud SQL v1有import API,可以指定列列表,但v2还没有API。
答案 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
列放在最后一个位置,因此我认为这是标准做法。