Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ReverseETLでユーザーに価値を届ける基盤を実現した話
Search
St-Hakky
August 03, 2022
Technology
0
1.6k
ReverseETLでユーザーに価値を届ける基盤を実現した話
Data Engineering Study #15「Reverse ETL 特集回」の登壇資料です
https://forkwell.connpass.com/event/250527/
St-Hakky
August 03, 2022
Tweet
Share
Other Decks in Technology
See All in Technology
マネジメントって難しい、けどおもしろい / Management is tough, but fun! #em_findy
ar_tama
7
1.2k
United airlines®️ USA Contact Numbers: Complete 2025 Support Guide
unitedflyhelp
0
330
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
Lufthansa ®️ USA Contact Numbers: Complete 2025 Support Guide
lufthanahelpsupport
0
220
SREの次のキャリアの道しるべ 〜SREがマネジメントレイヤーに挑戦して、 気づいたこととTips〜
coconala_engineer
1
160
How to Quickly Call American Airlines®️ U.S. Customer Care : Full Guide
flyaahelpguide
0
150
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
200
LLM時代の検索
shibuiwilliam
2
430
NewSQLや分散データベースを支えるRaftの仕組み - 仕組みを理解して知る得意不得意
hacomono
PRO
3
190
CDKコード品質UP!ナイスな自作コンストラクタを作るための便利インターフェース
harukasakihara
2
130
React開発にStorybookとCopilotを導入して、爆速でUIを編集・確認する方法
yu_kod
1
300
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
2
370
Featured
See All Featured
The Language of Interfaces
destraynor
158
25k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Documentation Writing (for coders)
carmenintech
72
4.9k
Typedesign – Prime Four
hannesfritz
42
2.7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
970
Being A Developer After 40
akosma
90
590k
GitHub's CSS Performance
jonrohan
1031
460k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Designing for Performance
lara
610
69k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Statistics for Hackers
jakevdp
799
220k
Transcript
Copyright © 2022 Classi Corp. All Rights Reserved. ReverseETLでユーザーに価値を届 ける基盤を実現した話
2022/08/03 Classi株式会社 齋藤 和正
Copyright © 2022 Classi Corp. All Rights Reserved. 1 自己紹介
名前:齋藤和正 Twitter:@St_Hakky 所属:Classi株式会社 主な業務内容:データ分析基盤のリードエンジ ニアと、最近はデータAI部という部の副部長をし ております
Copyright © 2022 Classi Corp. All Rights Reserved. 2 本日の発表内容について
Classiのデータエンジニアチーム (3人) 【今日の話で絡む部分】 社内のデータ分析基盤のジョ ブの実行状態の監視部分をメ インで設計・実装 【今日の話で絡む部分】 チームリードやチーム間の連 携などの仕事がメイン 【今日の話で絡む部分】 Dashboard機能をメインで 設計・開発 元々社内のデータ分析基盤だったものを、 Classiのサービスの一部としてReverseETLを行い、提 供するまでに至った経緯やアーキテクチャについて話します 。この内容は、チームで取り組んだ内容 を代表して喋ります。
Copyright © 2022 Classi Corp. All Rights Reserved. 目次 1.
会社紹介 2. ReverseETL実装の経緯 3. ReverseETLのアーキテクチャ 4. ユーザー影響のあるデータ基盤を意識して変えたこと 5. 今後に向けた挑戦 6. 採用 3
会社紹介 01
Copyright © 2022 Classi Corp. All Rights Reserved. Classiとは 両社のジョイントベンチャーとして2014年に設立
教育プラットフォーム「Classi(クラッシー)」の開発・運営 • 学校向けコンサルティング・ 営業ノウハウ • 50年近くにわたる学校支援 の実績 • クラウド・モバイル技術 • 30年にわたるIT事業の実績 5
Copyright © 2022 Classi Corp. All Rights Reserved. 全国の高校における Classiのシェア
Classiサービス 全国の導入校の推移 サービス導入実績 6 出典(全国の高校数):文部科学省「R3年度学校基礎データ」 高校生の 3人に 1人が利用 2015年 2017年 2019年 119校 509校 9,491校 11,377校 2021年 EDUCOM(小中) Classi(中高)
Copyright © 2022 Classi Corp. All Rights Reserved. 7 Classiのデータ基盤への取り組み
https://corp.classi.jp/company/message/
Copyright © 2022 Classi Corp. All Rights Reserved. 8 Classiのデータ基盤への取り組み
Classiでは業界的にも早い段階からデータ基盤への取り組みをチームで行っています。 今日は時間 の関係上話せませんが、過去に社内のデータ基盤についての取り組みを紹介したブログやスライド があります。 https://speakerdeck.com/tetsuroito/data-engineering-st udy-number-9-classifalsedetazu-zhi-falsebu-mi https://tech.classi.jp/entry/2021/05/31/120000
ReverseETL実装の経緯 02
Copyright © 2022 Classi Corp. All Rights Reserved. 10 ReverseETL実装の経緯
最初から意図的にReverseETLにしたというよりも、「結果的にそう呼ばれているものになった」とい う方が正しいですが、次の3つの経緯がありました ※これはカントです ③データ基盤の 安定性の向上 社内で「カント」と呼ばれているデータ基 盤の状態把握を行う基盤のこと。これに よりSLO/SLAを定義して運用改善してい くことができるようになり、プロダクトとし て提供しても問題ない品質にできたため ②ダッシュボード機 能のリリース Classiのサービスの一つとして「ダッシュ ボード機能」という生徒の学習状態など を把握するための機能をリリースした かったため ①社内データ基盤の 活用 社内のデータ基盤は「ソクラテス」と呼ば れており、そのデータ基盤を活用し、集 計を実装したほうが機能要件的にも実装 コスト的にも都合が良かったため ※これはソクラテスです
Copyright © 2022 Classi Corp. All Rights Reserved. 11 ①データ分析基盤:ソクラテスとは?
AWS上で構築されているClassiのプロダクトや、Google Analytics、Salesforceなどのデータを統合 的に管理するデータ分析基盤をGoogle Cloud上に構築しています
Copyright © 2022 Classi Corp. All Rights Reserved. 12 ダッシュボード機能とは?
• アプリケーションはAWS上で動かす • 前日までの利用状況がアプリケーション上 で朝8時までに閲覧可能になっていること • 学校/学年/クラスごとで集計し、学校を横断 した集計はしない システム的な要件 先生と学年・クラスごとの生徒の利用状況を可視化したダッシュボードを提供する機能
Copyright © 2022 Classi Corp. All Rights Reserved. 13 Classiのデータ基盤のジョブの実行状態を把握することができる基盤のこと
データ分析基盤:カントとは • Classiのデータ基盤のジョブの実行状 態の収集・集約・把握・監視および実 行制御を責務としたデータ基盤監視シ ステム(カント)の構築 • カントで集約した情報をもとに、 SLA/SLOを定め、BIツールで可視化 し、改善アクションを行う カントの詳細 参考:データ基盤の品質向上への取り組み https://tech.classi.jp/entry/2022/07/22/083000
Copyright © 2022 Classi Corp. All Rights Reserved. ReverseETL実装の経緯まとめ
14 社内のデータ基盤の利便性及び品質向上の取り組みにより、 ユーザー提供に十分な基盤になったことや、開発リソースなどを考慮して 逆に書き戻しに行くアーキテクチャにしようと意思決定した
ReverseETLのアーキテクチャ 03
Copyright © 2022 Classi Corp. All Rights Reserved. アーキテクチャ:全体感 16
参考:社内向けのデータ基盤から集計結果を Reverse ETLしてサービスに 組み込んだ話 https://tech.classi.jp/entry/2022/06/21/120000
Copyright © 2022 Classi Corp. All Rights Reserved. アーキテクチャ:Forward
17 AWSからGoogle Cloudへのデータ連携はAWS側はGlueでデータを収集し、Google Cloud側は Composerを中心にしてBigQuery上で変換処理を行なっています 参考:社内向けのデータ基盤から集計結果を Reverse ETLしてサービスに 組み込んだ話 https://tech.classi.jp/entry/2022/06/21/120000 AWSからGoogle Cloudへのデータ連携処理 AWS / Google Cloudを跨ぐジョブの実行状態の管理
Copyright © 2022 Classi Corp. All Rights Reserved. アーキテクチャ:Reverse
18 書き戻す処理は、集計対象のデータを同じくCloud Composerを使って集計し、Step Functionsから Lambdaのジョブをキックすることで、集計データをデータベースに格納します 参考:社内向けのデータ基盤から集計結果を Reverse ETLしてサービスに 組み込んだ話 https://tech.classi.jp/entry/2022/06/21/120000
ユーザー影響のある データ基盤を意識して変えたこと 04
Copyright © 2022 Classi Corp. All Rights Reserved. ユーザー影響のあるデータ基盤を意識して変えたこと
20 社内用の処理とユーザー影響のある処理の分離 ・Google Cloudのリソースの観点では、元々datalake用のprojectと社内 ユーザーが利用するprojectは分けてあった ・Cloud Composer上のワークフロー(DAG)では処理が混ざっていたの で、DAGの分離とコード整理をして気軽にデプロイしていい範囲とそう でない範囲をコードベースで分けた 変化 ① alert基準・通知の見直し ・想定外のことがあった時には、後続の処理でalertが飛べばいいとい うことで、alertを仕込めていなかった部分があったが、各処理ごとに alertが飛ぶようにした ・Error以外にも処理が遅れている時に気づくために遅延通知を導入し た 変化 ③ デプロイフローの強化 ・CIでのチェックの強化 ・devからprodに上げる際の運用の明文化 変化 ④ データ基盤のSLO計測・改善 ・もともと取り組んでいた「カント」プロジェクトで、計測・可視化を行い、 品質要件をダッシュボード機能の要件を元に基準にしている時刻・稼 働率を引き上げる改善サイクルを回した 変化 ② 元々は社内のデータ基盤だったところからユーザー影響が出る基盤になったことで、 変えたことは次の通りです
Copyright © 2022 Classi Corp. All Rights Reserved. DevOpsで実践する内容をデータ基盤で着実に実践した
21 • 「社内基盤だから」とか「データに依存するから 」という理由で怠りがちな環境の分離 などはもちろん のこと、関心の分離・SLOの計測/改善・監視/アラート設計・CI/CDの整備など、元々整えていた部 分をさらに強化することで、ユーザーに価値提供を行える基盤へと 進化した • 特に、Classiのデータエンジニアチームでは、 データ基盤のチーム開発を約2年ほど 実践しており、障害発生時のポストモーテムの実施や、開発スプリントの実践を行ってきた ReverseETLの本質は、「分析に止まらないデータによる価値提供」を行うということ システム間連携におけるサービスレベルの担保に求められることは 通常のプロダクト開発と変わらず行う必要がある
今後に向けた挑戦 05
Copyright © 2022 Classi Corp. All Rights Reserved. ユーザーに価値を提供し続けられる基盤を目指して
23 今年の2月に、データAI部内のミーティングで、次のようなタイトルで発表しました
24 Confidential Modern Data Stackの個人的な解釈 ・通常のプロダクト開発における開発ナレッジと、DevOpsのようなデリバリーを継続的に行うプラクティスの 成熟に伴い、データ基盤の要素技術である、データソース、連携、ワークフロー、ETL/ELT処理、AI、分析、 BI、メタデータ管理、ReverseETLなどがマネージドサービスなどで育ってきているため、 データ基盤も社内 ユースはもちろんのこと、プロダクトとして提供するコストが下がってきている
・「データで価値を提供するのが楽になってきている」 というコンテキストの中で 「データの価値提供の方法を 捉え直す」必要が出てきた
Copyright © 2022 Classi Corp. All Rights Reserved. ReverseETLは価値提供の手段の一つに過ぎない
25 データを価値としてデリバリーするコストが下がってきている中で、どのようなコンポーネントがあるのかを概 念として再整理することで、今できていること、できていないことを考えることができます。ReverseETLは「 価 値を提供するためのデータ基盤の要素の一つ 」に過ぎません。
Copyright © 2022 Classi Corp. All Rights Reserved. データプラットフォームチームで、価値をエ ンドユーザーにも向けていく方法を、データ
基盤の観点で整理して、設計したのが右 の図です Classiで目指す、Modern Data Stackを踏まえた1年後のデータ基盤 26 ReverseETLは「ユーザーに価値をデー タ基盤から届ける一つの手段」とし、こ れまで通りBIツールを通しての分析 や、新しく機械学習を用いて新規の サービスを提供する基盤構築に力を入 れています。 特に、より安定的でメンテナンスしやす い基盤の構築や、アジャイルに機械学 習のサービス開発を行うことができる ような基盤構築やセキュリティとデータ 分析の利便性のバランスに力を入れ ています。 現在力を入れていること
採用 06
Copyright © 2022 Classi Corp. All Rights Reserved. 28 これからのClasiのデータ基盤や機械学習を適用したサービスを支える
エンジニアが圧倒的に足りていません!
Copyright © 2022 Classi Corp. All Rights Reserved. 29 データ関連職種:募集職種
・社内およびプロダクトのためのデータ基盤の設計・開発・運用などを主に担当します。 ・今日の登壇内容のような開発などを、実際に行っていきます。 ・生徒の学習効率の最大化のための、レコメンド APIの開発・運用をデータサイエンティストと連携し て行います ・そのほかにもClassiの新規機械学習系サービス を支える基盤の開発を行います データエンジニア (リーダー/メンバー) 機械学習エンジニア
Copyright © 2022 Classi Corp. All Rights Reserved. 30 今日の話の続きをしたい方へ:カジュアルにお話ししましょー!
Classiの採用ページから応募いただいても大丈夫ですし、 まずはMeetyでカジュアルにお話しするのも大丈夫です! (もちろん、本日のイベントの詳細の部分について聞きたいなども歓迎!) Classiの採用ページ https://hrmos.co/pages/classi/jobs/0000096 Meetyページ https://meety.net/matches/rnBwfmjQQBAw
ご清聴ありがとうございました