Paxataブログ

Paxataブログ>REST APIでオープンデータの取得と更新を自動化!

  • つなげて使う
2019.10.29

REST APIでオープンデータの取得と更新を自動化!

みなさん、こんにちは。
株式会社アシストでPaxataを担当している山口です。

オープンデータの活用が注目されていますね。皆様の部門でも、オープンデータをビジネスにどう活かせるのか、議論や試行錯誤が始まっているのではないでしょうか?

オープンデータは広く公開されアクセスしやすいデータですが、そのデータを継続的に使っていくためには、入手方法と加工、更新方法に工夫が必要とされます。

今回の記事では、オープンデータをREST API経由で取得して、そのまま加工整形し、かつその作業を自動化する方法をご紹介します。一連の流れは、データ・プレパレーション製品の「Paxata(パクサタ)」を使用していきます。


多数のオープンデータが公開!代表的なサイトはこちら


政府、自治体や一部の企業では、保有しているデータをWebサイトよりダウンロードできるように公開されているケースが多数あります。

代表的な例を挙げてみます。

内閣官房情報通信技術(IT)総合戦略室による企画・立案のもと、総務省行政管理局が運用するオープンデータに係る情報ポータルサイトです。多数の省庁のデータが公開されています。

各府省等が実施している統計調査の各種情報をワンストップで提供するサービス。過去複数年の国勢調査などの各種統計情報が取得可能です。

気象庁のWebサイト。1976年以降の日別の気象データの検索、ダウンロードが可能です。


オープンデータを手作業でダウンロードする(これまでの方法)


オープンデータをWebサイトから手動でダウンロードする場合、手軽にデータの取得ができる反面、以下の課題があります。

  • 定期的なデータの取得が必要
    統計情報が月次や日次で更新されている場合、最新の情報を取得するには定期的に
    データの取得を行う必要があります。
  • データの加工、統合が必要
    オープンデータはクロス集計のフォーマットでデータが公開されていたり、特定のキー項目で絞り込み条件が設定され個別にダウンロードされた結果となっているケースがあります。
    この場合、新しいデータが発生するたびにデータの変換、整形を行う必要があります。

例:e-Statから労働力調査のデータをダウンロードする場合
e-Statで公開されている労働者人口の推移を調べるために、「労働力調査(就業状態別15歳以上人口(2000年1月~))」のデータを対象にどのような手順が必要になるのか見ていきましょう。

今回対象とするデータは、下記の画面のように、ファイル形式でのダウンロードが提供されていません。そのためWebサイトからダウンロードするか、REST APIを使用してダウンロードするかのどちらかになります。

データセット情報

「DB」を選択すると、ダウンロードページが表示されます。

統計表グラフ表示

「ダウンロード」ボタンをクリックすると、ダウンロードされるデータのオプション(ファイル形式、ヘッダや注釈の有無など)を指定することができます。ダウンロードされるデータは以下のようになります。

DLされるデータ

このデータの中で、性別に注目してみましょう。

性別に関連する項目は、「総数」「男」「女」で列が分かれているため、たとえば「性別」という新しい列を用意することで男女で絞り込みが可能になります。しかし、そのデータを作るためには、現在のようなクロス集計形式のデータからテーブル形式への変換処理が必要となり、データにひと手間加えなければなりません。

このようにオープンデータを分析に利用するには、事前の加工の作業が発生します。しかも、加工作業は1回実施すればよいということではなく、新たなデータが発生するたびに繰り返し実施しなくてはいけません。毎月新しいデータが公開される場合には、データが追加されるたびに毎月ダウンロードの操作を実施する必要があります。


オープンデータをREST APIでダウンロードする(Paxataの方法)


そこで便利な方法が、もうひとつのREST APIを使った方法です。

REST APIの形式で公開されているデータは、直接Webサイトからデータを取得することが可能です。

ここからは、REST APIでデータを取得し、そのままPaxataで加工する方法をご紹介していきます。データの取得から整形、加工までを自動化できるので、定期的な集計や分析、統計をされている方にはとても便利な方法です。

REST APIでデータを取得するための準備

1.まずは取得先側での事前準備

上の例でも取り上げたe-Statの労働力調査のデータをサンプルに、PaxataからREST APIで取得する手順をご紹介します。

e-StatからREST API経由でデータを取得する場合には、事前にユーザ登録した上で、マイページよりアプリケーションIDを取得しておく必要があります。

e-Statでのユーザ登録、アプリケーションIDの取得に関する詳細は、e-Statサイト内のヘルプをご参照ください。

2.リクエストするURLを確認

REST API経由でデータを取得するためのURLを取得します。e-Statでは、「API」のアイコンがあるデータをREST API経由で取得できます。

データセット一覧

