【问题标题】:How can I import GTFS files into MySQL?如何将 GTFS 文件导入 MySQL?
【发布时间】:2015-09-01 07:39:42
【问题描述】:

GTFS 是公共交通时刻表的常用格式。

通用运输饲料规范 (GTFS) 定义了一种通用格式 公共交通时刻表和相关的地理 信息。 GTFS“提要”允许公共交通机构发布 他们的交通数据和开发人员编写消费应用程序 以可互操作的方式获取这些数据。

现在,我有一个 GTFS 格式的跟踪,包括几个 .txt 文件(表)。 如何将其导入 MySQL?

【问题讨论】:

  • 来自 GTFS 的 afaik 数据发出几个 csv 文件,可以使用 LOAD DATA INFILE FIELDS SEPARATED BY ',' SKIP FIRST 1 ROW 进一步导入 mysql
  • @Satya 如何分配特定的数据库? (我在我的机器上创建了几个数据库)
  • 使用LOAD DATA INFILE <file> INTO TABLE <table> FIELDS <field-list> TERMINATED BY ',' IGNORE 1 LINES,或类似的东西。 dev.mysql.com/doc/refman/5.1/en/load-data.html
  • 另外,我认为您混淆了“数据库”和“表”;从技术上讲,有数据库,其中包含模式,其中包含由列和其他组织实体组成的表,其中包含数据行。
  • 好的,所以对于每个文件,LOAD DATA INFILE <file-for-table-x> INTO TABLE `gtfs`.<table-x> FIELDS <field-list> TERMINATED BY ',' IGNORE 1 LINES,适当地替换 。要么提前打电话给use `gtfs`;,然后忽略`gtfs`.部分。

标签: mysql sql gtfs


【解决方案1】:

@Shotgun Ninja@Satya 的帮助下,我成功了。这就是我所做的。

cat load.sql | mysql -p -u root 

load.sql 基于github/sbma44/py-gtfs-mysqlhere。主要代码如下:

CREATE DATABASE IF NOT EXISTS gtfs;
USE gtfs

DROP TABLE IF EXISTS agency;
-- agency_id,agency_name,agency_url,agency_timezone,agency_phone,agency_lang
CREATE TABLE `agency` (
    agency_id INT(20) PRIMARY KEY,
    agency_name VARCHAR(255),
    agency_url VARCHAR(255),
    agency_timezone VARCHAR(50),
    agency_phone VARCHAR(255),
    agency_lang VARCHAR(50)
);

LOAD DATA LOCAL INFILE 'agency.txt' INTO TABLE agency FIELDS TERMINATED BY ',' IGNORE 1 LINES;

我在 GitHub 上分享它:tisseo_toulouse_gtfs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 2019-03-30
    • 2011-04-07
    • 2012-06-20
    相关资源
    最近更新 更多