4
1

AWS Glue入門(1章 データ基盤とGlueの概要)

Last updated at Posted at 2024-08-29

はじめに

デジタル化が進む近年、企業は膨大な量と種類のデータを蓄積し分析することが可能になりました。その恩恵もありデータドリブン経営(データに基づいた経営)という経営手法を多くの企業は取り入れるようになりました。
データに基づいた客観的な判断をすることで、企業や経営者は多くのメリットを手に入れることができます。

蓄積されたデータを活用するためにはデータ基盤(データ活用基盤)が必要になります。データ基盤は一度構築すればそれで終わりではありません。企業活動の中で日々データの量や種類が増えていくため、性能の最適化や要件にあった設計やツールの導入などを常に検討していく必要があります。

本記事ではAWS上でデータ基盤を構築する上で重要な機能を提供するAWS Glueというサービスについていくつかの記事にわたって紹介します。

少しでもGlue導入のヒントになれば幸いです。

データ基盤とは

データ基盤とは、企業や組織がデータを収集・管理・分析するためのシステム群を意味します。

データ基盤には以下の4つの役割があります。

・データの収集
・データの蓄積
・データの加工
・データの分析

そして、一般的なデータ基盤は以下の3層構造になっています。

・データレイク
・データウェアハウス
・データマート

image.png
(引用元 : https://www.creativehope.co.jp/media/data-basis-process.html

必ずしも3層構造で設計するという決まりはありませんが、この3層構造はデータ基盤において最も基本的な形になるので、抑えておく必要があります。

データ基盤の4つの役割

データの収集

データを活用するためにはまずはデータを集める必要があります。
企業によっては複数のシステムを導入しているため、データが様々な場所に分散され管理されています。それぞれのシステムやデータベースからサイロ化されたデータを集める必要があります。

※サイロ化されたデータとは
情報システムなどのデータでも単体の利用目的を果たすために保存され、他のシステムと連携が取れていない分断された状態のデータ

データの蓄積

収集したデータはデータ基盤に蓄積をします。
データレイクを活用することで、構造化データ・半構造化データ・非構造化データなど様々なデータを一元管理することが可能になります。

データの加工

効率的なデータ分析を行うために、分析しやすい状態にデータを加工する必要があります。
データを適切に加工することは、データ分析時の処理能力や分析の精度に影響するため、とても重要な役割になります。

データの分析

最後にデータを分析します。
加工されたデータを意思決定する材料として利用しやすくするために、データの可視化をして分析を行います。
最近ではたくさんの便利な可視化・分析ツールやBIツールが提供されているため、適切なツール選定も大事なポイントです。また分析にAIを導入する企業も多くなってきました。

データ基盤の3層構造

データレイク

データレイクは、膨大なデータを生データのまま格納するための場所になります。構造化データ・半構造化データ・非構造化データなど、多種多様なデータをそのままの形式で保管します。そのため、データ活用の幅が広がります。
データレイクのデータにはデータウェアハウスやデータマートのように具体的な目的を持っているわけではなく、必要になったときのために蓄えておくという目的で保管されます。

データウェアハウス

データウェアハウスはデータレイクの生データが処理されたデータを保管する場所になります。
分析しやすいようにデータの構造化やフォーマットの変換、重複データの削除や文字コード変換などのクレンジング処理を加えたデータを保管します。そのため、横断的な分析、整合性のあるデータの格納ができます。
これらの処理はETLと呼ばれる処理で実装します。
ETLについては後ほど説明します。

データマート

データマートは、データの利用部門や用途、目的などに応じて必要なデータだけを抽出し、利用しやすい形に加工したうえで格納する場所になります。
情報が網羅的に格納されるデータウェアハウスとは異なり、データマートはデータを目的や用途ごとに小分けしたデータを保管します。そのため、迅速にデータを取り出し、分析を最適化することができます。

ETL処理

ETL処理とは、データを抽出(Extract)し、DWHに取り込みやすいフォーマットに変換・加工(Transform)し、DWHに書き出す(Load)という一連の処理を意味します。
それぞれの処理の頭文字を取ってETLと呼びます。

AWS Glueの概要

AWS Glueは、AWSにおけるサーバーレスでスケーラブルなデータ統合サービスです。Glueを使うことにより、AWS内外の複数のソースからデータを検出・準備・移動・統合することができるため、データ分析・機械学習やそのほかのデータを活用したアプリケーション開発を非常に便利に進めることができます。

AWS Glueが提供する機能は多岐に渡るため、Glueがどんなサービスなのかひとことで表現することは難しいです。

以下の図はAWS Glue環境のアーキテクチャになります。

image.png
(引用元 : https://docs.aws.amazon.com/glue/latest/dg/components-key-concepts.html

AWS Glueの主要な機能としては以下になります。
・Glueジョブ
・Glueデータカタログ

Glueジョブ

Glueジョブは、Pythonでプログラムを組むことでサーバレスでETL処理を実装できる機能です。
Lambdaと似たような機能ですが、GlueジョブはApache Spark環境で実行され、ETLに特化したビルドイン機能やデータ処理に適したリソースの提供もしてくれる、データ処理に特化した機能になります。
時間ベースのスケジュールやイベントをトリガーにしてジョブを実行することも可能です。

Glueデータカタログ

Glueデータカタログは、データのメタデータを保存する集中リポジトリです。
Glueデータカタログを使用することで、S3に保存されているCSVやParquetファイルなどの構造化データのスキーマ情報やファイルの保存場所などのメタデータを管理することができます。また、ETLジョブの定義に必要なその他のメタデータも含まれています。データの変更履歴なども保存できます。
手動でスキーマの定義をすること可能ですが、クローラーという機能を使用することでデータファイルから自動的にスキーマ情報を検出することも可能です。

さいごに

今回はデータ基盤とAWS Glueの概要について紹介しました。
次回以降はAWS Glueのそれぞれの機能について詳細に紹介したいと思います。

参考記事

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1