概要

Boxは、Googleが提供するGoogleドライブ、Microsoftが提供するOneDriveなどと同じクラウドストレージサービスです。Googlドライブ、OneDriveなどは各サービスのアカウントが必要であったり、ストレージ容量の制限があるなどの理由でBoxをメインのクラウドストレージとして利用している企業もあるのではないでしょうか。

Boxは単なるファイルの置き場としての機能の他に、クラウド上で動作するデータベースとしても使えます。ですがBox上のデータを基に分析するには別途DWH(データウェアハウス)とのデータパイプラインを構築し、BIツールと連携させるというデータ分析基盤の構築が必要になり、エンジニア以外の人にはハードルが高いです。

そこで今回は、trocco®というデータ分析基盤構築サービスを使い、Boxのデータ抽出、DWH(今回はGoogle BigQueryを利用します。)へのデータ統合自動化、Looker Studio(旧:Googleデータポータル)というBIツールを用いた可視化を行います。
なお今回データの転送手段として採用したtrocco®はBoxの他にも、様々な広告・CRM・DBなどのデータソースにも対応しています。

BoxのデータをGoogle BigQueryへ転送

ゴール

下のようなBoxのデータをGoogle BigQueryへ統合し、

boxデータ.png

Looker Studioで可視化します(作成後は自動で最新値に更新することも可能です)

データ可視化.png

こんな人におすすめ

・BoxのデータをGoogle BigQueryに自動的に蓄積させたい
・Boxのデータをうまく活用して分析をしたいが、データの転送作業に苦戦している
・さまざまなデータの分析に時間の浪費を感じている

1. trocco®でBox → Google BigQueryの転送自動化

1-0. 事前準備

データの転送のためにはtrocco®のアカウント、Google BigQueryを利用するためのGoogleアカウントが必要です。

trocco®は無料トライアルを実施しているので、事前に申し込みをしておきましょう。
https://trocco.io/lp/inquiry_free.html

1-1. 転送元・転送先を決定

trocco®にアクセスして、ダッシュボードから「転送設定を作成」のボタンを押します。

ダッシュボード.png

転送元に「Box」を指定し、転送先に「Google BigQuery」を選択して転送設定作成ボタンを押します。

boxbigquery選択.png

設定画面になるので、必要な情報を入力していきます。

1-2. Boxとの連携設定

あとで見たときに自分で分かるように転送設定の名前とメモを入力します。

①概要設定.png

次に「転送元Boxの設定」内の「接続情報を追加」ボタンを押します。

box設定.png

別のタブでBoxの接続情報の新規作成画面が開きます。
接続情報を作成するためにJSONファイルを取得する必要があります。

box接続情報.png

JSONファイルの取得方法は以下の通りです。
https://trocco.zendesk.com/hc/ja/articles/900004862986

  1. Boxの開発者コンソールにログインし、マイアプリより「アプリの新規作成」を押してください。
  2. カスタムアプリを作成してください。また、このとき「サーバ認証による認証」を選択してください。
  3. カスタムアプリ作成後に「構成」タブに移動し「公開キーの追加と管理」より「公開キー」を追加してください。
  4. 取得したJSONファイルを「カスタムアプリ設定ファイル」に登録してください。

問題がなければ保存します。再度転送設定画面に戻り、接続情報の「接続情報を読み込む」ボタンを押すと、先ほど作成した接続情報が選択できるようになります。

sample追加.png

1-3. Boxからのデータ取得設定

次に、取得するデータの指定を行います。

  • フォルダーID
    • Boxの管理画面より該当のフォルダーに遷移し、URLからフォルダーIDを取得してください。
  • パスプレフィックス
    • 取得対象のファイル名のパスプレフィックスを指定してください。(現状のバージョンでは第1階層のファイルデータのみ取得可能です)
  • 入力ファイル形式
    • 入力ファイル形式を指定してください。
box情報追加.png

1-4. 転送先Google BigQueryの設定

転送元と同様に設定していきます。Google BigQueryに関してはGoogleアカウントとの連携が必要です。(事前に転送先となるデータセットとテーブルを作成しておいてください。)

Googleアカウント連携.png
BigQuery接続情報作成.png

