ユーザー属性を使用して、ユーザーごとに異なるデータを表示する #looker

2023.10.13

Looker勉強中のikumiです。今回は、アクセスフィルターを使用してユーザーごとにデータのフィルタリングを行う方法を試してみました。

ユースケース

ECサイトの実績データのうち、担当ブランドのみのデータを表示させるようにしたい

やってみる

基準となるExplore画面

  • ブランドごとの売上を確認できるExplore画面を作成しました
  • この時点では、アクセスフィルターをかけていないので全ブランド表示されています

ユーザー属性の作成

  • 管理者タブから「ユーザー属性」を選択し、「Create User Attribute」を選択します

  • 以下の通り設定を行いました

  • ユーザーに属性値を付与する

    • 自分のアカウントに「Calvin Klein」の値を付与しました。今回は個別ユーザーへ属性値を付与していますが、担当ブランドのグループを作成し、グループに対して属性値を付与することも可能です

ユーザー属性の設定項目の意味やユーザーへの属性値の付与の方法については、こちらのブログでも紹介していますので参考にしてください。

access_filterを設定する

  • access_filterはexploreに設定します
  • 今回は、order_itemsとブランドの情報が入ったproductsのviewをjoinしたexploreを使用し、そこにaccess_filterを設定しました
explore: order_items {
  label: "(1) オーダー、アイテム、ユーザー関連"
  view_name: order_items
  view_label: "オーダー"

#アクセスフィルターの設定
  access_filter: {
    field: products.brand
    user_attribute: brand_filter
  }

  join: products {
    view_label: "プロダクト"
    relationship: many_to_one
    sql_on: ${order_items.product_id} = ${products.id} ;;
  }

もう一度Explore画面を確認する

  • ユーザー属性で設定したブランドのみが表示されるようになっていました!

最後に

今回はユーザー属性を使用してaccess_filterを設定する方法を試してみました。ユーザー属性は、ログイン認証に使用したり、Lookerのランディングページを変更したり色々な使用用途がありますので、今後も色々と試してみたいと思います。