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
20200125-DB-ETL
Search
yuina
January 25, 2020
Technology
720
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20200125-DB-ETL
yuina
January 25, 2020
More Decks by yuina
See All by yuina
20250118_NGK2025S_dam
yuina1056
0
240
switchbot_qol.pdf
yuina1056
0
50
20240127_dam_replace
yuina1056
0
23
20200118-dam
yuina1056
0
420
20190909_damdrive
yuina1056
0
110
20190513_ORM_DBLINK
yuina1056
0
97
20190511_DBLINK
yuina1056
0
83
20181027_datapump
yuina1056
0
140
今から始めるOracleDatabase
yuina1056
0
79
Other Decks in Technology
See All in Technology
ai_cording_with_k8s_knowledge.pdf
mochizuki875
1
340
しろおびから始める!ログ活用の第一歩
shumei_ito
0
910
Loop Engineering, beyond prompt, context, and harness engineering
glaforge
0
100
DGX Spark でどこまでハッキングができるのか?
kash1064
0
1.1k
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
150
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
2
550
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
0
250
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
360
Essential architectural thinking (revised edition)
ufried
0
120
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
180
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
390
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
600
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
sira's awesome portfolio website redesign presentation
elsirapls
0
450
Building the Perfect Custom Keyboard
takai
2
900
Everyday Curiosity
cassininazir
0
350
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
Documentation Writing (for coders)
carmenintech
77
5.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
HDC tutorial
michielstock
2
960
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
370
Build your cross-platform service in a week with App Engine
jlugia
234
19k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
560
Transcript
第28回 中国地方DB勉強会 in 岡山 マイクロサービスをBIで可視化する
Copyright © PREVENT Inc. All rights reserved. 自己紹介 和田 菜月
(ゆいな) / @yuina1056 株式会社 PREVENT バックエンドエンジニア兼なんでも屋さん Ruby on Rails / Go / PostgreSQL DB勉強会 in 愛知 (主催) しがないラジオ sp.61a,b (ゲスト出演) #成し遂げたいam ep15,16 (ゲスト出演)
Copyright © PREVENT Inc. All rights reserved. 自己紹介 和田 菜月
(ゆいな) / @yuina1056 株式会社 PREVENT バックエンドエンジニア兼なんでも屋さん Ruby on Rails / Go / PostgreSQL DB勉強会 in 愛知 (主催) しがないラジオ sp.61a,b (ゲスト出演) #成し遂げたいam ep15,16 (ゲスト出演)
Copyright © PREVENT Inc. All rights reserved. 自己紹介
Copyright © PREVENT Inc. All rights reserved. 自己紹介 和田 菜月
(ゆいな) / @yuina1056 株式会社 PREVENT バックエンドエンジニア兼なんでも屋さん Ruby on Rails / Go / PostgreSQL DB勉強会 in 愛知 (主催) しがないラジオ sp.61a,b (ゲスト出演) #成し遂げたいam ep15,16 (ゲスト出演)
Copyright © PREVENT Inc. All rights reserved. 自己紹介 和田 菜月
(ゆいな) / @yuina1056 株式会社 PREVENT バックエンドエンジニア兼なんでも屋さん Ruby on Rails / Go / PostgreSQL DB勉強会 in 愛知 (主催) しがないラジオ sp.61a,b (ゲスト出演) #成し遂げたいam ep15,16 (ゲスト出演) ダムはいいぞ!!!
Copyright © PREVENT Inc. All rights reserved. 自己紹介 丸山ダム(岐阜)
Copyright © PREVENT Inc. All rights reserved. ある日のこと…
Copyright © PREVENT Inc. All rights reserved. ある日のこと… 社内に存在する情報を分析して 経営戦略を立てたい。
Copyright © PREVENT Inc. All rights reserved. ある日のこと… 社内に存在する情報を分析して 経営戦略を立てたい。
それならBIツール作りましょう!!!
Copyright © PREVENT Inc. All rights reserved. システム構成を考える
Copyright © PREVENT Inc. All rights reserved. システム構成を考える データソースとして PostgreSQL繋げられるじゃん!!!
Google Data Studioいいじゃん!!!
Copyright © PREVENT Inc. All rights reserved. システム構成予定 顧客管理システム Mystar-API
その他システム BI用DB GoogleDataStudio 1PTUHSF42-
Copyright © PREVENT Inc. All rights reserved. 各システムをBI用DBに繋ぐ 最初に思いついたこと・・・
Copyright © PREVENT Inc. All rights reserved. 各システムをBI用DBに繋ぐ 最初に思いついたこと・・・ FDWでBI用のDBに繋げばいいじゃん!!!!!
Copyright © PREVENT Inc. All rights reserved. 各システムをBI用DBに繋ぐ しかし問題が・・・
Copyright © PREVENT Inc. All rights reserved. 各システムをBI用DBに繋ぐ しかし問題が・・・ •
顧客管理システム、Mystar-APIには 個人情報、要配慮個人情報が含まれている。 →BIツールはGoogleDataStudioを使用するため 外部ツールに個人情報、要配慮個人情報を渡したくない。 • そのままFDWしてしまった場合、DBのリレーションを知っていないと 誰にでも分かるようには可視化できない →該当システム開発者orDB管理者への依存が強い • 今後、データサイエンスチームへ解析データセットとして渡したい →使用しているテーブルを非正規化した形で持たせておきたい
Copyright © PREVENT Inc. All rights reserved. 各システムをBI用DBに繋ぐ どうしたか?
Copyright © PREVENT Inc. All rights reserved. 各システムをBI用DBに繋ぐ どうしたか? ETL処理基盤の実装
Copyright © PREVENT Inc. All rights reserved. 各システムをBI用DBに繋ぐ 各システムへのDBアクセスは全てETL基盤から実施 顧客管理システム
Mystar-API その他システム ETL基盤 BI用DB
Copyright © PREVENT Inc. All rights reserved. 各システムをBI用DBに繋ぐ 各システムへのDBアクセスは全てETL基盤から実施 顧客管理システム
PostgreSQL Mystar-API mongoDB その他システム PostgreSQL ETL基盤 BI用DB #*༻%#ͱͷ %#-*/, ௨ৗଓ
Copyright © PREVENT Inc. All rights reserved. 各システムをBI用DBに繋ぐ RDBをDBLINKで接続した理由
Copyright © PREVENT Inc. All rights reserved. 各システムをBI用DBに繋ぐ RDBをDBLINKで接続した理由 •
Golangで実装したフルスクラッチのETL基盤 →使用ライブラリの都合上DBのコネクションを複数保持できない • ETL処理でデータを取得するタイミング以外は他システムと 接続している必要はない
Copyright © PREVENT Inc. All rights reserved. 各システムをBI用DBに繋ぐ ETL基盤で行っていること
Copyright © PREVENT Inc. All rights reserved. 各システムをBI用DBに繋ぐ ETL基盤で行っていること •
個人情報に当たる箇所の削除 →該当するカラムはDBからデータを取得するタイミングで対象から外す • JOINによるテーブルの非正規化 →BIで表示するために必要なデータを元のDBベースでJOIN 場合によってはBI用DBのテーブルにJOINして別テーブルへ • DB内データのクレンジング →stringで保持している日付データを本来のDate型、Datetime型へ statusの情報を日本語に変換 etc…
Copyright © PREVENT Inc. All rights reserved. 課題 • データ更新をかけるタイミングでupsertがうまく動かない
→元システムで入力内容を消去する等null更新をした時にupsertが うまく動作しない… • 仕組み上、BIのリアルタイム更新が行えない。 →FDWでやればリアルタイム更新はできるが、個人情報どうする?
Copyright © PREVENT Inc. All rights reserved. まとめ • ETL基盤自体をスクラッチで実装することはめったに無い
→とても良い経験になった • もっと良い方法がありそうな気がする →知見がある方と情報交換したい
Copyright © PREVENT Inc. All rights reserved. おわり