【问题标题】:mySQL - Load GTFS DatamySQL - 加载 GTFS 数据
【发布时间】:2014-07-01 10:10:56
【问题描述】:

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

【问题讨论】:

  • 我以前做过,但有些文件很大,需要命令行导入或 MySQL 大转储

标签: php mysql gtfs


【解决方案1】:

我成功将 GTFS 文件导入 MySQL。

第 1 步:创建数据库

CREATE DATABASE gtfs
    DEFAULT CHARACTER SET utf8
    DEFAULT COLLATE utf8_general_ci;

第 2 步:创建表

例如,为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)
);

第 3 步:加载本地数据

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

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

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

【讨论】:

    【解决方案2】:

    你试过这个吗:

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

    网站说:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

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

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

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

        【讨论】:

          【解决方案5】:

          我通过以下命令将 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
          

          现在应该加载您的数据库

          【讨论】:

            【解决方案6】:

            您好,正在寻找类似的东西,但仍然没有一种简单的方法。我去试试GTFS to MySQl using Python

            【讨论】:

              【解决方案7】:

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

              【讨论】:

                猜你喜欢
                • 2014-02-03
                • 2011-01-28
                • 2017-03-27
                • 1970-01-01
                • 2011-06-11
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多