Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
MeetUP5_ETL_20230209
Search
BrainPad
April 28, 2023
Technology
620
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MeetUP5_ETL_20230209
BrainPad
April 28, 2023
More Decks by BrainPad
See All by BrainPad
OR学会2026年秋期大会_機械学習と数理最適化の融合による、配合レシピ最適化システム開発事例
brainpadpr
0
140
白金鉱業Meetup Vol.25 【初学者向け発表枠】「で、この施策って効いてるの」に答える効果検証の基礎 ~ATE / ATT / CATE / LATEを現場の問いに翻訳する~
brainpadpr
1
360
白金鉱業Meetup Vol.25 アウトカムが二値のデータに対するCausal Impact
brainpadpr
0
370
オペレーションズ・リサーチ学会「2026年秋季研究発表会」キャリアセッション発表資料 /Operations Research Society of Japan Career Session 2026f
brainpadpr
0
100
20260820_アウトカムが二値のデータに対するCausal Impact@LINEヤフー Data Science Share #2 / Causal Impact for Binary Outcomes
brainpadpr
3
1.5k
白金鉱業Meetup_Vol.24_「AIエージェントは分けるほど良い」は本当か? / Is it true that “the more you divide AI agents, the better”?
brainpadpr
2
720
「ビジネス現場でのデータ分析者」 東京大学 GCI 2026 Summer
brainpadpr
3
2.7k
BrainPad_DE_202604
brainpadpr
1
15k
BrainPad AAA_AIエージェントの社会実装する上での壁 / Barriers to the Social Implementation of AI Agents
brainpadpr
1
390
Other Decks in Technology
See All in Technology
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
5.9k
WasmをRustにする
sansantech
PRO
0
220
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
190
会社説明資料
persolserverworks
0
9.7k
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
3
870
その Valkey 使いこなしていますか?
onk
PRO
4
720
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1.2k
ゲームのリアルタイム通信から見た QUIC と MoQ
segadevtech
0
120
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
160
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
140
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
140
ハードウェアコンペでもAI駆動開発が進んでいる話
iotengineer22
1
710
Featured
See All Featured
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
490
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
sira's awesome portfolio website redesign presentation
elsirapls
0
450
Designing Powerful Visuals for Engaging Learning
tmiket
1
600
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
630
Design in an AI World
tapps
1
350
YesSQL, Process and Tooling at Scale
rocio
174
15k
The Language of Interfaces
destraynor
162
27k
Transcript
西尾 友佑 2023年2月9日 BrainPadエンジニアトーク#5 ETL-実例に基づくケーススタディ-
© BrainPad Inc. 2 • 名前: 西尾 友佑(Yusuke Nishio) •
所属: ブレインパッド プロダクトビジネス本開発部 ◦ 2016年7月より現職 • 登壇歴 ◦ PyCon JP 2018, 2020登壇 • 趣味 ◦ サッカー観戦/音楽鑑賞 • Twitter(@BrainPadProduct)の中の人 • BrainPadエンジニアトーク主宰 自己紹介
© BrainPad Inc. 3 • ETLとは • 生まれた背景 • 活用事例
• ETLを支える技術 • まとめ アジェンダ
ETLとは
© BrainPad Inc. 5 • Extract(抽出) Transform(変換) Load(格納)の略で データ統合時に発生する各プロセスの 頭文字をとったものです
ETLとは
© BrainPad Inc. 6 • ETL ◦ 抽出後に変換してから格納 ◦ DBの容量を逼迫しない
◦ 加工では開発の知識が必要になる • ELT ◦ 抽出後に格納してから変換 ◦ 取り込みのスピードが早い ◦ DBの容量を逼迫しやすい ETLとELTの違い
© BrainPad Inc. 7 • 決まった時間にお客様の環境にアクセスし データを取りに行くこともできます • ストレージにデータが置かれたタイミングを トリガーとして受け渡しすることもできます
データ受け渡し方法
生まれた背景
© BrainPad Inc. 9 プロダクトマップ 基幹システムデータ 顧客固有データ WEB アプリ アプリ
Push メール LINE データ統合 分析 可視化 意思決定 実行 オウンド データ ソーシャル データ パブリックDMP、データセラー、 位置情報、天候データなど Rtoasterタグ、SDK 各プロダクト実行ログ 外部 データ 個別 データ 広告媒体 データ 顧客接点 データ統合基盤(CDP) SNS 拡張分析ツール ソーシャルメディア 分析ツール マーケティングオートメーション(MA) パーソナライズ・レコメンド マッチングエンジン メッセージ(Push配信) 分析ツール スポンサードサーチ ディスプレイアドネットワーク (YDN)
© BrainPad Inc. 10 ETLのカバー範囲 基幹システムデータ 顧客固有データ WEB アプリ アプリ
Push メール LINE データ統合 分析 可視化 意思決定 実行 オウンド データ ソーシャル データ パブリックDMP、データセラー、 位置情報、天候データなど Rtoasterタグ、SDK 各プロダクト実行ログ 外部 データ 個別 データ 広告媒体 データ 顧客接点 データ統合基盤(CDP) SNS 拡張分析ツール ソーシャルメディア 分析ツール マーケティングオートメーション(MA) パーソナライズ・レコメンド マッチングエンジン メッセージ(Push配信) 分析ツール スポンサードサーチ ディスプレイアドネットワーク (YDN) 連携 連携 連携 連携
© BrainPad Inc. 11 • 元々action+と連携する時 いくつかの方法が用意されていた • どの方法も先方によるデータ加工が 必要となってしまうため加工部分を
action+側で担保して欲しいという要望があった • 上記の要望を叶えるためにETLが誕生 役割としてはaction+に対するETL部分を 担うことが主な目的であった 誕生
© BrainPad Inc. 12 • action+への連携に特化することで 各プロダクトで機能開発とは異なる汎用化仕切れない 連携業務の省力化に繋がった • ファイルの圧縮・解凍、カラム名の変更といった
本質的ではない細かいエッジケースへの対応を ETLに寄せることが出来た • 開発リソースを持たないクライアントからの 要望を拾うことが出来たことで 連携可能になるケースもあった 誕生
© BrainPad Inc. 13 • 基本は1日1回のバッチ処理です ◦ ポーリング機能もありニアリアルタイム起動も可能です • 状態を永続的に保存するものではありません
◦ データのステータスなどの情報は保持しません • 案件ごとに仕様が異なるため以下の情報は案件毎に算出します ◦ 初期費用・運用費・開発工数 • クライアントが設定変更するものではありません ◦ ETL担当エンジニアが実施します 弊社でのETL
活用事例
© BrainPad Inc. 15 • お客様がオンライン販売と実店舗販売、両方持っており、 実店舗での売上データもaction+に投入したい • お客様のシステムで持っているアイテムやユーザーデータをaction+に投入し たい
• action+からの出力ファイルを、お客様のシステムに連携したい • Rtoasterファミリー/Probance/Conomi等を導入したいが 各サービスとお客様側を連携する部分の開発が必要だ ◦ 具体例 ▪ ファイルの整形 ▪ データのフィルタ どんな時にETLを使うことを検討するのか
© BrainPad Inc. 16 基本イメージ • 他社環境に配置されたデータを加工して BrainPadの仲介用サーバーなど取得可能な環境にファイルを出力 他社環境 ETL
ファイル 取得 ↓ 連携用 ファイル 配置 仲介用 サーバー A A B B
© BrainPad Inc. 17 分割 • 分割して連携する 他社環境 ETL ファイル
加工 Aは そのまま Bは分割 仲介用 サーバー A B A B1 B2 B3
© BrainPad Inc. 18 統合 • 統合して連携する 他社環境 ETL ファイル
統合 仲介用 サーバー A B C
© BrainPad Inc. • 分割し複数のプロダクトに連携する 19 複数のプロダクトへ渡す 他社環境 ETL ファイル
加工 仲介用 サーバー s3 MAツール
© BrainPad Inc. 20 • お客様がオンライン販売と実店舗販売、両方持っており、実店舗での売上 データもaction+に投入したい • お客様のシステムで持っているアイテムやユーザーデータをaction+に投入し たい
• action+からの出力ファイルを、お客様のシステムに送りたい • Rtoasterファミリー/Probance/Conomi等を導入したいが 各サービスとお客様側を連携する部分の開発が必要だ ◦ 具体例 ▪ ファイルの整形 ▪ データのフィルタ どんな時にETLを使うことを検討するのか 主に各種加工について 話します
© BrainPad Inc. 21 • action+やinsight+から取得したデータを加工して BrainPadの仲介用サーバーや他社環境などへ出力します 各種加工(データアウトプット) データレイク ETL
トラッキング ログ取得 ↓ 連携用 ファイル 作成 tracking 仲介用 サーバー
© BrainPad Inc. • 他社環境に配置されたデータを加工して BrainPadの仲介用サーバーなど 取得可能な環境にファイルを出力 22 各種加工(データインポート) 他社環境
ETL ファイル 取得 ↓ 連携用 ファイル 作成 仲介用 サーバー
© BrainPad Inc. 23 • 出力結果そのままのフォーマットでは 実現出来ないプロダクト間連携をETLで加工することで プロダクト間連携時のハブ役割を果たします 各種加工(プロダクト間連携) ファイル
取得 ↓ 連携用 ファイル 作成 ETL
ETLを支える技術
© BrainPad Inc. 25 • 弊社でOSS化したライブラリcliboaを使用しています • cliboaとは ▪ BrainPad社内で開発・運用が行われていた
ETL処理機能の共通基盤部分を アプリケーションフレームワークとして 設計・実装し直したもの ◦ PyPi ▪ https://pypi.org/project/cliboa/ ◦ GitHub ▪ https://github.com/BrainPad/cliboa ▪ プルリクエストお待ちしています ETLを支える技術
© BrainPad Inc. 26 設定例 SFTPを使用してダウンロード S3へアップロード
© BrainPad Inc. 27 アーキテクチャ スケジュール登 録 プログラム アップロード スケジュール実
行 インスタンス 作成 実行 ↓ インスタンス終 了 プログラム 取得 ① ② ③ ④ ⑤ ⑥
まとめ
© BrainPad Inc. 29 • ETL自体は連携において必要不可欠なものです 都度開発していると対応コストがかかってしまいます • 汎用化しきれないケースも多いです •
モジュール化して対応コスト省力化を測ったり インスタンスを並列実行出来るように 都度改善し続けて今の状態があります • これからも改善を続けていきます まとめ