転送先とするデータセット名、テーブルを設定します。

bigquery接続情報.png

これで入力は完了です。接続状況を確認し、問題がなければ、「次のステップへ」をクリックし確認作業に進みましょう。

1-5. データのプレビュー

BOXからどのようにデータが取得できるかプレビューで確認することができます。取得したいデータがプレビューに表示されていなければ再度設定画面に戻って転送設定をやり直します。

スキーマプレビュー.png

またここでは転送と同時のデータ加工の設定が出来ます。Google BigQueryの命名規則に合わせてカラム名の変更を行います。Google BigQueryではカラム名に”.”を使うことができないので、sepal.length, sepal.width, petal.length, petal.widthの”.”を”_”に変更します。

カラム名変更.png

カラム名の変更を行ったら「変更をプレビュー」を選択します。

変更の確認.png

カラム名の変更を確認できたので、設定を完了します。
転送設定の一覧から作成した設定を選び「スケジュール・通知設定」に進みます。

1-6. スケジュール・通知設定

「スケジュール・トリガー設定」タブを開きます。

スケジュール.png

「スケジュールを追加」ボタンを押すと、以下のようなモーダルが出てきます。ここで実行スケジュールを設定することで、転送を定期的に実行し自動化することができます。

時間設定.png

1-7. データ転送ジョブの実行

設定は以上です。最後に、手動で転送ジョブを実行し、Google BigQueryにデータを送ります。
手動で実行する場合はジョブ詳細画面の「実行」ボタンを押します。

実行.png

これで転送は完了です。

2. Google BigQueryの設定

Google BigQuery側で特に操作することはありません。念の為Google BigQueryのコンソール画面からプレビューを確認すると確かにデータが転送されています。

bigqeury転送確認.png

転送されていることが確認できました。

3. Looker Studio(Googleデータポータル)で可視化

最後にこれらのデータをLooker Studioで可視化していきます。

まずはGoogle BigQueryとLooker Studioの接続設定を行います。
Looker Studioを開いて、新規のレポートを作成します。

Qiitaテスト.png

「データを追加」のボタンを押し、データ元の選択肢からGoogle BigQueryを選択します。

BigQuery選択.png

転送に使用したプロジェクト、データセット、表(テーブル)を選択し、追加します。

データ表化.png

データベースに接続できたら、使用可能な項目を利用し、必要な情報を表示させることができます。
今回はそれぞれのデータがどのように分布をしているかを知りたいので散布図を用いることにします。

転送.png

「グラフ>散布図」を選択した際に、ディメンション、指標X、指標Yを項目から選択する必要があります。
ディメンションは散布図にプロットするデータを選択することができ、指標X、指標Yは散布図においてそれぞれ、横軸、縦軸に該当します。
まず、ディメンションにpetal_length、指標Xにpetal_length、指標Yにpetal_widthを選択します。

項目指定.png

同様に指標を入れ変えて五つの散布図を加え、レイアウトを調整して完成です。

データ可視化.png

まとめ

いかがでしたでしょうか。trocco®を使うと、BoxのデータをノーコーディングでGoogle BigQueryに統合、連携するLooker Studioでデータの可視化を行うことが出来ました。また100万規模の大きなデータからそうではない小さなデータまで複雑なコーディングをせずtroccoの画面上の設定のみで同様にデータの転送が可能になります。
BOXのようなクラウドストレージを利用したデータ分析の際にはご活用ください。

trocco®は、ETL/データ転送・データマート生成・ジョブ管理・データガバナンスなどのデータエンジニアリング領域をカバーした、分析基盤構築・運用の支援SaaSです。trocco®について詳しく知りたいという方は、以下より資料をご請求ください。


hirokazu.kobayashi

慶應義塾大学卒業後、2014年より株式会社リブセンスへ入社。データエンジニアとして同社分析基盤立ち上げをリードする。2017年より現職primeNumberに入社。自社プロダクト「systemN」におけるSpark/Redshift活用等のデータエンジニアリング業務を行うかたわら、データ統合業務における工数削減が課題だと感じ、データ統合を自動化するサービス「trocco®」を立ち上げる。