【发布时间】:2014-07-01 10:10:56
【问题描述】:
我想知道是否有人成功地将 GTFS 数据加载到 mySQL 数据库。我到处寻找一个好的教程,但我找不到任何有用的东西。
【问题讨论】:
-
我以前做过,但有些文件很大,需要命令行导入或 MySQL 大转储
我想知道是否有人成功地将 GTFS 数据加载到 mySQL 数据库。我到处寻找一个好的教程,但我找不到任何有用的东西。
【问题讨论】:
我成功将 GTFS 文件导入 MySQL。
CREATE DATABASE gtfs
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
例如,为stops.txt 创建表stops,
-- 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 (here) 上。根据您的目的进行一些细微的更改。
【讨论】:
你试过这个吗:
https://code.google.com/p/gtfsdb/
网站说:
GTFS(通用运输饲料规范)数据库
将 GTFS 数据加载到关系数据库中的 Python 代码,以及 Sql/Geo-Alchemy ORM 绑定到 gtfsdb 中的 GTFS 表。
gtfsdb 项目的重点是让 GTFS 数据在软件开发人员的编程环境中可用。对 gtfsdb 项目的需求来自这样一个事实,即许多开发人员通过首先构建一些代码来读取 GTFS 数据(无论是内存加载器、数据库加载器等)来开始与 GTFS 相关的工作。 ); gtfsdb 有望减少对此类繁琐工作的需求,并为开发人员提供一个超越处理 .csv 文件格式 GTFS 的第一步的起点。
【讨论】:
我实际上使用以下链接作为基础并将其转换为脚本,就像魅力一样工作
【讨论】:
就我而言,我首先创建了表结构。
然后在mysql命令控制台中通过以下命令加载数据
将数据本地 infile '/media/sf_Downloads/google_transit/stops.txt' 加载到以 ',' 结尾的表停止字段中,并由 '"' 括起来以 '\n' 结尾的行忽略 1 行;
这会将stops.txt 加载到停止表中。忽略 stops.txt 文件中的第一行(标题)。
'/media/...' 只是文件的路径,我在其中提取 gtfs 数据。
【讨论】:
我通过以下命令将 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
现在应该加载您的数据库
【讨论】:
您好,正在寻找类似的东西,但仍然没有一种简单的方法。我去试试GTFS to MySQl using Python
【讨论】:
根据Google Developers,GTFS 提要基本上是一个包含文本文件的 zip 文件。您应该能够使用 BLOB 类型字段将其存储在 MySQL 数据库中。但这不推荐。您应该将其作为文件存储在服务器磁盘上,然后将文件的名称/路径存储到数据库中的常规 text/varchar 字段中。
【讨论】: