What is analytics engineering? を読んでみた
dbtがリリースしていたWhat is analytics engineering?
を読もうと思ったので、その要約と感想をつらつらと書き進めていきます.
はじめに
dbtの使い方を学んでいる際に、analytics engineer
がこれから新しい役割として求められると紹介されていた。analytics engineerとは何ぞやと思い、上記の記事を読んだ。
その記事曰く、これまでのデータ分析における役割は主に2つと考えられてきた。それはdata analytst
とdata engineering
である。だがこれからはこの2つの役割に加えて新しくanalytics engineering
という役割が加わるだろうと言っているのでその詳細を以降で確認してみる。
記事の要約
Analytics Engineersとは
Analytics engineers provide clean data sets to end users, modeling data in a way that empowers end users to answer their own questions.
エンドユーザー(データを使用する役割の人(BI/MLなど))にクリーンなデータを提供する、また彼らの要望に添えるようにデータモデリングを行う.
Analytics Engineersの仕事とは
an analytics engineer spends their time transforming, testing, deploying, and documenting data.
アナリティクスエンジニアはデータの変換、テスト、デプロイ、文書化に時間を費やす.
Analytics Engineersが生まれるまで
- Traditional Data Team
Traditional Data Teamには2つの役割が存在する- データエンジニア
- PostgresデータベースやSaaSツールからデータを抽出し、そのデータを変換してデータウェアハウスにロードするというインフラを構築する
- データアナリスト
- SQLファイルを大量に保持したり、SQLウェブエディタでクエリを実行することで意味のあるデータを生成する
- データエンジニア
その後2010年代に以下のツールの革新が起こった。
- データツールの革新
- Cloud-based data warehouses
- Redshift, followed by BigQuery and Snowflake
- データの保存と処理を手頃な価格で高速に行うことができるようになった
- Data pipeline services
- Stitch, Fivetran
- データ抽出が数クリックでできるようになった
- Business intelligence (BI) tools
- Looker、Mode、Chartio
- ステークホルダーのセルフユーザーの分析が容易になりつつある
- Cloud-based data warehouses
この革新を経て、modern data teamを以下のように定義する。
data warehousesでデータを大量に保持することができ、またデータの抽出が簡単にできるようになったため、data warehousesにとりあえずデータを格納し、そこからTransform(変換)を行えば良いという風潮になっている(そこで"T"の役割を担うのがdbt)
- The modern data team = 上記の2つの役割+
analytics engineer
- モダンデータチームに必要な新たな役割
Data Engineerに必要な素養
- 技術
- dbt、Snowflake/BigQuery/Redshift、Stitch/Fivetran など
- 課題意識の関心範囲
- ビジネス上の質問にすべて答えられるようなテーブルを1つ作ることは可能だろうか?
- 倉庫内のテーブルの命名規則で最も明確なものは何か?
- ビジネス・ユーザーがLookerで壊れたチャートを見つける前に、データの問題を通知することができたらどうだろうか?
- アナリストや他のビジネス・ユーザーがこのテーブルを迅速に使用するためには、何を理解する必要があるか?
- 下流でクリーニングするのではなく、生産時にデータの品質を向上させるにはどうしたらよいでしょうか?
まとめ
Analytics Engineerとは図書館の司書みたいな存在.
→ 組織のデータを管理し、それを利用する人々が使いやすいようにメンテナンスを行う人