Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

582 views

Published on

2019年4月20日に開催された「標準的なバスフォーマット(GTFS-JP) 勉強会 #1」の技術セッションで発表した『「なんじゃこりゃぁ!」DB屋が見たGTFS-JP ファーストインプレッション』の発表資料です。

どうみても、5分の発表資料じゃなかった。。(大幅に時間オーバーしました。すいません)

Published in: Technology
  • Be the first to comment

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

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

×