Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Looker APIを使い倒す ユーザーフィードバックを基にした継続的改善サイクル

Recruit
December 05, 2024

Looker APIを使い倒す ユーザーフィードバックを基にした継続的改善サイクル

2024/11/29に、Jagu’e’r データ利活用分科会 Meetup #24 あつまれLookerの森 Part2で発表した、德本と谷口の資料です。

Recruit

December 05, 2024
Tweet

More Decks by Recruit

Other Decks in Technology

Transcript

  1. Looker APIを使い倒す: ユーザーフィードバックを基にした継続的改善サイクル 谷口 正樹 担当: スタディサプリEnglish 配属: データエンジニアリンググループ 趣味:

    映画、バイク (最近乗ってない) 德本 翼 担当: スタディサプリ小中高 配属: データマネジメントグループ 趣味: テニス、登山、ポケポケ
  2. Looker APIを使い倒す: ユーザーフィードバックを基にした継続的改善サイクル Agenda | 01 02 03 04 導入:

    Looker API? 基礎編: どうやってつかうの? 応用編: スタディサプリでのメタデータ活用法 まとめと今後の期待・展望
  3. Looker APIを使い倒す: ユーザーフィードバックを基にした継続的改善サイクル 背景: スタディサプリでの Looker 利用 Looker は6年前に導入済み ✔

    この数年で氾濫していた野良分析クエリを概ね統制下に ✗ データ利活用が拡大するにつれて管理コストも大きく Looker を使える人の拡大 << データ利用ニーズの拡大 ✗ 事業組織によるアドホックな分析依頼の増加 ✗ 「ダッシュボードを知らない」「使い方・見方がわからない」をどうするか問題 → 利用実態を正確に把握し、ユーザービリティの向上を図りたい
  4. Looker APIを使い倒す: ユーザーフィードバックを基にした継続的改善サイクル 背景: スタディサプリでの Looker 利用 Looker は6年前に導入済み ✔

    この数年で氾濫していた野良分析クエリを概ね統制下に ✗ データ利活用が拡大するにつれて管理コストも大きく Looker を使える人の拡大 << データ利用ニーズの拡大 ✗ 事業組織によるアドホックな分析依頼の増加 ✗ 「ダッシュボードを知らない」「使い方・見方がわからない」をどうするか問題 → 利用実態を正確に把握し、ユーザービリティの向上を図りたい API で ”すべて” 取れるのでは 👀
  5. Looker APIを使い倒す: ユーザーフィードバックを基にした継続的改善サイクル $ curl \ --request POST \ --header

    "Content-Type: application/x-www-form-urlencoded" \ "https://your.looker.com:19999/api/4.0/login?client_id=ID&client_secret=SECRET" > {"Access_token":"TOKEN", "token_type":"Bearer", "Expires_in":3600} $ curl \ --request GET \ --header "Content-Type: application/json" \ "https://your.looker.com:19999/api/4.0/dashboards?access_token=TOKEN" ① ID, SECRETを使って一時アクセストークンを取得 ② 取得したアクセストークンを使ってAPIにアクセス 基礎編1: 直接叩いてみる
  6. Looker APIを使い倒す: ユーザーフィードバックを基にした継続的改善サイクル import looker_sdk sdk = looker_sdk.init40() sdk.create_user(body={"first_name":"Jane","last_name":"Doe"}) 基礎編2:

    各種言語の SDK を使う [Looker] base_url=https://your.looker.com:19999 client_id=ID client_secret=SECRET verify_ssl=True Python, Typescript, Kotlin, C#, Swift, Go などのSDKを完備 looker.ini main.py
  7. Looker APIを使い倒す: ユーザーフィードバックを基にした継続的改善サイクル スタディサプリでのデータ取り込み: API 利用前 BigQuery Cloud Storage gcloud

    cli Schedule Delivery dashboard.csv user.csv history.csv looker.dashboard looker.user looker.history System Activity ✔ History などを永続化できる (デフォルトだとMax 3ヶ月) ✔ GUIから設定 + gcloud の実行基盤は既存 → 低い工数で初期実装 ✗ System Activity など、Explore / Dashboard 上で見られる情報に限定 ✗ Dashboard に集計されて連携 → カスタマイズ性が低い、構造体を扱いづらい OLD
  8. Looker APIを使い倒す: ユーザーフィードバックを基にした継続的改善サイクル スタディサプリでのデータ取り込み: API活用後 API 対応の クラス looker_api.dashboard looker_api.user

    looker_system_activit y.history records = sdk.all_users() # list[User] for r in records: r = json.dumps(r, default=serialize_func) Cloud Run sdk.run_inline_query(body={"model": "system__activity", "view": "history", ...}) BigQuery Cloud Storage gcloud cli データ コネクタ dashboard.csv user.csv history.csv looker.dashboard looker.user looker.history System Activity System Activity OLD NEW
  9. Looker APIを使い倒す: ユーザーフィードバックを基にした継続的改善サイクル スタディサプリでのデータ取り込み: API活用後 API 対応の クラス looker_api.dashboard looker_api.user

    looker_system_activit y.history records = sdk.all_users() # list[User] for r in records: r = json.dumps(r, default=serialize_func) Cloud Run sdk.run_inline_query(body={"model": "system__activity", "view": "history", ...}) BigQuery Cloud Storage gcloud cli データ コネクタ dashboard.csv user.csv history.csv looker.dashboard looker.user looker.history System Activity System Activity OLD NEW APIを活用することで ダッシュボードのメタ情報 や ユーザーの利用状況 の生データが すべて BQ で扱える世界に ✨
  10. Looker APIを使い倒す: ユーザーフィードバックを基にした継続的改善サイクル 事例3: 利用状況分析 History, User, Dashboards 等を取得して、 以下をアドホック分析できるようになった

    ・ダッシュボード閲覧したユーザーの数や属性 ・ダッシュボード間の関係性(機能や製品ごと 誰がどのような検索ワードを使ったか 発行されるクエリをパースして分析
  11. Looker APIを使い倒す: ユーザーフィードバックを基にした継続的改善サイクル 事例4: 使われていないダッシュボードのクリーニング 各種運用フォルダ 活用されている ダッシュボード (閾値基準) +

    例外として残す ダッシュボード (ホワイトリスト) 退避フォルダ 利用が確認できない クリーニング対象の ダッシュボード ゴミ箱フォルダ 退避後12ヶ月経過し 復旧依頼のなかった ダッシュボード クリーニング 四半期に1度 復旧対応 退避後に改めて 必要になった際の 個別復旧対応 ゴミ箱移動 12ヶ月経過 ここで 使用
  12. Looker APIを使い倒す: ユーザーフィードバックを基にした継続的改善サイクル まとめ ✔ 簡単・便利な Looker API ◆ Looker

    上で出来ることのすべてを網羅 ◆ コマンドラインやSDKを使って簡単に使用可能 ✔ Looker 導入後に起きがちな課題に対しての打ち手となる ◆ メタデータ提供や情報検索性アップでユーザビリティの向上を実現 ◆ 運用保守工数の削減や分析利用など、使い道は多岐にわたる