Slide 1

Slide 1 text

アプリケーションエンジニアから 強いデータエンジニアへの歩き方 ytake

Slide 2

Slide 2 text

データへの関わりのきっかけ - Apache HadoopやHBaseを通じてデータ処理を学ぶ - 分散処理に強いクエリエンジンやストリーム処理などを手がけ る - データからどこに問題がありそうか 予測できるようになり 解決のために自分で行動することが多くなる

Slide 3

Slide 3 text

これからのキャリアを考えたい 行動範囲を広げていきたい そんな方に

Slide 4

Slide 4 text

Agenda - データエンジニアってなにするの? - データエンジニアとして活動するための思考 - データエンジニアリングのための技術

Slide 5

Slide 5 text

データ基盤が必要なんだ でもなにをするものなのかわからない

Slide 6

Slide 6 text

データエンジニアとは - データ活用を前提にデータ収集や、管理、作成など データに関する基盤を作るエンジニア - データを元にアプリケーションに フィードバックをするなどもあり、 機械学習や一般的なアプリケーション作りも含まれる

Slide 7

Slide 7 text

データエンジニアへ - データ設計が好きなアプリケーションエンジニア - 自分がやりたいタイミングでデータを用意して 整備も自分でやりたいデータサイエンティスト - DB管理してるのインフラでしょ、やってよ

Slide 8

Slide 8 text

データエンジニアとは - データが整備されていないとなにもできないところから 整えていく - データの性質によって転送方法、加工方法が無数にある - 簡単なものか高難易度まで - データクレンジング

Slide 9

Slide 9 text

データ活用とは - 会社活動などにおける「意思決定」や「業務効率化」、 「マーケティング」などの向上に役立てるもの - どういうデータをエビデンスにしていけば良いか、 などは会社によって全く違うため、 何かを参考にすると活用ができるわけではない

Slide 10

Slide 10 text

データエンジニアをやるには - 事業・会社の課題を知る - 実際にデータを自分で見る、業務を知る - 今あるデータすらも信用しない

Slide 11

Slide 11 text

データエンジニアをやるには - まずは自分のために仮説検証ができるように - どこからデータがきているのか、どこが起点なのか - 自分が欲しいデータを見つける・見る・集約する

Slide 12

Slide 12 text

- 実装以外のやることが多い(兼務はおすすめしないです

Slide 13

Slide 13 text

誰かが教えてくれるわけではない 教えてくれても その人の視点だけでしかない

Slide 14

Slide 14 text

ドメインを噛み砕く

Slide 15

Slide 15 text

見つけ方が難しい! - どこからデータがきているのか、どこが起点なのか

Slide 16

Slide 16 text

イベントストーミング - どういうところでどういう事象が発生するのか - サービスにおけるイベントを見つけ出す - なぜなら データは事象のスナップショット

Slide 17

Slide 17 text

思考を鍛える - 自分が欲しいデータを見つける・見る・集約する 参考: https://www.ibm.com/docs/ja/spss-modeler/saas?topic=dm-crisp-help-overview

Slide 18

Slide 18 text

CRISP-DM - ビジネス課題の理解 - データの理解 - データの準備 - モデル作成 - 評価 - 共有

Slide 19

Slide 19 text

モデル作成・評価・共有 - DWHやデータマートなど - アプリケーションへフィードバックする仕組み - 機械学習 - 効果検証

Slide 20

Slide 20 text

データエンジニアもマインド必要なの? - データが揃った・揃ったら何がどうなりそうか、 これを意識して基盤作りなどをする必要がある - ただ持ってきただけだと、何を解決するためにあるのか 誰もわからない・使われない基盤になります

Slide 21

Slide 21 text

品質をあげる

Slide 22

Slide 22 text

データの品質を上げていく - 仕組みを作るだけではどうにもならない - データに関するリテラシーを上げていく - SREと同じくデータを軸にした品質向上活動をしていく - 一般的なアプリケーション開発とちょっと違う

Slide 23

Slide 23 text

すこし強くなる - 当事者意識を強く持つ - 今ないデータに価値がありそうか - 見えない範囲やネガティブなデータに価値がある - コミュニティを頼る(大事

Slide 24

Slide 24 text

今ないデータとは

Slide 25

Slide 25 text

生存バイアス - 装甲を厚くして撃墜されにくくする - 帰ってきた爆撃機のデータしかない、 撃墜されたものに価値がある - あるものだけに偏ってしまう - ちなみにこの図も仮説なので嘘の図

Slide 26

Slide 26 text

注意すること - ただのデータ抽出チームにならないこと - チームはエンジニアだけで閉じないこと - なんとなくやらない、しっかりと思想をもつ - うまくできなさそうな時は諦めること

Slide 27

Slide 27 text

注意すること - 97%は燃え尽きる - アプリケーションや業務フローで簡単に壊れるデータ パイプライン維持でほとんど終わってしまう - なぜ必要なのか、実現するためには文化と意識作り - 参考: https://datadeveloperplatform.org/why_ddp_for_data/

Slide 28

Slide 28 text

なぜデータ基盤が必要なのか WHYが明らかになってからが最初の一歩

Slide 29

Slide 29 text

サイクルを回すための 実現可能な手法を習得

Slide 30

Slide 30 text

データ基盤ができてきた - データの取り出し方、保管の仕方、モデリングなど ドメインに合わせて最適化する - 全てSQLだけで済む、ということはあまりない - 共有するにはある程度加工が必須

Slide 31

Slide 31 text

ELT/ETL / そんなにフレッシュじゃない - 小難しい転送がなければdbt、Embulk、Glueなど - 転送に関して データの鮮度・更新頻度が高くないものは非常に簡単 - 鮮度がよくなるほど難しくなる

Slide 32

Slide 32 text

ELT/ETL / フレッシュ - イベントストーミングのイベント発生時から 保管すべきもの - Apache Kafka、Kinesisなど - CDC(Change Data Capture)、ストリーミング処理少々 - 転送効率から選ぶことも

Slide 33

Slide 33 text

ELT/ETL / フレッシュ同士の結合 - Spark Streaming、Storm、Flinkなど - アプリケーション層に近いところまで寄ると マイクロサービスアーキテクチャと変わらなくなる - アクターモデル導入

Slide 34

Slide 34 text

データ集約・抽出 - 静的なデータを全てGoogleに預けていい場合は BigQuery を軸に - AWSの場合はS3+Athenaが低コストで鉄板 - それらを包括したSnowflakeなど

Slide 35

Slide 35 text

データ加工・抽出 - 事業の課題やフィードバックの仕方によって様々 - BIツールは可視化に - レコメンデーションや自然言語処理の結果など データを利用できる様に 全文検索エンジンやワイドカラム対応の設計など

Slide 36

Slide 36 text

データを軸にしたプロダクトがあるのならば・・

Slide 37

Slide 37 text

連携システム グランドデザイン

Slide 38

Slide 38 text

連携システム グランドデザイン

Slide 39

Slide 39 text

まとめ - アプリケーションエンジニアと知識と技術 - データ分析のための思考 - パイプラインを作るためのインフラ知識 - データそのものをプロダクトとして考える

Slide 40

Slide 40 text

総合格闘技として様々な領域を鍛えていきましょう