3

我想知道是否有人成功地将 GTFS 数据加载到 mySQL 数据库。我到处寻找一个好的教程,但我找不到任何有用的东西。

4

7 回答 7

2

我成功地将 GTFS 文件导入 MySQL。

第一步:创建数据库

CREATE DATABASE gtfs
    DEFAULT CHARACTER SET utf8
    DEFAULT COLLATE utf8_general_ci;

第 2 步:创建表

例如,stopsstops.txt

-- stop_id,stop_code,stop_name,stop_lat,stop_lon,location_type,parent_station,wheelchair_boarding
CREATE TABLE `stops` (
        stop_id VARCHAR(255) NOT NULL PRIMARY KEY,
    stop_code VARCHAR(255),
    stop_name VARCHAR(255),
    stop_lat DECIMAL(8,6),
    stop_lon DECIMAL(8,6),
    location_type INT(2),
    parent_station VARCHAR(255),
    wheelchair_boarding INT(2),
    stop_desc VARCHAR(255),
    zone_id VARCHAR(255)
);

第三步:加载本地数据

例如,将本地文件加载stops.txt到表中stops

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

带有示例的完整源代码放在 GitHub 上(此处)。为您的目的进行一些细微的更改。

于 2016-02-26T16:51:28.497 回答
0

你试过这个:

https://code.google.com/p/gtfsdb/

该网站说:

GTFS(通用运输饲料规范)数据库

将 GTFS 数据加载到关系数据库中的 Python 代码,以及 Sql/Geo-Alchemy ORM 绑定到 gtfsdb 中的 GTFS 表。

gtfsdb 项目的重点是使 GTFS 数据在软件开发人员的编程环境中可用。对 gtfsdb 项目的需求来自这样一个事实,即许多开发人员通过首先构建一些代码来读取 GTFS 数据(无论是内存加载器、数据库加载器等)来开始与 GTFS 相关的工作。 ); gtfsdb 有望减少对此类苦差事的需求,并在处理 .csv 文件格式的 GTFS 的第一步之外为开发人员提供一个起点。

于 2014-05-13T16:39:24.437 回答
0

我通过以下命令将 GTFS 数据加载到 SQLite 数据库中:

创建一个名为test.sqlite3的新 SQLite 数据库

sqlite3 test.sqlite3

将模式设置为 csv

sqlite> .mode csv

使用导入命令.import FILE TABLE将每个文件导入到相应的表中

sqlite> .import agency.txt agency
sqlite> .import calendar.txt calendar
...
sqlite> .import stops.txt stops

现在应该加载您的数据库

于 2015-02-09T02:32:26.770 回答
0

我实际上使用以下链接作为基础并将其转换为脚本,就像一个魅力

http://steffen.im/php-gtfs-to-mysql/

于 2014-05-13T17:30:02.320 回答
0

就我而言,我首先创建了表结构。

然后在mysql命令控制台中通过以下命令加载数据

将数据本地 infile '/media/sf_Downloads/google_transit/stops.txt' 加载到以 ',' 结尾的表停止字段中,由 '"' 括起来,以 '\n' 结尾的行忽略 1 行;

这会将stops.txt 加载到停止表中。忽略stops.txt 文件中的第一行(标题)。

'/media/...' 只是文件的路径,我在其中提取 gtfs 数据。

于 2014-11-19T21:07:46.517 回答
0

嗨寻找类似的东西,但仍然没有一个简单的方法来做到这一点。我将使用 Python 尝试 GTFS 到 MySQl

于 2015-08-11T19:27:59.717 回答
-1

根据Google Developers的说法,GTFS 提要基本上是一个包含文本文件的 zip 文件。您应该能够使用 BLOB 类型字段将其存储在 MySQL 数据库中。但这不推荐。您应该将其作为文件存储在服务器磁盘上,然后将文件的名称/路径存储到数据库中的常规 text/varchar 字段中。

于 2014-05-13T16:13:11.280 回答