🎣
AWSでデータレイクを学ぶ その1
初めまして、アキと申します!
エンジニアとして働きだしてから早1年が経ち、「勉強はするんだけど、アウトプットはできていないな~。そうだ!記事を書いてみよう!」と思い、今回から投稿を始めようと思います。
私は普段はWEBエンジニアとして働いていますが、業務外の時間はWEBとは異なる分野についての学習をしています。今回からはAWSではじめるデータレイクを参考に、学習・アウトプットをしようと思います。
今回学習したこと
今回は、
■データレイクとは
■データウェアハウスとは
■ETL処理とは
についての確認を行いました。
データレイクとは
多様なデータを生データのまま保存しておく場所のこと。
メリットや特徴は、
- データの取り込みが容易なため、すべてのデータを保存できる。
- スキーマを事前に決める必要がないので柔軟性に富む。
- 特定の目的に応じてデータを加工することができる。
です。
データウェアハウスとは
データの倉庫という意味。分析に使うためのデータが保存される場所。
- 生データではなく、加工されたデータを保管している。
- 過去に入れたデータは変更せず、追記を行うことになる。
- スタースキーマという設計を用いることで分析をより行いやすくしている。
スタースキーマに聞きなじみがなかったので、「ChatGPT」で壁打ちをしながら学習をしました。
スタースキーマとは
通常のテーブル設計(正規化されたテーブル)と異なるのは、データウェアハウスでの分析に特化したテーブル構成であること
スタースキーマは1つ以上のファクトテーブルと、複数のディメンションテーブルから構成される。
■ファクトテーブル
ビジネスで観測可能な値を格納するために使われる。
下記のカラムを持つ。
- 数値データ: ビジネスプロセスで生成される計測可能な値を示す数値データ。例えば、売上金額、販売数量、利益、在庫数、クリック数など。
- 外部キー: ディメンションテーブルとリンクするために使用されるキー。外部キーは、ディメンションテーブルの主キーに対応します。例えば、商品ID、顧客ID、店舗ID、日付IDなどがあり、ディメンションテーブルに紐づけられる。
- 主キー(オプション): ファクトテーブルの一意な識別子。このカラムは必ずしも必要ではないが、ファクトテーブル内で各行を一意に識別するために使用されることがある。
■ディメンションテーブル
分析に利用するための属性データを格納する。
- 店舗ディメンションテーブル: 店舗ID(主キー)、店舗名、地域、住所、電話番号、営業時間など、店舗に関する情報が含まれます。
- 時間ディメンションテーブル: 日付ID(主キー)、日付、曜日、週、月、四半期、年、祝日フラグなど、時間に関する情報が含まれます。
ETL処理とは
分析や管理を行いやすくするために行う処理。
具体的には以下。
- 抽出(Extract)
データレイク、データウェアハウスを構成するためのデータを各システムから抽出する。 - 変換(Transform)
抽出したデータを分析しやすいように変換する。(スタースキーマ等) - ロード(Load)
変換されたデータをデータレイクやデータウェアハウスに格納する。
データレイク→ETL処理→データレイクのメリット
生データを保存するはずのデータレイクに、なぜETL処理をしたデータを格納するんだろう…と思ったので、まとめました。
この「データレイク→ETL処理→データレイク」のメリットは以下のようなものらしいです。
- 権限管理が行いやすい
大半のユーザーは変換後のデータを参照するのに対し、生データに触れるのは一部のユーザーに限られるため。 - Athenaのコスト削減
ETL処理によって成形されたデータにクエリを実行することになるので、コスト削減につながる。(Athenaはスキャンデータの量に対して課金されるため)
以上
あまり取り留めない記事になってしまったなと反省してます。
まあ何事もトライアンドエラーですね。
Discussion