Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データパイプラインを作って改良する はじめてのデータ/アナリティクスエンジニアリング

データパイプラインを作って改良する はじめてのデータ/アナリティクスエンジニアリング

2023-01-25 DS集会@VRChat

contradiction29

January 25, 2024
Tweet

More Decks by contradiction29

Other Decks in Technology

Transcript

  1. 答え(2):データパイプラインを構築する データパイプラインを構築できれば、⾃動的にデータを提供する仕組みができる • データパイプライン ◦ ざっくりいうと、データを⾃動で出す仕組み ◦ ⼈⼒が排除され、⾃動で毎⽇データが最新のものに更新される ◦ 前の図みたいなやつ

    • データエンジニア‧アナリティクスエンジニアと呼ばれる⼈の仕事 ◦ データパイプラインを作ったり ◦ ユーザーの要望を聞きながら、変更を加えて⾼度化したりすること • 今から話すのはそんな⼈たちの仕事の話
  2. ⾃⼰紹介 • 普段のお仕事 ◦ アドテク系の企業に所属 ◦ データプラットフォーム統括チームのマネジャー ◦ データエンジニア‧アナリティクスエンジニア •

    Snowflake‧dbt‧dagsterあたりが好き • 東京在住 • 「健常者エミュレータ事例集」の管理⼈ ◦ ↑ググると出てくるので調べてみてね 越境 @contradiction29
  3. 話すこと概要 データエンジニア‧アナリティクスエンジニアのお仕事紹介みたいな感じ • データエンジニアリングとは? ◦ データエンジニアリングができていると何が嬉しいのか ◦ データエンジニアリングの定義 ◦ どんなお仕事

    • アナリティクスエンジニアリングとは? ◦ アナリティクスエンジニアリングの定義 ◦ アナリティクスエンジニアリングができていると何が嬉しいのか ◦ どんなお仕事
  4. データエンジニアリングとは?:前提条件 データウェアハウスなどを使わなくてもデータの分析はできるが、ユースケースは限定的 • 本番稼働中のデータベースに直接接続し、クエリを発⾏すればいい ◦ サービス提供直後の段階など、データの価値があるかよくわからない段階ではよくやる ◦ イメージ:RDSのインスタンスに対してEC2を経由してSSH接続→Sequel ACEでクエリ •

    ⾊々⾟い部分はある ◦ 分析の環境としてとっつきづらい ◦ 本番稼働⽤アプリケーション向けデータベース(OLTP)は分析に向かない ▪ ⼀般的に、OLTPはスキャン量の多いクエリに向いてない ▪ 下⼿すると本番稼働中のサービスが落ちて機会損失に繋がる ◦ アナリティクスエンジニアリングのプラクティス(後述)は適⽤できない
  5. データエンジニアリングとは?:定義 とっつきづらさが出てきたらデータエンジニアリングの出番となる • 定義 ◦ Data engineering is the development,

    implementation, and maintenance of systems and processes that take in raw data and produce high-quality, consistent information that supports downstream use cases, such as analysis and machine learning. (※1) • ものすごくざっくりまとめると: ◦ データパイプライン=⽣データをインプット、high-qualityでconsistentなデータをアウト プットとするシステム ◦ データパイプラインを開発し、維持していくのがデータエンジニアリング ◦ そのデータパイプラインは下流での利⽤を前提とし、分析や機械学習に利⽤される ※1: Reis, Joe; Housley, Matt. Fundamentals of Data Engineering (English Edition) (p.23). O'Reilly Media. Kindle 版.
  6. アナリティクスエンジニアリングとは?:定義 ⾃分以外のユーザーがデータを分析できるように、エンジニアリングの⼿段を使って意思決定をサポートする • 定義 ◦ Analytics engineers provide clean data

    sets to end users, modeling data in a way that empowers end users to answer their own questions. While a data analyst spends their time analyzing data, an analytics engineer spends their time transforming, testing, deploying, and documenting data. Analytics engineers apply software engineering best practices like version control and continuous integration to the analytics code base(※2) • 分解すると... ◦ ⽬的 ▪ エンドユーザーの意思決定⽀援 ◦ やること ▪ データの変換(transform) ▪ 品質テスト(testing) ▪ デプロイ ▪ ドキュメンテーションの作成 ※2: Carrol Claire, What is analytics engineering, https://www.getdbt.com/what-is-analytics-engineering
  7. アナリティクスエンジニアリングとは?:ないことの⾟さ 思い当たることはないですか?アナリティクスエンジニアリングが不⾜しているかも... • データの意味がわかんない ◦ ドキュメンテーションがないため、何のデータかわからない。いつ誰が何のために作ったのか?このTreasure Dataの中 に⼊っているデータは何者? ◦ リネージュが把握できず、データの由来が不明。このデータはどこから来た?

    ◦ 同じようなデータが複数箇所に点在していて、どれが正しいのかわからない ◦ 結果的にデータの利活⽤が進まない • データが汚く、使えない ◦ なぜかduplicateする主キー ◦ ありえない値が⼊っている • クエリが汚い ◦ 読めない→意味わかんない このような状態を防ぐのがアナリティクスエンジニアリングの役⽬
  8. 補⾜:データエンジニアリングとアナリティクスエンジニアリングの境⽬ データエンジニアリングとアナリティクスエンジニアリングの境⽬は曖昧なもので、兼ねる場合もよくあり、解釈も⼈に よって異なるが、私的な⾒解を⽰す • 共通点 ◦ どちらも⽬的は「データを利⽤して、意思決定を⽀援するためのパイプラインを整える」こと ◦ データの利活⽤を念頭に置く(べき)こと •

    データエンジニアリング ◦ インフラ寄り ◦ 個々のテーブルやダッシュボードに依存しない共通要素に責任がある ◦ プラットフォーマーとしてふるまう(楽天市場) • アナリティクスエンジニアリング ◦ 利活⽤より ◦ 個々のテーブルやダッシュボードに責任を持つ ◦ プラットフォームの利⽤者としてふるまう(楽天市場に出品している個々の店舗)