概要
- -> データエンジニアリング実践も参照
選定ポイント
- MPPデータベースは、最初にETLプロセスなどでデータを取り込むための手順が必要
- Hiveは大規模なバッチ処理を着実に実行することに長けたクエリエンジン
- PrestoはHiveとは逆で、速い分、エラーが起きると最初からやり直す
- データの構造化は、HiveやSpark
- 1レコード500バイトと仮定すると、1千万レコードで5GBで、それくらいならRDBをデータマートにするのが良い
補足
- ポイントは
- データ保存量の拡張手段(制約がないか)
- データの取り出し手段
- 分散ストレージとしてNoSQLを使うときもある
- オブジェクトストレージに格納するデータは、1MB~1GBくらいが良い
- データフローは、分散ストレージに格納した後から
- オブジェクトストレージなどからデータ読み込んで、構造化されたテーブルを作成する
- ETLプロセスの一種
- Glue
- 「S3のデータファイルから、AWS Redshift Spectrum と AWS Athenaのテーブルを作成する」ツール
- Glueでデータカタログと呼んでいるテーブル定義は、Apache Hive のTableのことで、 Glueは、S3のファイルから、Hive Tableを作るツール
- Glueはクローリングによるテーブル定義作成・更新に加えて、Apache Sparkを使って、プログラミングにより、ユーザーがより細かくデータ加工することもできます。
- AWS GlueのジョブにはSparkとPython Shellの2つのジョブタイプがあります。
- Sparkジョブではutf-8形式のデータのみにしか対応していない
- Athena
- データマートは集約と可視化の間に挟む
- Hive metastoreは内部でPostgresを使ったりする