はじめに
最近 kintone でもかなり大容量なデータを扱っているところが増えてきているように思います。CDataへの問い合わせでも、数十万レコードをkintone アプリに連携させたり、BIツールで分析したいといった問い合わせがよく聞かれるようになりました。
kintone は下記の制約事項に関するページでも書かれている通り、100万件登録した状態でも快適にデータの登録や閲覧が可能です。
https://jp.cybozu.help/k/ja/admin/limitation/limit.html
登録レコード数が多くなると、アプリの動作が遅くなる場合があります。表示やデータ処理の速度は、絞り込み条件、フィールド数などの利用条件によって異なります。レコードの登録や閲覧に関しては、1つのアプリに100万件を登録した状態で快適に使用できることを確認しています。
ただ、最終的にそのデータを分析・集計する時に満足なパフォーマンスが得られるか? 柔軟に集計・グルーピング・フィルター処理できるか? といった点では難しいのではないでしょうか。
Excelエクスポートをして、Excel上で分析なんてもってのほかですし、都度API経由で取得するのは効率がよく有りません。(一応Excelは100万行対応していますが)
ビッグデータはビッグデータ専門のデータストアで
数百万レコード、GB級以上のデータを扱うようなシチュエーションの場合には、DWH(データウェアハウス)にデータを移して、そこで集計・フィルター処理などをアドホックに行うことが現在のスタンダードでしょう。
DWHはAzure・AWS・Googleなどのクラウドプラットフォーム各社がそれぞれ特徴のあるサービスを提供しており、そこにデータを貯めておけば、BIツールなどで接続してエンドユーザーでもビッグデータを分析・活用しやすくなります。
ただ、kintone からそのようなDWHにデータを持っていくことはちょっと敷居が高いです。各クラウドベンダーはそれぞれETL/ELTツールやデータプレパレーションツールを持っていますが、国産クラウド製品であるkintoneには対応していないところがほとんです。
そこで、kintone データソース含め、200種類以上のクラウド・SaaSサービスに対応している ELTツールであるCDataSync を使って、そのボトルネックを解消し、kintoneのビッグデータをスムーズに分析できる環境を整える方法を紹介します。
なお、今回は高性能で使いやすい Google BigQuery を対象として、kintone に登録した100万件のレコードを連携し分析できるようにしてみました。
対象データは以下のようなアプリで、予め100万件レコードを登録しておきました。これをBigQueryに流し込みます。
実施手順の動画
以下のGIFアニメで大まかな実施手順を撮影してみました。データの登録には30分ほどかかるのでそこは割愛していますが、大まかな流れがつかめると思います。
必要なもの
Google BigQuery の準備
まずは、データの格納先となる Google BigQueryのプロジェクトとデータセットを構成しておきます。
なお、今回はあらかじめ専用のアカウントを作って対応しています。
手順は特に難しくありません。GCPの管理コンソールへ移動し、新しいプロジェクトを作成
BigQuery に移動し、プロジェクト配下にデータセットを作っておきます。ここに連携結果がテーブルとして格納されます。
以上で BigQuery 側の準備は完了です。
CDataSyncのインストール
それでは、CDataSyncの設定を行っていきましょう。
CDataSyncはインストール型のソフトウェアなので、以下のURLからダウンロードして、任意のPCもしくはサーバーでセットアップを行います。
https://www.cdata.com/jp/sync/
セットアップ後、CData Syncの画面がブラウザで立ち上がるので、セットアップ時に入力したパスワードとユーザー名「admin」を入力して、ログインします。
ログイン後「情報」タブに移動し、「30日間の評価版をアクティベート」を行えば、CDataSyncの初期設定は完了です。
kintone データソースの設定
最初にデータのSyncを行うためのデータソースの設定を行います。
CDataSyncでは任意のデータソースを自由に追加して、連携することが可能です。
デフォルトでは kintone データソースが含まれていないため、「接続」に移動し「+ Add More」をクリックし、追加を行います。
一覧の中から「kintone」を検索し、追加します。
追加後、CDataSyncが再起動します。再起動後、データソースの一覧から「kintone」が選択できるようになるので、これを選択し接続設定を行います。
接続設定では、以下の項目をセットし、保存します。
- URL:接続先となる kintone のURL(例:https://XXXX.cybozu.com/
- User:ログインユーザーのID
- Password:ログインユーザーのパスワード
BigQueryへの同期先設定
続いて、同期先となるBigQueryへの接続を構成します。
「接続」→「同期先」から「Google BigQuery」を選択し
あらかじめ作成しておいた、「ProjectId」と「Dataset Id」を入力し、「接続」をクリックします。
クリックすると、OAuthの認証プロセスが開始されますので、対象アカウントでログインし、アクセス許可を承認してください。承認後、設定を保存すれば準備完了です。
ジョブの作成
それでは実際に処理内容を記述したジョブを作成し、データをBigQueryに連携してみます。
ジョブのタブから「ジョブを作成」をクリックし
事前に構成した「kintone」と「BigQuery」を、ソースと同期先としてそれぞれ構成します。
次に連携するデータを決定するために、「テーブルを追加」をクリックし
対象のアプリを選択します。
これは任意ですが、スケジュールタブから日次の処理にするためにスケジューラーを設定します。これで1日1回、BigQueryへ最新のデータが同期されます。
後は設定を保存すれば、完了です。
実行
手動実行はテーブルタブから対象となるテーブルを選択し、「実行」ボタンをクリックすることで実施可能です。
実行後、一定時間が経過すると、以下のようにステータスが変わります! 無事成功したようです。
ログのタブでは実行時間も確認できるので見てみると、およそ30分で完了していました。
BigQueryも見てみると、正常に100万件登録されています!
データもしっかり入っていますね。
試しにレコードIDだけを集計処理してみたら、1.5秒で完了。
あとは、Google Data portal などのBIツールで分析できるので、手軽でとても良いです。
是非 kintone にたくさんデータが溜まってしまって、分析が大変だ! となったら、試してみてください。