狠狠撸

狠狠撸Share a Scribd company logo
DB屋が見たGTFS-JP
ファーストインプレッション
「なんじゃこりゃぁ!」
GTFS勉強会 #1
2019/04/20
(有)アートライ
坂井 恵 (蔼蝉补办补颈办)
はじめに(おことわり)
本セッションでは、GTFSのデータフォー
マットについて、講演者が感じた事柄を率
直にお話しますが、これにはGTFS自体の
価値を毀損する意図を含んでおりません。
講演者はGTFSに対して敬意と愛情を以て
接しており、将来的な期待とともに、広く
GTFSのデータフォーマットに対する理解
が浸透することを願って本講演を行ってお
ります。
自己紹介
? 坂井 恵(さかいけい) @sakaik
? 有限会社アートライ 代表取締役
? since 1998
? いわゆる「ひとり会社ごっこ」
? 業務分析や問題解決に強み
? その根幹にあるのが「データ構造」への理解
? 日本MySQLユーザ会 副代表
? いわゆるオープンソースのボランティア活動
? データベース大好き
?GTFSについて
? この分野は素人ですが???(本当)(本当に本当)
自己紹介 (インタビューなど)
https://employment.en-japan.com/engineerhub/entry/2018/06/22/110000
自己紹介(私のスタンス)
動いているものは、えらい!
いくら、
「ここはこうしたほうが???」とか
「この部分がイケてないんだよね」とか
外野が言ったところで、
実際に目の前で動くものを提供している人が、
いちばんえらいです!
※画像はイメージ
GTFS-JP データフォーマット
注:上記引用したデータフォーマットは「初版」のものです。
ZIPファイル
このGTFS-JPファイル群
どうやって作る?
専用ツールに
手入力
変換
ツール
RDBMS
テキス
トファ
イル
GTFS
ファイ
ル群
GTFS
ファイ
ル群
GTFS
ファイ
ル群
GTFS
ファイ
ル群
Excel
ファイル
抽出?加工
ZIPファイル
このGTFS-JPファイル群
どうやって作る?
専用ツールに
手入力
変換
ツール
RDBMS
テキス
トファ
イル
GTFS
ファイ
ル群
GTFS
ファイ
ル群
GTFS
ファイ
ル群
GTFS
ファイ
ル群
Excel
ファイル
抽出?加工
GTFS-JPフォーマットをそ
のままRDBMSに格納する?
? たぶん、そうじゃないほうが良い
? GTFSは「データ受け渡し用フォーマット」
? データを「安全に格纳する」考え方とは异なる
DB屋が見たGTFS-JP
ファーストインプレッション
とか 難しいタテマエは置いといて
事故発生!!!
資料作成途中に、いつの間にか、参照していた手元
の「標準的なバスフォーマット仕様書」が、
2版から 初版に入れ替わってしまっていました。
昨晩(深夜)に気づき、なるべくリカバリにつとめま
したが、参照先が混乱しているもの、2版では変更
されているものがあるかもしれません。
ご了承ください。
(1)経路は時刻とともに?
まず バス停の集合があり、
そのバス停をつないだ路線があり、
その路線に時刻が乗っかる
????かと思っていたら!!→
(1)経路は時刻とともに?
? 時刻情報がないと、バス停の停車順序を記述できない!!
? これって『「大学の先生」「授業科目」が定義されているけど実
際の受講生が現れないと、どの先生がなんの授業をやるかを表せ
ない』という事例(悪い例として使われる)に似ている!
(1)経路は時刻とともに?
? 時刻情報がないと、バス停の停車順序を記述できない!!
? これって『「大学の先生」「授業科目」が定義されているけど実
際の受講生が現れないと、どの先生がなんの授業をやるかを表せ
ない』という事例(悪い例として使われる)に似ている!
結構
カルチャー
ショック!
(2)標柱とバス停
合わせて「団地前」
合わせて「○○駅」
(2)標柱とバス停
? まさか、同じテーブルに押し込むなんて???
←ここで見分ける(0が標柱)
stop_idにより外部から参照さ
れる際に「location_type=0の
ものしか参照してはならな
い」みたいなルールが発生し
ている。おかしい。
(3)道順(経路)のキーが…
? キー(★印)とは、ユニークキー(PK)のこと
なのですが????
shape_id と sequence の複合キー
とするのが、たぶん正しい。
ひとつの shape_id について、sequence
順にバス停を示しているものなので、
shape_id ではユニークにならない。
これは、仕様書が間違っている状態(複合キーとすべき)であること
が公知(?)であると、発表中に教えていただきました!
(4)IDが文字列複合ID
? 1031_10_01 とか、イヤ!!!
? 複数のカラムの値を組み合わせることでユニー
クにする方向でひとつ。(1カラムにまとめる
必要はない)
※講演時間がたりないので、主張のみ
その他 気づいた誤植など(1)
P. 29
P. 29
「初版」
の内容
(第2版では、このサンプル
データの記述全体が廃止され
てしまいました。少し残念)
その他 気づいた誤植など(2)
P. 25
正しくは60番
「初版」
の内容
その他 気づいた課題
? 位置情報について、測地系を明示する項目がない!?
? 測地系がないとはどういうことかというと???
? 「80度の液体」熱い?ぬるい?
? →摂氏なら結構熱いし、華氏なら結構ぬるい
? 現在の日本で主に使われている JGD2011 なら、
米国(Googleなども)で使われている WGS84 と
実用レベルで、ほぼ差はない
? 2001年まで日本で使われていた Tokyo測地系だと、
かなり違います
GTFS-JPには書かれていないが、本家GTFSのほうには「WGS84」と明記され
ている事を、発表中に教えていただきました!(固定なんですね)
JPの仕様書にも明記してほしいところです。
Tokyo測地系での東経135度↑ ↑JGD2011での東経135度
Tokyo測地系と
JGD2011
こんなに違う
(地理院地図)
まとめと補足
? DB屋目線で、GPFSフォーマットは、ツッコミどころ
満載で楽しい
? たぶん、サンプルデータとおいしいお酒とともに、語
り明かせそう
? GTFSは、転送用フォーマットなので、データを受け
取って利用する側に使いやすいことを考えているのか
なとも思うので、これ自体が悪いとは思わない
? 格納フォーマットは、実際に今、どんなデータを持っ
ているか(=データ発生源)によって変化します。今
日の話は、白紙ベースでの思考実験として参考にな
さってください
今回聞かせていただいた発表の中にも、GTFSのフォーマットのままテーブルを作って
いるという事例がありましたが、それは、手持ちのデータ(入力データ)がその形式で
用意されており、特に大きな加工もなく、そのままの形で出力に供したいという話なの
で、そのケースでは最適な判断だと思っています。
ありがとうございました
DB屋が見たGTFS-JP
ファーストインプレッション
「なんじゃこりゃぁ!」
2019/04/20
(有)アートライ
坂井 恵 (蔼蝉补办补颈办)

More Related Content

GTFS勉強会#1 DB屋が見たGTFS-JP ファースト?インプレッション