BOXとは?

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

概要

Boxは単なるファイルの置き場としての機能の他に、クラウド上で動作するデータベースとしても使えます。ですがBox上のデータを基に分析するには別途DWHとのデータパイプラインの構築が必要であるほか、データの更新をどうやってDWHへ反映させるかという点が課題となってきます。

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

BoxのデータをSnowflakeへ転送

ゴール

下の画像のようなBoxのデータを

Box_データプレビュー.png

Snowflakeへ統合し、

snowflakeデータプレビュー.png

Lookerで可視化します(作成後は自動で最新のグラフに更新されるようにします)

Looker可視化.png

こんな人におすすめ

  • Boxのデータをうまく活用して分析をしたいが、データの転送作業に苦戦している
  • LookerやSnowflakeでデータ分析をしたい
  • 様々なデータの分析に時間の浪費を感じている

1-0. trocco®でBox → Snowflakeの転送自動化

1-0. 事前準備

データの転送のためにはtrocco®のアカウント・Boxのアカウントが必要です。

無料トライアルを実施しているので、事前に申し込み・登録しておいてください!

https://trocco.io/lp/index.html

(申し込みの際にこちらの記事を見たという旨を記載して頂ければその後のご案内がスムーズに行なえます。)

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

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

trocco転送設定-0.png

転送元に「Box」を指定し、転送先に「Snowflake」を選択して「この内容で作成」のボタンを押します。

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

1-2. Boxとの連携設定

trocco®には社内のユーザー間でチームを作成し、チームで転送設定を共有する機能があります。他のメンバーにもわかるように、転送設定の名前とメモを入力しておきましょう。

trocco概要設定.png

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

trocco_box接続情報_1.png

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

trocco_box接続情報_2.png

JSONファイルの取得方法は以下の通りです。
https://documents.trocco.io/docs/connection-configuration-box?highlight=Box

問題なくJSONファイルが取得でき、接続設定が作成できたら「接続情報を読み込む」ボタンを押すと先ほど作成した接続情報が選択できるようになります。

trocco_box接続情報_4.png

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

取得するデータを指定します。

  • フォルダーID
    • Boxの管理画面より当該フォルダーに遷移し、URLからフォルダーIDを取得します
  • パスプレフィックス
    • 取得するファイル名のパスプレフィックスを指定します
  • 入力ファイル形式
    • ファイルの入力形式を指定します
box情報追加.png

1-4. 転送先Snowflakeの設定

転送元と同様にまずSnowflakeの接続情報を作成していきます。

転送先となるSnowflakeの接続先ホスト、ユーザー名およびパスワードが必要です。

snowflake接続0.png

先ほど作成した接続情報を選択し、転送先とするウェアハウス、データベース名、スキーマ名を設定します。
転送モードに関してはreplaceを選択します。各転送モードの詳細はこちらの「転送モードについて」をご確認ください。

snowflake接続1.png

これで入力は完了です。「保存して自動データ設定・プレビューへ」をクリックし、確認作業に進みましょう。

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

少し待つと、転送元のデータがプレビューされます。ここではBoxから取り込んだデータが表示されています。

スキーマプレビュー.png

転送したいデータが取得できているので、このまま「スケジュール・通知設定」に進みます。

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

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

スケジュール設定0.png

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

スケジュール設定.png

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

設定は以上です。最後に、手動で転送ジョブを実行し、Snowflakeにデータを送ります。

手動でジョブを実行する場合は転送設定の詳細画面から「実行」ボタンを押します。

転送実行.png

これで転送は完了です。

2. Snowflakeの設定

Snowflake側から操作することは特にありませんが、念の為Snowflakeのコンソール画面から確認してみるとデータが確かにデータが転送されています。

snowflake.png

3. Lookerで可視化

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

まずはSnowflakeとLookerの接続設定を行います。

管理タブを開いて「データベース」の「接続」を開きます。

接続選択.png

接続しているデータベース一覧が表示されています。ここで「Add Connection」 → 「Database Connection」から接続するデータベース情報を入力します。

addconnection.png
Looker接続.png

Snowflakeのデータベースに接続できたら、次はデータを可視化するために必要なLookMLプロジェクトを作成していきます。開発タブを開いて「LookMLプロジェクトの管理」に移動します。

プロジェクトの管理.png

「New LookML Project」からLookMLプロジェクトを作成します。

newlookerml.png
Looker_new.png

「Create Project」を押したら、エディタでmodelとviewを定義します。 後々必要になるので、modelの中ではexploreを設定しておきましょう。 (書き方が分からない場合はLookerの公式ドキュメントを参照してください)

Looker_model.png
Looker_view.png

これで下準備が整いました。 トップページに戻って「New」からDashboardを作成します。

newdash.png

白紙のダッシュボードが作成されるので「box_snowflake_dash」と名前をつけます。
そして「Dashborardの編集」→「タイルの追加」を選択し、先ほどのmodel内で定義したExploreを選択します。

explore.png

ディメンションとメジャーを設定し、Tileに表示したいデータをプロットします。例えば、キーワードのクリック率を分析したいときはディメンションに「年度」とメジャーに「総合」を選択します。

可視化例1.png

そのほかに必要なタイルを作成し、ダッシュボードにまとめていきます。

Looker可視化.png

これで完成です。

まとめ

いかがでしたでしょうか。trocco®を使うと、Boxのデータを簡単にDWH(今回はSnowflake)に統合することが出来ます。

Snowflakeにデータを統合すると、Lookerと連携することでデータを使ってグラフを作り、可視化できます。

実際にtrocco®試してみたい場合は、クレジットカード不要のフリープランや無料の製品資料を提供しているので、この機会にぜひ一度お試しください。

hirokazu.kobayashi

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