
Contents
KARTEをCodatumに接続することで、有用な顧客データをより効果的に分析することができます。
KARTE DatahubにあるイベントデータをCodatumから直接参照するには、KARTE Datahub側でサービスアカウント(SA)を発行し、そのSAに必要な権限を渡した上で、CodatumのBigQueryコネクションに登録する、という手順が必要です。
この記事では、その一連の設定を紹介します。
KARTE Datahub側での作業
サービスアカウントを払い出す

KARTEを開いたら「すべてのメニュー」から「Datahub」をクリック。
KARTE Datahubの管理画面で、「その他の機能」→「データハブ設定」→「サービスアカウント管理」を開きます。
「払い出しGoogleサービスアカウント」から「Googleサービスアカウント作成」を押し、ダウンロードするキータイプを選択して保存します。このキーファイルは紛失すると復元できないため、大切に保管してください。
払い出したSAにジョブ実行権限を付与する

「BQクエリ実行権限付与済みアカウント」から「権限付与」を押し、先ほど作成したSAを入力して権限を付与します。
この権限を付与しておくことで、発行したSAを使ってBigQueryのクエリを実行できるようになります。
データセットにSAの閲覧権限を付与する

サイドバーの「データセット」から、Codatumで参照したいデータセットの「...」→「データセットの共有設定」を開きます。
「データセットを共有するメンバーを追加」から、作成したSAに閲覧権限を付与します。
ここまでの3つの手順は、KARTE Datahubのドキュメントでも確認できます。ドキュメント内の「外部サービス」が、ここではCodatumに該当します。
Codatum側での作業
Codatumにサインアップする
まだアカウントがない場合は、こちらからCodatumのアカウントとワークスペースを作成します。
コネクションを作成する

「ワークスペース設定」のコネクションから「+ コネクションを追加」を選び、Google BigQueryを選択します。
コネクション名とアクセスレベルを指定し、KARTE Datahubからダウンロードしたキーファイルをアップロードして「保存」を押します。
同期対象を設定する

作成したコネクションを開き、「テーブル同期設定」→「同期対象」→「編集」を押します。

「Projectを追加」からKARTE Datahubのプロジェクト名(例:karte-data)を入力し、「datasetを追加」から参照したいデータセット名(例:karte_stream_[api_key])を選択して、「保存して同期」を押します。
SQLブロックで動作確認する

Notebookを開き、本文内で/と入力してSQLブロックを挿入します。
SQLブロックに、Datahubで実行できるSQLを入力してRunボタンを押し、実行が完了することを確認します。このとき、SQLブロックのコネクションを、先ほどアップロードしたSAのコネクションに設定していることを忘れないでください。
注意点
払い出したSAによるクエリには、1日5TBの上限があります。
払い出したSAによるクエリは、KARTE Datahub側のクエリ消費量に合算されます。
karte-dataとの連携時に
karte-data: Internal Server Error: Error list datasetsというエラーが表示されることがあります。これはデータセット数が多いことに起因するエラーで、クエリの実行やカタログの閲覧など、目的の操作自体ができていればそのまま無視して問題ありません。
同期設定について、KARTEイベントデータの場合、プロジェクト名は
karte-data、データセット名はkarte_stream_[api_key]、テーブル名はkrt_pockyevent_v1_*になります。karte-dataはデータセット数が非常に多いため、Projectを追加してからDatasetを追加するボタンが表示されるまで、少し時間がかかることがあります。データセット名を入力するまで同期を進められないので、焦らず待ってください。
イベントログの実体となるテーブルは、
karte_eventではなく
krt_pockyevent_v1_*です。詳しくは
を参照してください。
まとめ
KARTE Datahubのデータは、サービスアカウントを発行し、ジョブ実行権限とデータセットの閲覧権限を渡した上で、そのSAのキーファイルをCodatumのBigQueryコネクションに登録すれば、Notebook上のSQLブロックからそのまま参照できるようになります。
クエリ量の上限やkarte-dataのデータセット名の扱いなど、いくつか癖のある部分があるので、注意点も合わせて確認しながら進めてください。


