データレイクをどうするかを考える機会があったのでシュッとメモ :memo:

現在データマートを作るための、生データの参照先として、日時でとったsnapshotからrestoreしたDBを構築している(レポーティングDBと呼称している TODO: レポーティングDBとよんでいる理由?)。 が、DBのrunning costも馬鹿にならないし、マイクロサービスの文脈でボンボン新たなDBが映えるたびに1:1でレポーティングDBをボンボン増やすのもなぁ、ということで、S3をデータレイクにするパターンを検証した。

検証といってもやったことは単純で、今年1月に発表されたRDS snapshotをS3にエクスポートする機能を使い、snapshotをparquet化。 Glueクローラを用いてS3からスキーマ検出/Athena上でテーブル化された状態でembulk-input-athenaを用いてBQに投げることができるのを確認した。

唯一ハマったのは、S3へのexport時デフォルトでKMSによって暗号化されているためS3を参照するロールにKMSのDecrypt権限 "kms:Decrypt" が必要になる点。