Hiroaki ONO (@hihihiroro)実践的データ基盤への処方箋 輪読会2022/02/03 (2-5 〜 2-8)
View Slide
サマリ● データベースからの収集方法○ SQL 利用○ ファイル経由○ 更新ログ収集● 収集方法はうまく使い分ける○ 取得元データベースの種類○ データベースへの負荷○ 予算 など
目次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
DBからの収集 エクスポート● メリット○ SQL 実行よりもDB への負荷が小さい○ DB によってはエクスポート時に絞り込みができることがある● デメリット○ エクスポートファイルがテーブルサイズより大きくなることがある○ SQL 実行ほどではないが DB への負荷がある本のページ p93-94
DBからの収集 ダンプファイル● メリット○ SQL 実行よりもDB への負荷が小さい○ データの変換がいらないため DB への負荷が小さい● デメリット○ 復元用DB を用意する必要がある○ ダンプ時に絞り込みなどができない本のページ p94-95
DBからの収集 更新ログ● メリット○ DB に対する負荷が小さい○ データ収集速度が向上、必要帯域が小さくて良い● デメリット○ 専用の製品を使う必要がある○ 復元用DB の用意など構築が複雑化本のページ p96-99データに対する操作
DBからの収集 更新ログ CDC● メリット○ ほぼリアルタイムにDB のデータを収集○ 復元用DB が不必要● デメリット○ 専用の製品を使う必要がある○ DB に更新が多い場合、収集が間に合わない可能性がある○ 処理が止まったときの再実行が困難本のページ p100-102
DBからの収集方法まとめ● 使い分けのコツ○ 取得元DB の重要度■ 高・低○ 使える予算■ 潤沢・不足○ ユースケース■ リアルタイム収集■ 取得データ削減本のページ p102-104