聴講しました。Glue について詳しくなかったので、非常に勉強になりました。また、Amazon.com の事例も非常に参考になりました。
データレイクとは何か?
- データ分析手法の種類
- 演繹的手法(データウェアハウス、データマートなど)
- 分析の要件・目的が明確である前提
- 上の要件に合わせてデータモデリングする
- ETL 処理
- 分析実行
- 帰納的手法(機械学習、深層学習など)
- 要件にかかわらず関連データを収集
- 上のデータを観察、パターン化
- 求められている分析に対する仮説化
- 分析、可視化、レポーティング
- 過去の事象の見える化をするのが前者、将来予測をするのが後者
- お互いデータを活用しあい、補完しあっていく関係である
- 演繹的手法(データウェアハウス、データマートなど)
- このようなビッグデータ基盤は大きく4つのエリアで定義される
- 収集
- 蓄積
- 処理/分析
- 可視化
- 「蓄積」パート(データレイク)が今日のテーマ
データレイクについて
- 統制を取らないと、各システムが各データを参照し合う形になり、
- 通信料が増加
- 各システムで作り込みが必要
- セキュリティ面の懸念
データレイク基盤を提供することで、下記を実現可能
- データ連携の重複防止
- アクセス制御
- 明確なデータ配置と検索
課題と要件
- ストレージコストの増加
- 大容量のデータを低コストで管理できるようにする
- セキュリティへの懸念
- セキュアで統制が取れていること
- 性能面
- 容易に検索でき、素早く収集できること
- ストレージコストの増加
データレイクアーキテクチャ
参考書籍:Data Lake Architecture
Data Lake Architecture: Designing the Data Lake and Avoiding the Garbage Dump (English Edition)
- 作者: Bill Inmon
- 出版社/メーカー: Technics Publications
- 発売日: 2016/03/31
- メディア: Kindle版
- この商品を含むブログを見る
3層構造でアーキテクチャを考える
- Archive Data Pond
- Analog / Application / Text Data Pond
- ETL ツールなどから取り込まれる
- Raw Data Pond
- 生データ保存層
データレイクを構成する 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 ツールから直接クエリを投げることもできる
- マネージメントコンソールから、スキャンデータ量なども確認可能
データレイクと各サービスの連動イメージ
下記のチュートリアルが紹介されていました。
事例
- Amazon.com
- 2,300のチームが利用している
- チーム平均49の表
- データレイクプロジェクトが立ち上がり、S3 を核とした Amazon のデータを集めておく正式な場所
- 課題
- どこにデータがあるか分からない
- データを利用するまでが大変
- データの鮮度が不明
- 解決:徹底したセルフサービス化
- 利用者が検索できるようにする
- 利用者が自分が必要なデータを登録できるようにする
- 利用者が更新頻度を設定(SQL の WHERE 句的に登録)できるようにする
- データレイク層と分析層の間に「発見」「登録」の層を置いているアーキテクチャ
- 2,300のチームが利用している