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
20200125-DB-ETL
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
yuina
January 25, 2020
Technology
710
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
230
switchbot_qol.pdf
yuina1056
0
47
20240127_dam_replace
yuina1056
0
22
20200118-dam
yuina1056
0
410
20190909_damdrive
yuina1056
0
98
20190513_ORM_DBLINK
yuina1056
0
96
20190511_DBLINK
yuina1056
0
82
20181027_datapump
yuina1056
0
140
今から始めるOracleDatabase
yuina1056
0
77
Other Decks in Technology
See All in Technology
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
230
ブラウザ研修 2026
recruitengineers
PRO
6
1.1k
2026-08-15 JAWS-UG 茨城 #16 Secrets ManagerにおけるSecret値の管理(Terraformの場合) / Secrets Manager Secrets
masasuzu
0
130
Model Studio CLI × Token Plan
maigo999
0
190
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9.1k
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
780
私がブラウザを自作したくなった理由
supurazako
1
240
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.4k
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
240
FDEの心得
noriakioji
5
6.1k
案件に一番詳しいAIを Amazon Bedrock AgentCore で作る ― 知見が知見を生むチームへ / Compounding Knowledge with AgentCore
yusukeshimizu
1
100
My broken English still works: speaking at global OSS events
naruoga
0
110
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6.2k
Thoughts on Productivity
jonyablonski
76
5.3k
A designer walks into a library…
pauljervisheath
211
24k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
Music & Morning Musume
bryan
47
7.3k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
990
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
890
Building an army of robots
kneath
306
46k
Paper Plane
katiecoart
PRO
2
53k
ラッコキーワード サービス紹介資料
rakko
1
4.4M
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. おわり