MetricsファーストなSemantic Layer時代のBIツール「Steep」を試してみた

2024.01.31

さがらです。

昨今、事前に各種指標のロジックをMetricsとして定義しておき、その定義したMetricsを外部のBIツールやAPIを用いて参照できる仕組みや機能が出てきています。この仕組みや機能が「Semantic Layer」と呼ばれ、具体的な製品名としては、Looker、dbt Semantic Layer、Cubeが該当します。

そして、このSemantic Layerを活用することに特化したBIツールとして「Steep」という製品があります。

今回このSteepを試してみたので、その内容をまとめてみます。

Steepとは

Steepは、2021年にJohan Baltzar氏とNino Höglund氏によってストックホルムで設立された企業です。

そして、2022年10月にpre-seedラウンドでの100万ユーロの調達と共に、企業名と同じプロダクトであるSteepを発表・公開しました。

以下の文は上記のブログからの引用ですが、Steep設立に関する創業者の思いが述べられています。ざっとまとめると、下記の箇条書きのような内容です。

  • Modern Data Stackのおかげでデータエンジニアリングに革命が起こりこれまで以上に簡単にdata journeyを始めることができるようになった
  • しかし、データを持っているだけでは不十分であって、社内の全員にデータを提供できるようにすることでデータは本当の価値を発揮する
  • そこで、創業者のルーツであるデータとデザインを組み合わせて、アナリティクスを直感的にあらゆる職務で利用できるようにすることを目指して作られた製品が「Steep」である

Modern companies need to be data-driven to succeed, but too few manage to get it right. The rise of the modern data stack has revolutionized data engineering, and it is now easier than ever for companies to get started on their data journey, which is great.
But having data is not enough - the real value is in getting it out to all the people across an organization. To decision makers, commercial teams, ops teams, and ideally everyone in the company. We experienced this first-hand working at Spotify, iZettle, Paypal and Kry, and grew frustrated that the tools did not evolve with our needs. This is the new frontier - the last mile problem of analytics - and that is what we are solving with Steep.
At Steep, we combine our roots in data and design to make analytics intuitive and available to all roles. We believe working with data is a natural part of modern work, and analytics tools need to become like our best workplace tools. We are inspired by the journey design has made from expert singleplayer tools like Photoshop to powerful multiplayer tools like Figma - and we think now is the time for analytics to do the same.

また、Steepはdbt Semantic LayerやCubeなどのSemantic Layerの製品とも連携し、これらの製品上で定義されたSemantic Layerも参照することが可能です!(この機能についても別途ブログを執筆予定です。)

本記事で試す内容

今回はSteepを初めて触る方向けの「Try Steep with demo data」を試してみます。

本来Steepは別途RDB/DWHとつなげる必要があるのですが、このチュートリアルに沿うことでデモデータを用いてSteepの操作を行うことが可能です。

Sign up~Workspaceの作成~デモデータへの接続

まず、SteepにSign Upします。

