はじめに
デジタル化が進む近年、企業は膨大な量と種類のデータを蓄積し分析することが可能になりました。その恩恵もありデータドリブン経営(データに基づいた経営)という経営手法を多くの企業は取り入れるようになりました。
データに基づいた客観的な判断をすることで、企業や経営者は多くのメリットを手に入れることができます。
蓄積されたデータを活用するためにはデータ基盤(データ活用基盤)が必要になります。データ基盤は一度構築すればそれで終わりではありません。企業活動の中で日々データの量や種類が増えていくため、性能の最適化や要件にあった設計やツールの導入などを常に検討していく必要があります。
本記事ではAWS上でデータ基盤を構築する上で重要な機能を提供するAWS Glueというサービスについていくつかの記事にわたって紹介します。
少しでもGlue導入のヒントになれば幸いです。
データ基盤とは
データ基盤とは、企業や組織がデータを収集・管理・分析するためのシステム群を意味します。
データ基盤には以下の4つの役割があります。
・データの収集
・データの蓄積
・データの加工
・データの分析
そして、一般的なデータ基盤は以下の3層構造になっています。
・データレイク
・データウェアハウス
・データマート
(引用元 : 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環境のアーキテクチャになります。
(引用元 : 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のそれぞれの機能について詳細に紹介したいと思います。
参考記事