「API」ボタンをクリックすると、該当のデータを取得するのに必要なURLが表示されます。

データセット一覧2

「クエリー」内に表示されたURLの「appId=」にマイページで取得したアプリケーションIDを記述します。

3.コネクターの作成

Paxataで外部のデータソースからデータの取得を行う場合には、最初に「コネクター」を作成する必要があります。コネクターの作成は、管理者権限を持ったユーザでのみ実施が可能です。

管理者でのREST API用コネクター作成画面です。管理者側では、「コネクタータイプ」に「REST API」を選択し、「Proxy Configuration」で共通設定をしていきます。

  • Paxataのバージョンは、2018.2を使用しています。

REST APIでの接続設定は「データソース」側で指定しますので、今回はすべて空白にします。

作成したコネクターについて、利用可能なユーザーのグループを選択し、読み取り権限を付与します。

4.データソースの作成

コネクターが作成されたら、コネクターを使用して元データへアクセスする「データソース」を作成します。データソースの作成はライブラリから行います。

データソース1

REST API Configurationにデータの取得先のサービスのURLと引数となるパラメータを入力します。

今回のe-Statの場合、「http://api.e-stat.go.jp/rest」までがBASE URL、それ以降がRESOURCESとなります。RESOURCEではURLの残りの先頭に「表示名:」をつけることで、テーブル名として認識がされます。今回は「労働力調査1-1-1:」を使用しています。

データソース2

※e-Statの統計データはバージョン2.1のAPI仕様よりXML、JSON、CSVでデータの取得が可能です。今回はCSVでデータの取得を実施します。

5.データセットのインポート

データソースを作成したら、いよいよデータソースからデータセットをインポートします。データセットの追加から、作成したデータセットを選択します。

データセット選択1

選択されたデータセットのプレビュー画面が表示されます。今回のREST APIで指定したURLでは、CSVデータにヘッダ情報を含む形式としていました。データの中身をプレビューで確認し、Paxata側で取得が不要な行を削除していきます。

データセット選択2

「ヘッダーの前の行を破棄する」を使用し、27行目までを破棄する指定を行いました。

データセット選択3

不要なカラムを削除する設定も追加します。「カラムの編集」ボタンから、使用しないカラムのチェックを外します。

データセット選択4

編集後のデータをプレビューで確認し、「終了」ボタンをクリックしてデータセットをインポートします。

データセット選択5

データのインポートが実施され、データセットが作成されます。

データセット

ここまで、データの取得から加工までの手順をご紹介してきましたが、この手順はPaxataでそのまま記録し、以降の処理を自動化することができます。

下記の画面のように、このデータセットに対してスケジュールを設定し、e-Stat側でデータが更新されるタイミングを指定して自動化の設定をすることで、Paxata側でデータの更新を定期的に実施し、データを最新の状態に保てるようになります。

データセット

データセット

※自動化の機能を利用するにはAutomationのロールが割り当てられている必要があります。


まとめ


いかがでしたでしょうか。

インポート時の設定で加工しきれないデータレイアウトの場合は、プロジェクトを作成し、REST API経由で取得したデータを加工する処理を追加することも可能です。また、インポートされたデータを任意のデータソースに対してエクスポートすることで、別のシステムでも活用することが可能になります。


今回はオープンデータを対象に、PaxataからREST APIを使ったデータのインポートをご紹介しましたが、REST API経由でデータの取得が可能なサービスは他にもたくさん存在しています。

今回の例で取り上げたe-Statもそうですが、データを提供するサービス側でAPIで指定されるパラメータのルールが公開されています。データの取得時にどのような設計がされているのか確認する必要がありますが、定期的な手動でのデータのダウンロードや加工が不要になることを考えると、トライしてみる価値がある操作だと思います!

  • REST APIを使用したデータの取得はPaxataのサブスクリプションライセンスでのみ利用可能な機能です。「Paxata Cloud Powered By アシスト」を利用されているお客様は利用することができませんのでご了承ください。

この記事をかいた人

BI製品のサポート、フィールドエンジニアを経てPaxataのフィールドエンジニアを担当。

山口さん

関連している記事

  • つなげて使う
2019.09.27

DataRobotの予測に欠かせない「データ準備」の進め方

今回の記事では、DataRobotでの予測モデル生成に欠かせない「事前のデータ準備」をテーマにお届けします。データサイエンティストでなくても、ビジネス部門で機械学習用のデータを簡単に作成する方法があります。

  • つなげて使う
2019.08.01

Tableauをもっと活用するためのデータプレップ

Tableauでのデータ分析に欠かせないのが、分析をスタートする前のデータ準備、つまり「データプレップ」です。もっと早く、もっと簡単にTableauの分析データを準備する方法についてご紹介します。

Paxata

ページの先頭へ戻る