「Steepのトップページ](https://steep.app/)から、右上のGet startedを押します。

任意の認証方法で、新しいアカウントを作成します。私はContinue with Googleで進めます。

すると、Workspaceの作成画面が出てきます。任意のWorkspace Nameを入れた上で、Continueを押します。(Logoを登録することもできるようです。)

Workspaceの作成が完了しSteepにログインできたら、画面中央に「Get started!」の文字があると思います。この右下のTry demo dataを押します。

すると、このようにHome画面にデモデータのMetricsに関するReportが表示されると思います。この状態になればデモデータが使用できます!

「Metrics」について

ここからは、Steepにおいて分析する上で重要な要素となる「Metrics」「Reports」「Dashboards」について見ていきます。

まず「Metrics」ですが、実際にデータを用いた集計指標について使用するカラム・分析できるディメンション・計算ロジックなどをまとめて定義するものとなります。

Metricsの一覧の確認方法

デモデータにおいては元々数十個のMetricsが定義されており、画面の左のメニューバーのMetrics欄からCategoryごとにMetricsを見ることが可能です。

Metricsメニューの一番の上のMetrics catalogを押すと、定義されているMetricsの一覧をDescriptionやCategoryと共に確認可能です。

Metricsの詳細画面について

MetricsメニューまたはMetrics Catalogから任意のMetricsを選択すると、そのMetricsを分析するための画面が出てきます。

グラフ上では、マウスオーバーさせるとその日付と値がすぐにわかるようになっています。

グラフの一番上の設定から、出力するグラフを変更する事が可能です。

  • 折れ線グラフ

  • 棒グラフ

  • Breakdownで指定したディメンションを用いた割合を表すグラフ

また、グラフの一番上の設定からは、グラフ自体の画像をコピーしたり、用いている集計データを縦持ち(tall)・横持ち(wide)でコピーしてスプレッドシートに貼り付ける、ということも可能です。※実際にスプレッドシートに貼り付けた例も画像を載せておきます。

グラフの一番下では、表示する時系列を直感的な操作で変更可能です。

画面右側のExploreでは、グラフの表示を指定したディメンションでBreakdownしたり、フィルターをかけたり、別のMetricsを追加したり、対前年比を見たり、ということが可能です。

  • 指定したディメンションでのBreakdown

  • 指定した値でのフィルター

  • 別のMetricsの追加

  • 対前年比・7or28日間の移動平均・最大値最小値平均値の出力

画面右側のAboutでは、対象のMetricsに関するDescriptionや、現在表示しているグラフを出力する際に使われたクエリが表示されます。

「Metrics」を作ってみる

次に、実際にMetricsを作ってみたいと思います。実はdbt Semantic LayerやCubeがなくても、Steep内部でMetricsの定義も可能です。

メニューのMetrics catalogから、右上のNew metricを押します。

下図のようなポップアップが表示されるので、任意のMetric typeを選択します。ここでは「Sum」を選択します。

続いて、Metricsの設定に移ります。Metric nameに対象のMetricsの名前を入れた上で、下図のような操作で、使用するテーブル、集計に使用するカラム、などを選択していきます。(以下では一部の操作について画像付きで説明します。)

  • 使用するテーブルの選択

  • 集計に使用するカラムの選択

  • 集計時の時系列のディメンションとなるカラムを選択

  • このMetricsでユーザーがBreakdown分析するためのディメンションとなるカラムを選択

  • 対象のMetricsのCategoryの選択(新規のCategoryの作成も可能)

これらの設定を行うと、下図のように実際に集計結果のサンプルグラフも表示されます。Metricsの設定に問題がなければ、右上のSaveを押します。

あとは、画面左のメニューMetrics catalogを押すと、作成したMetricsがCategory付きで表示されているはずです!

作成したMetricsの検索

メニューの左上の虫眼鏡マークから検索をすることも可能です。※2024年1月31日時点、Descriptionの内容での検索には対応していないようです。この機能はぜひ実装してほしい!

「Reports」について

次に、複数のMetricsをまとめた上でテキストも含めて1つのレポートとすることができる「Reports」機能について見ていきます。

Reportsの閲覧方法

画面左のメニューの「Reports」欄から、All reportsを押すと、ユーザーが見ることができるすべてのReportsが表示されます。

デモデータを使用している場合はSay hi to Reportsがはじめから登録されていると思います。こちらを押すと下図のように、Metricsを用いて作られたグラフや文章がまとまったReportsを見ることが可能です。

右上のFiltersからは、Reports内のデータに対してフィルターをまとめて設定することが可能です。

右上のShareからは、別のMemberやTeamにこのReportsへの閲覧権限を付与するかどうかの設定が可能です。

一番右側の「・・・」では、Reportsの複製と、PDFとしてエクスポートを行うことが可能です。

Reportsの作成方法

次に、新しいReportsを実際に作成してみます。

左のメニューからAll reportsを押してReports一覧が表示された画面で、右上のNew reportを押します。

すると、下記のようなReportsの編集画面が出てきます。

Textを押すと、新しくテキストを入力することが出来ます。

Chartを押すと、定義されたMetricsを用いてグラフを作ることが出来ます。2つ目以降のブロックを追加する場合には、Reportsの左の+を押します。

グラフの作り方は、Metricsの詳細画面と同じ仕様となっています。グラフが出来たら右上のDoneを押すと、Reports上に作成したグラフが表示されます。

Tableを押すと、指定したMetricsやDimensionsを用いて集計結果を表形式で表示することが出来ます。Add metricから複数のMetricsを追加して同時に表示することができ、右上のColumnsTime Periodからどのように切り分けて集計結果を出すか決めることが可能です。

最後にDividerですが、各ブロックを切り分ける横棒線を入れることが可能です。

「Dashboards」について

最後に、Dashboardsについて説明します。

SteepにおけるDashboardsは、「Home画面で表示されるDashboards」と「Teamごとに表示されるDashboards」の2種類があります。

Dashboardsの閲覧方法

「Home画面で表示されるDashboards」の閲覧方法

「Home画面で表示されるDashboards」ですが、これはその名の通りSteepにログインした後のHome画面で表示されるDashboardsを意味します。

後述するTeam画面のDashboardsも、ログインしているユーザーが該当するTeamに所属している場合にはまとめて表示されます。

「Teamごとに表示されるDashboards」の閲覧方法

「Teamごとに表示されるDashboards」ですが、これはSteep上の各ユーザー(Member)が属するグループを「Team」と呼んでおり、そのTeamごとにDashboardsを作ることができる機能です。

例えば、デモデータにあるFinanceチームのDashboardsを見たい場合には、画面左のメニューのFinanceを押すと、FinanceチームのDashboardsを閲覧可能です。

Dashboardsの編集方法

「Home画面で表示されるDashboards」の編集方法

「Home画面で表示されるDashboards」を編集したい場合は、Home画面の右上のEditを押すことで編集可能です。

Dashboardsでの各グラフは「Widget」と呼ばれているため、このWidgetを試しに1つ追加してみます。+ Add widgetを押します。

次に使用するMetricsを選びます。

次に作成するグラフですが、なんとSteep側でいくつかテンプレートを用意しているため、そのテンプレートの中から使いたいものを選ぶだけでOKです。見やすくおしゃれなデザインが多いと思うので、こういったグラフがぱぱっと作れるのは個人的にとてもありがたいです!

使用するTime grainDimensionは、設定から選びましょう。設定が終わったら、右上のAddを押します。

これで、新しいWidgetsをDashboardsに追加することが出来ました。最後にDashboards上でも右上のDoneを忘れずに押しましょう。

「Teamごとに表示されるDashboards」の編集方法

「Teamごとに表示されるDashboards」の編集方法ですが、まず画面左のメニューからAll teamsを押して、Dashboardsを編集したいTeamを選択します。

すると、各Teamに設定されたDashboardsが表示されるので、右上のCustomizeを押します。あとは「Home画面で表示されるDashboards」と同じ流れでWidgetを追加していけばOKです。

TeamごとのDashboardsは、+ Add sectionでセクションを分けることも可能です。

最後に

MetricsファーストなBIツール「Steep」をデモデータで試してみました。

Metricsで各指標を管理することがベースにあって、そのMetricsを元に簡易な操作でダッシュボードを簡単に作ることができるのは非常に魅力に感じました。

今回はデモデータで試しましたが、dbt Semantic Layerとの連携も近日中に試したいと思います!