Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon Aurora Cluster Cloneを用いたDataLake構築

netprotections
April 07, 2023
370

Amazon Aurora Cluster Cloneを用いたDataLake構築

突撃!隣のデータ設計・活用勉強会 vol.1の登壇資料です。
https://stafes.connpass.com/event/273805/

netprotections

April 07, 2023
Tweet

Transcript

  1. Copyright(C) Net Protections,Inc. All Rights Reserved. 自己紹介 2 佐久間仁 Sakuma

    Jin 東京大学 情報理工学系研究科 博士課程中退。 大学院では自然言語処理を研究。 2021年4月にネットプロテクションズに新卒入社。 新卒1年目の時に機械学習の事業活用PJTを立ち上げ、 MLOpsの構築から事業適用までを行った。 現在は、data分析基盤チームのリーダーを務める。 株式会社ネットプロテクションズ データサイエンスグループ
  2. Copyright(C) Net Protections,Inc. All Rights Reserved. 目次 3 01 |

    Net Protectionsのdata分析環境 • なぜdata分析環境を作るのか? • Net Protectionsのdata分析環境 02 | Cluster Cloneを用いたDataLake連携 • 一般的なRDBからのDataLake連携 • Aurora Cluster Cloneの仕組み • Copy-on-write protocol • Step Functionを用いたOrchestration 03 | 副次的効果 • DataLake連携システムを誰が作るか? 04 | まとめ
  3. Copyright(C) Net Protections,Inc. All Rights Reserved. 一般的なRDBからのDataLake連携 8 SELECT *

    FROM … data upload 本番DB 定時batch S3 bucket シンプルなDataLake連携システムは以下の仕組み 1. 定時batchで本番DBにSQLを発行し、更新されたrecordを取得 2. 結果をparquetなどの形式に変換してS3 bucketにupload 3. S3 bucketに対してGlue Crawlerを実行しGlue Catalogを作成 本番DBに対して、大きな負荷がかかる
  4. Copyright(C) Net Protections,Inc. All Rights Reserved. Aurora Cluster Cloneを用いたDataLake連携 9

    SELECT * FROM … data upload 本番DB 定時batch S3 bucket 本番DBを「Clone」したDBから抽出する 1. 本番DBと同じ中身を持つ別のDB(Clone DB)を作成 2. 定時batchでClone DBにSQLを発行し、更新されたrecordを取得 3. 結果をparquetなどの形式に変換してS3 bucketにupload 4. S3 bucketに対してGlue Crawlerを実行しGlue Catalogを作成 本番DBの負荷がほぼ0になる Clone DB clone
  5. Copyright(C) Net Protections,Inc. All Rights Reserved. DB Restore Read Replica,

    DB Restoreとの比較 10 Read Replica Cluster Clone 非同期 replication DB Read Replica Data Data copy Data DB Clone DB DB Restored DB Cluster CloneはRead ReplicaやDB Restoreと近い機能 常にMain DBをRead Replicaに同期 一部のデータの実体を共有 データの実態をコピー
  6. Copyright(C) Net Protections,Inc. All Rights Reserved. Read Replicaではダメなのか? 11 replication

    DB Read Replica Read ReplicaでSELECT文実行中に同期が走ると整合性が保てない Read ReplicaのSELECTがWriterをlockすることがある SELECT … UPDATE …
  7. Copyright(C) Net Protections,Inc. All Rights Reserved. Copy-on-write protocol 12 Clone

    clusterを作成すると、Pageを共有する新しいDBが作成される データのコピーが必要なく、高速・低コスト Page1 Page2 Page3 本番DB Clone DB Clone
  8. Copyright(C) Net Protections,Inc. All Rights Reserved. Copy-on-write protocol 13 Clone

    DBに対してSELECTすると、共有している本番DBのpageからデータを持ってくる Page1 Page2 Page3 本番DB Clone DB SELECT … 定時batch data
  9. Copyright(C) Net Protections,Inc. All Rights Reserved. Copy-on-write protocol 14 Page1

    Page2 Page3 本番DB Clone DB SELECT … 本番DBの変更は、対象Pageをコピーしてから書き込む 定時batch data Page1’ UPDATE … Clone DBがSELECT文を実行中でもLockなく書き込める
  10. Copyright(C) Net Protections,Inc. All Rights Reserved. Cluster Cloneのメリット・デメリット 15 完全に個別のDB

    Instanceなので、本番DBへの負荷がほぼ0 データのコピーがないため、DBサイズの依存せず高速に立ち上がる 変更のないPageは共有するので、Storageの削減 本番DBへの更新はClone DBに反映されない
  11. Copyright(C) Net Protections,Inc. All Rights Reserved. DataLake連携システムを誰が作るか? 17 DataLake連携は「事業システム」と「データ分析環境」をつなぐシステム Data

    Scienceチーム 事業システム 開発チーム DataLake 連携 DataLake data warehouse data分析環境 事業システム 分析メンバー
  12. Copyright(C) Net Protections,Inc. All Rights Reserved. 事業システム開発チームが作る場合 18 全ての事業の開発チームにDataLake連携システムの開発依頼をすることになる Data

    Scienceチーム 事業システム 開発チーム DataLak e連携 DataLake data warehouse data分析環境 事業システム 分析メンバー ドメイン外の領域で事業ごとに車輪の再開発が発生
  13. Copyright(C) Net Protections,Inc. All Rights Reserved. Data Scienceチームが作る場合 19 本番DBにアクセスするシステムを事業システム開発チーム外で開発することになる

    Data Scienceチーム 事業システム 開発チーム DataLake 連携 DataLake data warehouse data分析環境 事業システム 分析メンバー DB負荷についてコミュニケーションが多く発生し、非効率
  14. Copyright(C) Net Protections,Inc. All Rights Reserved. Cluster Cloneによりコミュニケーションを減らす 20 事業システムのDBに負荷をかけないので、細かい変更でコミュニケーションが発生しない

    Data Scienceチーム 事業システム 開発チーム DataLake 連携 DataLake data warehouse data分析環境 事業システム 分析メンバー Data Scienceチームが自立して開発可能に Clone DB
  15. Copyright(C) Net Protections,Inc. All Rights Reserved. 今日のまとめ 22 Aurora Cluster

    Clone • 独立したDBなので、本番DBへの影響をほぼ0でDataLake連携システムが作れる • Clone作成時にデータのコピーをしないため、高速+低コスト Copy-on-write Protocol • できるだけデータは共有しつつ、DB間の影響をなくす仕組み • 書き込みのあったPageをコピーしてから書き込む DataLake連携システムを誰が作るのか? • 事業システム開発チームとData Scienceチームの間に落ちがちなタスク • 本番DBへの影響が少なくなることで、Data Scienceチームが独立して作りやす い