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
実践的データ基盤への処方箋輪読会_20220203
Search
Hiroaki ONO
February 03, 2022
Technology
0
730
実践的データ基盤への処方箋輪読会_20220203
Hiroaki ONO
February 03, 2022
Tweet
Share
More Decks by Hiroaki ONO
See All by Hiroaki ONO
改正個人情報保護法実務ガイドブック輪読会_20220316
hihihiroro
0
340
Kubernetesに入門したい
hihihiroro
47
15k
Dockerコマンド
hihihiroro
2
890
20170602_sqlstudy
hihihiroro
2
650
Other Decks in Technology
See All in Technology
DevinはクラウドエンジニアAIになれるのか!? 実践的なガードレール設計/devin-can-become-a-cloud-engineer-ai-practical-guardrail-design
tomoki10
3
1.3k
スケールアップ企業のQA組織のバリューを最大限に引き出すための取り組み
tarappo
4
930
Symfony in 2025: Scaling to 0
fabpot
2
190
ISUCONにPHPで挑み続けてできるようになっ(てき)たこと / phperkaigi2025
blue_goheimochi
0
140
KCD Brazil '25: Enabling Developers with Dapr & Backstage
salaboy
1
120
移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略
ryu955
2
410
IAMのマニアックな話 2025 ~40分バージョン ~
nrinetcom
PRO
8
920
一人QA時代が終わり、 QAチームが立ち上がった話
ma_cho29
0
290
ルートユーザーの活用と管理を徹底的に深掘る
yuobayashi
6
720
Amazon EKS Auto ModeでKubernetesの運用をシンプルにする
sshota0809
0
110
コード品質向上で得られる効果と実践的取り組み
ham0215
2
200
職種に名前が付く、ということ/The fact that a job title has a name
bitkey
1
240
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
Done Done
chrislema
183
16k
Statistics for Hackers
jakevdp
798
220k
Building a Modern Day E-commerce SEO Strategy
aleyda
39
7.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Automating Front-end Workflow
addyosmani
1369
200k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Code Review Best Practice
trishagee
67
18k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Transcript
Hiroaki ONO (@hihihiroro) 実践的データ基盤への処方箋 輪読会 2022/02/03 (2-5 〜 2-8)
サマリ • データベースからの収集方法 ◦ SQL 利用 ◦ ファイル経由 ◦ 更新ログ収集
• 収集方法はうまく使い分ける ◦ 取得元データベースの種類 ◦ データベースへの負荷 ◦ 予算 など
目次 2-5 SQLを利用したデータベース収集ではデータベースへの負荷を意識する 2-6 データベースの負荷を考慮したデータ収集では、エクスポートやダンプファイル活用を視野に入れる 2-7 更新ログ経由のデータベース収集はデータベースの負荷を最小限にしてリアルタイムに収集できる 2-8 各データベースの収集の特徴と置かれた状況を理解して使い分ける
目次 2-5 SQLを利用したデータベース収集ではデータベースへの負荷を意識する 2-6 データベースの負荷を考慮したデータ収集では、エクスポートやダンプファイル活用を視野に入れる 2-7 更新ログ経由のデータベース収集はデータベースの負荷を最小限にしてリアルタイムに収集できる 2-8 各データベースの収集の特徴と置かれた状況を理解して使い分ける
• 企業に重要なデータはDBへ蓄積されている ◦ 業務はコンピュータシステムで行われることがほとんど ◦ データ構造を決めて管理 ◦ データの一貫性を保つ • データの例
◦ 顧客との取引データ ◦ 商品や在庫のデータ ◦ 企業会計のデータなど 重要なデータはDBへ 本のページ p84
• メリット ◦ 実装が簡単で敷居が低い、開発できるエンジニアが多数 ◦ 取得対象をSQL で加工、絞り込みが可能 • デメリット ◦
取得元DB へ高い負荷がかかる ▪ データ収集クエリによるキャッシュ汚染 ▪ 長時間クエリによるリソース消費 ▪ ディスク容量枯渇によるシステム不安定 DBからの収集 SQL実行 (1/4) 本番DB から全件取得 本のページ p85-86
• ポイント ◦ 取得データが減るためデータ収集時間の削減が見込める ▪ データ追記型 : 追加されたデータを収集し挿入 ▪ データ更新型
: 更新されたデータを収集し更新、挿入 ◦ 取得の際にインデックスを利用しないと負荷軽減にはならない可能性あり DBからの収集 SQL実行 (2/4) 本番DB から一部取得 本のページ p87-89
DBからの収集 SQL実行 (3/4) 本番DB から並列取得 • ポイント ◦ 並列実行するためデータ収集時間の削減が見込める ▪
取得元のストレージの分散状況により遅くなる可能性あり ▪ 取得の際にインデックスを利用しないと負荷軽減にはならない可能性あり 本のページ p90-91
• ポイント ◦ クエリ収集専用DB なので負荷をあまり考える必要がない ▪ レプリカを作成するために費用、手間がかかる DBからの収集 SQL実行 (4/4)
レプリカDB から取得 本のページ p91-92
目次 2-5 SQLを利用したデータベース収集ではデータベースへの負荷を意識する 2-6 データベースの負荷を考慮したデータ収集では、エクスポートやダンプファイル活用を視野に入れる 2-7 更新ログ経由のデータベース収集はデータベースの負荷を最小限にしてリアルタイムに収集できる 2-8 各データベースの収集の特徴と置かれた状況を理解して使い分ける
DBからの収集 エクスポート • メリット ◦ SQL 実行よりもDB への負荷が小さい ◦ DB
によってはエクスポート時に絞り込みができることがある • デメリット ◦ エクスポートファイルがテーブルサイズより大きくなることがある ◦ SQL 実行ほどではないが DB への負荷がある 本のページ p93-94
DBからの収集 ダンプファイル • メリット ◦ SQL 実行よりもDB への負荷が小さい ◦ データの変換がいらないため
DB への負荷が小さい • デメリット ◦ 復元用DB を用意する必要がある ◦ ダンプ時に絞り込みなどができない 本のページ p94-95
目次 2-5 SQLを利用したデータベース収集ではデータベースへの負荷を意識する 2-6 データベースの負荷を考慮したデータ収集では、エクスポートやダンプファイル活用を視野に入れる 2-7 更新ログ経由のデータベース収集はデータベースの負荷を最小限にしてリアルタイムに収集できる 2-8 各データベースの収集の特徴と置かれた状況を理解して使い分ける
DBからの収集 更新ログ • メリット ◦ DB に対する負荷が小さい ◦ データ収集速度が向上、必要帯域が小さくて良い •
デメリット ◦ 専用の製品を使う必要がある ◦ 復元用DB の用意など構築が複雑化 本のページ p96-99 データに対する操作
DBからの収集 更新ログ CDC • メリット ◦ ほぼリアルタイムにDB のデータを収集 ◦ 復元用DB
が不必要 • デメリット ◦ 専用の製品を使う必要がある ◦ DB に更新が多い場合、収集が間に合わない可能性がある ◦ 処理が止まったときの再実行が困難 本のページ p100-102
目次 2-5 SQLを利用したデータベース収集ではデータベースへの負荷を意識する 2-6 データベースの負荷を考慮したデータ収集では、エクスポートやダンプファイル活用を視野に入れる 2-7 更新ログ経由のデータベース収集はデータベースの負荷を最小限にしてリアルタイムに収集できる 2-8 各データベースの収集の特徴と置かれた状況を理解して使い分ける
DBからの収集方法まとめ • 使い分けのコツ ◦ 取得元DB の重要度 ▪ 高・低 ◦ 使える予算
▪ 潤沢・不足 ◦ ユースケース ▪ リアルタイム収集 ▪ 取得データ削減 本のページ p102-104