omuronの備忘録

個人的な備忘録

「AKIBA.AWS ONLINE #07 - データ分析 編-」 #AKIBAAWS 受講メモ

AKIBA.AWS ONLINE #07 - データ分析 編-

dev.classmethod.jp

データ分析したいんだけどどこからやればいいものか...ということで受講しました。

セッション

サーバーレスなデータ分析基盤の紹介

データアナリティクス事業本部 梶原裕さん

  • データの収集と蓄積、分析を行う仕組み
    • 蓄積: Redshift, S3
    • 収集: EC2, Lambda, Glue, StepFunctions
      • EC2 は本質的じゃない部分(メンテとか)がしんどい
      • Glue シンプルでスケーラブルなサーバレスデータ統合基盤、Lambda と違い15分以上処理可能
      • Lambda クロスリージョンで発火できないのは注意、SNS 必要
      • StepFunctions を利用して組み合わせていく
  • アーキテクチャ
    • Lambda -> SNS -> SQS -> Lambda(StepFunctions) -> DynamoDB
      • StepFunctions: S3 -> Glue -> Redshift

Redshift内のデータの活用をAthenaにオフロードしてみた

データアナリティクス事業本部 鈴木那由太さん

  • Redhift に BI ツールがアクセスするケースから変える
    • Redhift から S3 に出力して Athena からアクセスするようにしたい
      • Athena のフェデレーテッド・クエリで、横串検索ができる
      • Athena を BI ツールでアクセス
  • アンロード
    • UNLOAD コマンドにより SQL で Redshift のデータを S3 にエクスポート可能
      • 再アンロードしたくなったらどうする?
        • CLEANPATH オプション利用する
        • PARTITION BY 句と組み合わせると指定したパーティションのみファイル削除
        • WHERE 句を変えるだけで用意に差分変更可能
  • 検索
    • Athena から S3 に対して SQL でクエリを実行
    • データをパーティション分割して、列指向データ・フォーマットにして、コスト改善できる
      • どうやってパーティション分割する?
        • Athena 側で計算、パーティション射影
          • テーブルにパーティションキーのルールやフォーマットを設定して Athena で計算
          • 日付型: 日付の範囲とフォーマットを定義して値を日付として解釈
          • 列挙型: 列挙のメンバーを定義し値を解釈
          • 挿入型: クエリの WHERE 句で単一の値を指定
        • Glue データカタログに登録参照する
  • まとめ

S3にあるデータをAthenaのクエリで取得してLambda ( Pandas ) で加工してみた

データアナリティクス事業本部 笠原宏さん

  • Athena クエリでデータ取得
    • スキーマ定義で Glue Data Catalog が利用できる
  • Athena を利用するケース
    • Athena をつかって S3 内の大量のデータから抽出したい
    • パーティション化してフィアル格納
    • 複数ファイルに分散されている一部利用
  • S3 にある Parguet データを Athena クエリで取得
    • Athena クエリ実行結果を Lambda で取得
      • Lambda の Pandas データフレームに加工できれば Pandas を操作してデータ加工できる
  • AWS Data Wrangler が便利

所感

想像以上に理解できませんでした😇
Glue 使いたいなーと思ってるだけで、触ってないのでちゃんとわかってない。
Redshift も知ってるだけで操作したこと無い。
とりあえず、キーワードだけ拾っといてそれぞれを調査実装復習しないと進展なさそうです。