オープンテーブルフォーマットを使ってトランザクションをサポートするデータレイクを構築しよう #ANT328 #reinvent
データアナリティクス事業本部の鈴木です。
AWS re:Invent 2022にて、セッション番号ANT328の『Build transactional data lakes using open-table formats in Amazon Athena』を聴講したのでレポートです。
セッションについて
登壇者
- Zhaoqin Ye, Sr. Software Engineer, Amazon Web Services
- Vijay Jain, Sr Product Manager, Amazon
Session level
300 - Advanced
Session type
Chalk Talk
セッション概要
Amazon Athenaを使ってどのようにTransactional data lakesを構築するかを学ぶことができるセッションです。 Transactional data lakesはCDCやGDPRに沿った個人情報の管理を伴う新しいユースケースにも対応が可能なモダンなデータ基盤で徐々に人気になりつつあります。Amazon AthenaではApache IcebergとApache Hudiのオープンテーブルフォーマットをサポートしており、ユーザーがS3に対してトランザクションを使うことができるようになります。このセッションではApache Icebergの機能を例に、どのようなことが可能で、どういう仕組みになっているのか学ぶことができました。
レポート
問題提起
データレイクでのデータ管理は、非常に時間がかかり大変な作業ですが、Athenaを使うことでそのコストを削減できます。
Icebergの機能を使うことにより、以下のようなことができるようになります。「一時テーブルに一時的なデータを作成する」「一元管理なデータガバナンスが行える」といったニーズに答えることを目的としているそうです。
Athenaには以下の特徴があり、データ管理の面で扱いやすいです。
AthenaとIcebergを使うことで、GDPRやCCPA(General Data Protection RegulationやCalifornia Consumer Privacy Act)に沿ったデータ管理にも有効です。
Icebergテーブルを使ったアプローチ
AWSでのAthenaを使ったIcebergの利用はGlue Data CatalogおよびS3にデータが登録されます。
例えばCTASでtable_type
を指定することで、Icebergフォーマットのテーブルを作成することができます。
最近ではMERGEもサポートしており、重複するデータセットをマージする場合は特に、データ複製が少なくて済むというメリットがあるそうです。
Icebergテーブルの仕組み
Icebergテーブルでどのようにデータが保持されているのかについても図を用いて説明頂きました。
なお、図の読み方についてはIcebergのドキュメントに同様の図があるので、こちらを読むと分かりやすいかもしれません。
以下について紹介頂きました。
- INSERTトランザクション
- DELETEトランザクション
- UPDATEトランザクション
- タイムトラベル
- スキーマ変更
- OPTIMIZE
- VACUUM
INSERTトランザクション
DELETEトランザクション
UPDATEトランザクション
タイムトラベル
スキーマ変更
OPTIMIZE
VACUUM
おわりに
ANT328の『Build transactional data lakes using open-table formats in Amazon Athena』のレポートでした。
まだIcebergフォーマットの導入を様子見されている方も多いかもしれませんが、こういったセッションをre:Inventで聞けたのはとてもよかったです。
詳細について気になる方は、ぜひ開発者ドキュメントをご確認頂ければと思います。
また、AWS workshop studioでAmazon Athena Workshop :: Hands on Labsが公開されているので、実際使い心地を知りたい方はこちらにもチャレンジしてみてください。