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