🎣

AWSでデータレイクを学ぶ その1

2023/04/18に公開

初めまして、アキと申します!
エンジニアとして働きだしてから早1年が経ち、「勉強はするんだけど、アウトプットはできていないな~。そうだ!記事を書いてみよう!」と思い、今回から投稿を始めようと思います。

私は普段はWEBエンジニアとして働いていますが、業務外の時間はWEBとは異なる分野についての学習をしています。今回からはAWSではじめるデータレイクを参考に、学習・アウトプットをしようと思います。

今回学習したこと

今回は、
■データレイクとは
■データウェアハウスとは
■ETL処理とは
についての確認を行いました。

データレイクとは

多様なデータを生データのまま保存しておく場所のこと。
メリットや特徴は、

  • データの取り込みが容易なため、すべてのデータを保存できる。
  • スキーマを事前に決める必要がないので柔軟性に富む。
  • 特定の目的に応じてデータを加工することができる。
    です。

データウェアハウスとは

データの倉庫という意味。分析に使うためのデータが保存される場所。

  • 生データではなく、加工されたデータを保管している。
  • 過去に入れたデータは変更せず、追記を行うことになる。
  • スタースキーマという設計を用いることで分析をより行いやすくしている。

スタースキーマに聞きなじみがなかったので、「ChatGPT」で壁打ちをしながら学習をしました。

スタースキーマとは

通常のテーブル設計(正規化されたテーブル)と異なるのは、データウェアハウスでの分析に特化したテーブル構成であること
スタースキーマは1つ以上のファクトテーブルと、複数のディメンションテーブルから構成される。

■ファクトテーブル

ビジネスで観測可能な値を格納するために使われる。
下記のカラムを持つ。

  • 数値データ: ビジネスプロセスで生成される計測可能な値を示す数値データ。例えば、売上金額、販売数量、利益、在庫数、クリック数など。
  • 外部キー: ディメンションテーブルとリンクするために使用されるキー。外部キーは、ディメンションテーブルの主キーに対応します。例えば、商品ID、顧客ID、店舗ID、日付IDなどがあり、ディメンションテーブルに紐づけられる。
  • 主キー(オプション): ファクトテーブルの一意な識別子。このカラムは必ずしも必要ではないが、ファクトテーブル内で各行を一意に識別するために使用されることがある。

■ディメンションテーブル

分析に利用するための属性データを格納する。

  • 店舗ディメンションテーブル: 店舗ID(主キー)、店舗名、地域、住所、電話番号、営業時間など、店舗に関する情報が含まれます。
  • 時間ディメンションテーブル: 日付ID(主キー)、日付、曜日、週、月、四半期、年、祝日フラグなど、時間に関する情報が含まれます。

ETL処理とは

分析や管理を行いやすくするために行う処理。
具体的には以下。

  • 抽出(Extract)
    データレイク、データウェアハウスを構成するためのデータを各システムから抽出する。
  • 変換(Transform)
    抽出したデータを分析しやすいように変換する。(スタースキーマ等)
  • ロード(Load)
    変換されたデータをデータレイクやデータウェアハウスに格納する。

データレイク→ETL処理→データレイクのメリット

生データを保存するはずのデータレイクに、なぜETL処理をしたデータを格納するんだろう…と思ったので、まとめました。
この「データレイク→ETL処理→データレイク」のメリットは以下のようなものらしいです。

  • 権限管理が行いやすい
    大半のユーザーは変換後のデータを参照するのに対し、生データに触れるのは一部のユーザーに限られるため。
  • Athenaのコスト削減
    ETL処理によって成形されたデータにクエリを実行することになるので、コスト削減につながる。(Athenaはスキャンデータの量に対して課金されるため)

以上

あまり取り留めない記事になってしまったなと反省してます。
まあ何事もトライアンドエラーですね。

Discussion