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

39
日本の オープンデータ プラットフォームを Pythonでつくる 2015-10-10 @PyConJP

Upload: yuta-kashino

Post on 06-Jan-2017

15.246 views

Category:

Software


0 download

TRANSCRIPT

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

今日の内容

• 自己紹介

• 動機:日本の経済・社会統計の現状

• 問題解決:オープンデータプラットフォーム

• 実現方法:プラットフォームの実装

自己紹介

3

自己紹介• バクフー株式会社 代表取締役 柏野 雄太 (かしの ゆうた)

• 大規模リアルタイムデータのデータプラットフォーム

• PPPP preprocess /process /persistence /providing

自己紹介• 大規模リアルタイムのデータプラットフォーム

リアルタイムデータ 処理process

ストアpersistence

API, 検索ストリーミング

API, 検索可視化 通知

API, 検索可視化

API, 検索ストリーミング

ES/S3

ES/S3

ES/S3

ES/Solr/mongoDB

経済データ 異常値検知整形

混雑データ 分類変換

気象データ 分類/異常値検知変換

自然言語処理/センチメント解析整形twitter

前処理preprocess

提供providing

日本の経済・社会統計の現状

7

データのライフサイクル

• データ収集から意思決定まで

• データ収集から集計:マシンとしての行政機関

• 集計済みデータはオープンデータに

e-Stat

e-Stat: 検索…

e-Stat: ブラウズ…

e-Stat: Excelファイルサーバ…

時系列…

項目変更…

機械可読でない…

e-Stat API

e-Stat API: 謎コード

e-Stat API = RDBダンプ…

e-Stat: 重要統計が抜けている

日本の経済・社会統計の現状

• 重要経済・社会統計はほぼオープンデータ

• 各行政機関のデータの出し方は雑多

• Excel/PDFというクローズな公開形式

• 機械で読むのが困難なゴミにあふれている

• APIがおかしい

• 重要統計が一カ所にない

データプラットフォームが必要

21

データプラットフォーム• 多様な場所へデータを取得するロボット

• Excel/PDFなどのオープンでないデータに対応

• データを時系列として首尾一貫した形式

• スケーラブルなデータストア

• 容易なデータ探索・即可視化ができるインタフェース

• 正しいRESTで機械可読を容易に

デモ

23

時系列データの可視化

• 属性選択で可視化

• グラフと数値テーブルの連動

• グラフの自在なズーム・パン

• 単位の異なる・データソースの違うデータ

日本の主要経済統計を網羅

• 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/[email protected]

Closed Beta

PyConJPの運営の皆様 有り難うございました