現在位置: ホーム / ビッグデータ ブログ / AccessVBAでTreasureDataのREST APIを利用してデータを取り込む

AccessVBAでTreasureDataのREST APIを利用してデータを取り込む

Treasure DataのREST APIを利用して、Accessのテーブルにデータを取り込みます。

はじめに

こんにちは、大村です。Qiitaでは、毎年12月になるとテーマ毎に毎日記事を投稿していくAdvent Calendarというイベントがあります。今回のブログ記事は、Treasure Data Advent Calendar 2014の12月16日の記事としてTreasure Dataが提供しているREST APIを利用して、データをAccessに取り込む方法を紹介いたします。

VBAとは

VBAとはVisual Basic for Applicationsの略でマイクロソフト社製のOffice製品に搭載されているプログラミング言語です。利用ユーザー自身でOffice製品に独自の機能を追加することができます。Accessから利用するには[作成]リボンの[標準モジュール]を選択ください。

リボン

 Treasure Data REST API

データを取り込むために利用するREST APIはTreasure Dataに用意されています。利用方法は下記リンクをご参照下さい。

Treasure Data REST API

 

前準備

テーブルの作成

今回、Treasure Dataにアカウントを作成するとサンプルとして存在するsample_datasetsデータベースのwww_accessテーブルのデータを取得しますので、それに対応したwww_accessテーブルを事前に作成します。

テーブル

ライブラリの参照

AccessのVBA開発画面の側で、利用するADODBのライブラリの参照設定を行います。ツールメニューの[参照設定]を選択し、Microsoft ActiveX Data Object X.X Libraryを選択します。バージョンは最新版でよいと思います。

参照設定-1

参照設定-2

コーディング

ここまでできたら、標準モジュールにVBAのコードを記述します。

 Treasure Dataとの通信にはXMLHTTPを利用します。まずはqueryを実行します。

    Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
    With xmlhttp
        .Open "POST", "http://api.treasuredata.com/v3/job/issue/hive/<Database Name>", False
        .setRequestHeader "AUTHORIZATION", "TD1 <YOUR TD APIKEY>"
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .send "&query=select time,user,host,path,referer,code,agent,size,method from www_access limit 100"
    End With

 その後、ステータスを監視し、successになったら、値を取得し、Accessのテーブルに書き込みます。

今回はtsv形式で取り込んでいますが、好きな形式で構いません。

.Open "GET",  "http://api.treasuredata.com/v3/job/result/" & jobId & "?format=tsv", False

サンプルソースの全体は下記にあります。

 参照:gist.github.com

 

確認

www_accessテーブルを開いていただけると、Treasure Data内のデータがAccessのwww_accessテーブルに書き込まれていることが確認できます。

 

まとめ

Windowsユーザには敷居が高いと思われるかもしれないビッグデータ分析ですが、Officeに最初から含まれているAccessを利用すると、高額なツールを購入することなく簡単ならSQLを利用してデータの分析を行うことができます。内部にフォームなども作れますので、お気軽に毎日たまったデータの分析を特別な設定をネットワークに施すことなく行えるのではないでしょうか。AccessからExcelへの変換なども簡単ですので、Excelを利用し、グラフを作成し可視化もできます。スタート時になるべく経費をかけたくない場合などにとりあえずAccessやExcelで分析を行い、その後、有用性が確認できましたら、TableauなどのBIツールをご購入いただき、より高度な分析を行っていく足がかりにしていただければ幸いです。

タグ: