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
yuina
January 25, 2020
Technology
1
680
20200125-DB-ETL
yuina
January 25, 2020
Tweet
Share
More Decks by yuina
See All by yuina
20250118_NGK2025S_dam
yuina1056
0
160
switchbot_qol.pdf
yuina1056
0
40
20240127_dam_replace
yuina1056
0
14
20200118-dam
yuina1056
0
400
20190909_damdrive
yuina1056
0
88
20190513_ORM_DBLINK
yuina1056
0
90
20190511_DBLINK
yuina1056
0
76
20181027_datapump
yuina1056
0
130
今から始めるOracleDatabase
yuina1056
0
63
Other Decks in Technology
See All in Technology
AI エージェント活用のベストプラクティスと今後の課題
asei
1
260
改竄して学ぶコンテナサプライチェーンセキュリティ ~コンテナイメージの完全性を目指して~/tampering-container-supplychain-security
mochizuki875
1
390
現地速報!Microsoft Ignite 2025 M365 Copilotアップデートレポート
kasada
2
1.7k
単一Kubernetesクラスタで実現する AI/ML 向けクラウドサービス
pfn
PRO
1
350
SRE視点で振り返るメルカリのアーキテクチャ変遷と普遍的な考え
foostan
2
850
ローカルVLM OCRモデル + Gemini 3.0 Proで日本語性能を試す
gotalab555
1
140
マルチドライブアーキテクチャ: 複数の駆動力でプロダクトを前進させる
knih
0
9.7k
生成AIシステムとAIエージェントに関する性能や安全性の評価
shibuiwilliam
0
140
不確実性に備える ABEMA の信頼性設計とオブザーバビリティ基盤
nagapad
4
7.1k
AWS Media Services 最新サービスアップデート 2025
eijikominami
0
110
ABEMAのCM配信を支えるスケーラブルな分散カウンタの実装
hono0130
4
1.1k
雲勉LT_Amazon Bedrock AgentCoreを知りAIエージェントに入門しよう!
ymae
2
210
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
Statistics for Hackers
jakevdp
799
230k
A better future with KSS
kneath
239
18k
How GitHub (no longer) Works
holman
315
140k
KATA
mclloyd
PRO
32
15k
Optimizing for Happiness
mojombo
379
70k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Building Applications with DynamoDB
mza
96
6.8k
The Pragmatic Product Professional
lauravandoore
36
7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Embracing the Ebb and Flow
colly
88
4.9k
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. おわり