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
SpringBoot x TestContainerで実現するポータブル自動結合テスト
demaecan
0
120
生成AI開発案件におけるClineの業務活用事例とTips
shinya337
0
190
Beyond Kaniko: Navigating Unprivileged Container Image Creation
f30
0
110
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.4k
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
5
4.6k
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
160
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
370
怖くない!はじめてのClaude Code
shinya337
0
310
fukabori.fm 出張版: 売上高617億円と高稼働率を陰で支えた社内ツール開発のあれこれ話 / 20250704 Yoshimasa Iwase & Tomoo Morikawa
shift_evolve
PRO
1
450
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
940
論文紹介:LLMDet (CVPR2025 Highlight)
tattaka
0
240
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
220
Featured
See All Featured
Music & Morning Musume
bryan
46
6.6k
Navigating Team Friction
lara
187
15k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
720
BBQ
matthewcrist
89
9.7k
Building Adaptive Systems
keathley
43
2.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
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
ご清聴ありがとうございました