【AWSオンラインセミナーメモ】AWS で構築するデータレイク基盤のアーキテクチャ #awsblackbelt

 聴講しました。Glue について詳しくなかったので、非常に勉強になりました。また、Amazon.com の事例も非常に参考になりました。

データレイクとは何か?

  • データ分析手法の種類
    • 演繹的手法(データウェアハウス、データマートなど)
      • 分析の要件・目的が明確である前提
      • 上の要件に合わせてデータモデリングする
      • ETL 処理
      • 分析実行
    • 帰納的手法(機械学習、深層学習など)
      • 要件にかかわらず関連データを収集
      • 上のデータを観察、パターン化
      • 求められている分析に対する仮説化
      • 分析、可視化、レポーティング
    • 過去の事象の見える化をするのが前者、将来予測をするのが後者
    • お互いデータを活用しあい、補完しあっていく関係である
  • このようなビッグデータ基盤は大きく4つのエリアで定義される
    • 収集
    • 蓄積
    • 処理/分析
    • 可視化
  • 「蓄積」パート(データレイク)が今日のテーマ

データレイクについて

  • 統制を取らないと、各システムが各データを参照し合う形になり、
    • 通信料が増加
    • 各システムで作り込みが必要
    • セキュリティ面の懸念
  • データレイク基盤を提供することで、下記を実現可能

    • データ連携の重複防止
    • アクセス制御
    • 明確なデータ配置と検索
  • 課題と要件

    • ストレージコストの増加
      • 大容量のデータを低コストで管理できるようにする
    • セキュリティへの懸念
      • セキュアで統制が取れていること
    • 性能面
      • 容易に検索でき、素早く収集できること

データレイクアーキテクチャ

データレイクを構成する AWS サービス

S3

  • データレイクとして期待される要件の多くを満たしている
    • 大容量で安価
    • 高い信頼性
    • 強固なセキュリティ
    • 安定した性能(サーバ台数などを利用者は考えなくてよい)

AWS Glue

  • Glue とは?
    • 収集とガバナンスの領域を担当する
    • データレイク基盤、分析基盤へのETL、プリプロセス化を行い、データ基盤のカタログ化を実施する
    • ETL 処理のための Python コードや Scala コードを生成する
    • 分散処理でジョブを実行
    • サーバレスなアーキテクチャ
  • Glue データカタログ
    • Hive メタストアで管理
    • データカタログのメタデータ(列、プロパティ、型、データURI、など)
      • テーブルスキーマであったり、テーブルに格納されているデータ量などが分かる
    • 自動カタログ化機能もある
      • データ変換ジョブの雛形が自動生成される(PySpark or Scala)
    • S3 と組み合わせることで、下記も含めて全ての要件が担保できる
      • 統制面
      • 該当オブジェクトの検索性

Amazon Redshift

  • フルマネージドのデータウェアハウスサービス
  • カラムな型DBエンジンによる高速な SQL 処理
  • Redshift Spectrum
    • S3 上においたファイルを外部テーブルとして直接参照可能

Amazon EMR(処理/分析パート)

  • データレイク基盤にアクセスする大規模分散処理環境を、数クリックで構築が可能
  • EMRFS: S3を HDFS のように扱う
    • 計算ノードとストレージを分離できる
    • クラスタ側のシャットダウンをしてもデータロストしない
    • 複数のクラスタ間でデータ共有が簡単
    • データの高い耐久性(S3側の話)

Amazon Athena(処理/分析パート)

  • データレイクに直接アクセスし、SQLによってインタラクティブに検索分析できる
  • インフラ管理が必要なし
  • JDBC 経由で BI ツールから直接クエリを投げることもできる
  • マネージメントコンソールから、スキャンデータ量なども確認可能

データレイクと各サービスの連動イメージ

 下記のチュートリアルが紹介されていました。

aws.amazon.com

事例

  • Amazon.com
    • 2,300のチームが利用している
      • チーム平均49の表
    • データレイクプロジェクトが立ち上がり、S3 を核とした Amazon のデータを集めておく正式な場所
    • 課題
      • どこにデータがあるか分からない
      • データを利用するまでが大変
      • データの鮮度が不明
    • 解決:徹底したセルフサービス化
      • 利用者が検索できるようにする
      • 利用者が自分が必要なデータを登録できるようにする
      • 利用者が更新頻度を設定(SQL の WHERE 句的に登録)できるようにする
        • データレイク層と分析層の間に「発見」「登録」の層を置いているアーキテクチャ