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.

日本のオープンデータプラットフォームをPythonでつくる

16,946 views

Published on

アブストラクト
https://pycon.jp/2015/ja/schedule/presentation/53/

公演ビデオ
https://youtu.be/7SNVx3YzY5E?t=1166

Published in: Software
  • Be the first to comment

日本のオープンデータプラットフォームをPythonでつくる

  1. 1. 日本の オープンデータ プラットフォームを Pythonでつくる 2015-10-10 @PyConJP
  2. 2. 今日の内容 • 自己紹介 • 動機:日本の経済・社会統計の現状 • 問題解決:オープンデータプラットフォーム • 実現方法:プラットフォームの実装
  3. 3. 自己紹介 3
  4. 4. 自己紹介 • バクフー株式会社 代表取締役 柏野 雄太 (かしの ゆうた) • 大規模リアルタイムデータのデータプラットフォーム • PPPP preprocess /process /persistence /providing
  5. 5. 自己紹介 • 大規模リアルタイムのデータプラットフォーム リアルタイムデータ 処理 process ストア persistence API, 検索 ストリーミング API, 検索 可視化 通知 API, 検索 可視化 API, 検索 ストリーミング ES/S3 ES/S3 ES/S3 ES/Solr/ mongoDB 経済データ 異常値検知整形 混雑データ 分類変換 気象データ 分類/異常値検知変換 自然言語処理/センチメント解析整形twitter 前処理 preprocess 提供 providing
  6. 6. 自己紹介 • Zope3の開発 • Python • いくつかの本 • バックグラウンドは宇宙物理学 • 大規模データ統計解析,科学計算
  7. 7. 日本の経済・社会統計の現状 7
  8. 8. データのライフサイクル • データ収集から意思決定まで • データ収集から集計:マシンとしての行政機関 • 集計済みデータはオープンデータに
  9. 9. e-Stat
  10. 10. e-Stat: 検索…
  11. 11. e-Stat: ブラウズ…
  12. 12. e-Stat: Excelファイルサーバ…
  13. 13. 時系列…
  14. 14. 項目変更…
  15. 15. 機械可読でない…
  16. 16. e-Stat API
  17. 17. e-Stat API: コード
  18. 18. e-Stat API = RDBダンプ…
  19. 19. e-Stat: 重要統計が抜けている
  20. 20. 日本の経済・社会統計の現状 • 重要経済・社会統計はほぼオープンデータ • 各行政機関のデータの出し方は雑多 • Excel/PDFというクローズな公開形式 • 機械で読むのが困難なゴミにあふれている • APIがおかしい • 重要統計が一カ所にない
  21. 21. データプラットフォームが必要 21
  22. 22. データプラットフォーム • 多様な場所へデータを取得するロボット • Excel/PDFなどのオープンでないデータに対応 • データを時系列として首尾一貫した形式 • スケーラブルなデータストア • 容易なデータ探索・即可視化ができるインタ フェース • 正しいRESTで機械可読を容易に
  23. 23. デモ 23
  24. 24. 時系列データの可視化 • 属性選択で可視化 • グラフと数値テーブルの連動 • グラフの自在なズーム・パン • 単位の異なる・データソースの違うデータ
  25. 25. 日本の主要経済統計を網羅 • 17機関,31種類,細目で86個から103個 • 公表と同時に取得 • EXCELやPDFにも対応 • 経済統計以外にも
  26. 26. 根拠の確認ツール • メディア,研究者のコメント表示 • 根拠の確認ツールとしての役割
  27. 27. 長期間の時系列は重要 • 参照点から異常の程度を探ることができる • 経済・社会の秩序回復・ホメオタシスの感覚
  28. 28. どうやって実現するか
  29. 29. スケジューラー • Google Calendar + Tornadoサーバ
  30. 30. ロボットのタスク分散 • rqを使ってジョブキューでタスク分散
  31. 31. ロボットのスクレイピング • BeautifulSoup, lxmlによるスクレイピング
  32. 32. ExcelやPDFのパージング • python-excel, pypdf, pandas read_excel()
  33. 33. 首尾一貫した形式で整形 • 一旦Pandasのデータフレームに投入 • タテをヨコに,整形,単位・オーダ え
  34. 34. スケーラブルなデータストア • 要件:全文検索,スケーラブル,可用性 • Elasticsearch
  35. 35. RESTサーバ • Tornadoを利用した非同期サーバ
  36. 36. マイクロサービス構造 • まとまりごとに小さなサーバとして分離 • サーバプロセスはsupervisorで管理 • zmqを用いて非同期メッセージング • 負荷のかかるところは並列化
  37. 37. サービスオペレーション • Saltstack+Jenkinsを利用したデプロイ • 監視はZabbix
  38. 38. Pythonによるレバレッジ! supervisor
  39. 39. http://socio.bakfoo.com/ socio@bakfoo.com Closed Beta PyConJPの運営の皆様 有り難うございました

×