AWSエンジニアのためのブログメディア

AWS Glueとは?AWS Glueのメリットや利用ケース等を紹介します!
目次
「AWS Glue」の概要
最初に「AWS Glue」についての説明と、それを理解するために必要な背景や「ETL」等の関連する用語について解説していきます。
AWS上のデータ間のやり取りを管理している「仲介者」としての特徴をしっかり捉えていきましょう。
「AWS Glue」とは?
「AWS Glue」とは、AWS(Amazon Web services)が提供しているフルマネージド型の「ETL(Extract:抽出、Transform:変換、Load:書込)」サービスです。※「ETL」は後述します。
この「Glue」というのは「接着剤」を意味しています。つまりデータ分析を行う際に、「AWS S3」、「Amazon RDS」、「Amazon Redshift」等の各種AWSサービス間の連携を仲介することで結びつけるという役割を示しています。
「フルマネージド型」というのは、Webサイト等を運用する際に必要となるサーバ機器やOS等のインフラ管理をAWS側で受け持ってくれることで、提供するサービスの利用のみに専念できるというサービスタイプのことです。
「ETL」とは?
「ETL」とは、「Extract:抽出」、「Transform:変換」、「Load:書込(ロード)」の頭文字をつなげたものです。
データソースからデータを「抽出」し、データフォーマットを揃えるように「変換」し、「データウェアハウス(DWH)」やデータベース等に「書込」して蓄積するまでの一連の操作のことです。
特に、「ビジネス・インテリジェンス(BI)」用にDWHを構築する際には必須のプロセスとして知られています。
ビジネスでデータ分析を行う際には、DWHにフォーマットを揃えてデータを蓄積していく必要があります。ビジネス用の分析では、種々雑多なフォーマットのデータを収集する必要があります。しかしデータのフォーマットがバラバラのままではBIツール等で分析できません。
そこで、データを集めて一定のフォーマットに変換しながら統合していく処理が必要となります。「AWS Glue」は、こういった処理のためのETLツールを含めた包括的なサービスとなっています。
「ETLツール」の具体的な処理内容
それでは、ETLツールの具体的な処理内容(「抽出」、「変換・加工」、「書込」)について解説していきます。
「抽出(Extract)」とは、情報元となるファイルやデータベース等の「データソース」から、一定の条件の元にデータを取得することです。
一般的にデータソースのデータ量は膨大になります。そのため、利用目的を明確にしてデータ分析に必要なものに絞り込むことで、データの抽出効率を向上させることがポイントとなってきます。
「変換・加工(Transform)」とは、抽出したデータに対してフォーマットの変換や不要なデータの削除等の加工といったデータ処理を行うことです。大規模なデータの場合には、「データウェアハウス(DWH)」等に書き込むためのフォーマットに整形する処理時間を可能な限り短縮することを目指します。
なお「抽出」の段階で、書込み可能なデータフォーマットにて整形されている場合は、この変換・加工は省略可能になるため、データソース側で最初から合わせるといった設計も行います。
「書込(Load)」とは、上記で変換・加工したデータをDWH等へ書き込む処理です。同内容の処理をDWH側の「インポート機能」を利用することでも実施可能です。
「データ分析」の一般的なプロセス
次に、データ分析の一般的なプロセスを解説していきます。以下のプロセスでデータ分析が行われます。
最初に、情報元となるデータベースやファイル等からデータを収集します。ETLの「抽出」と「変換・加工」が、このプロセスに該当します。次に、収集した分析対象のデータをデータベースやストレージに保存します。このプロセスは、ETL処理の「書込(ロード)」に該当します。
ここで収集・保存したデータから状況を可視化して、将来のデータ値を予測するといったことでデータ分析を進めていきます。また予測した結果を他システムに連携する等のデータ活用も合わせて実施します。
従来のデータ分析について
従来、情報元となるデータソースは、データの種類も少なく、CSV形式やデータベース形式等で予め「構造化」されていました。ETLツールも、構造化データに対して処理するため、複雑なデータ変換機能は不要でした。
またデータ保存方法では、ストレージ機器のコストも考慮されて、必要なデータに絞って加工・整形して保存しておくのが一般的でした。
従来のデータ分析の課題
しかし、いわゆる「ビッグデータ」登場以後は、データ分析の世界が一新しました。
データ分析で扱うデータ規模が急拡大した結果、従来のETLツールでは、データの抽出や変換・加工に時間が掛かり過ぎるという問題が出てきました。
さらにビジネス要件に合わせて、様々な観点でデータ分析を実施するようになりました。例えば、ある観点で最初に分析した後に、別の観点で分析し直すということが頻繁に発生するようになりました。
そのため加工済みデータのみを保存するというわけにはいかず、未加工状態の大規模データを「生データ」として保存しておく必要が出てきました。
「AWS Glue」の登場
大規模のデータ保存ができ、その大規模データを高速で処理することが可能な「データ分析基盤」と呼ばれる環境が必要となってきました。
さらに、ビジネス要件も多様化しハイピッチで変化が進むことで、データの種類や量も一層増加し、データ生成の速度も上昇していきました。
「AWS Glue」は、これらのニーズを受けて「データ分析基盤」のAWSサービスの一つとして登場しました。
「AWS Glue」のメリット
それでは、「AWS Glue」のメリットについて確認していきましょう。
AWSのクラウド環境は、大規模データの保存に適しており、スケールアウトもしやすいことからデータ変換等の機能も高速化しやすいというメリットがあります。
また「AWS Glue」がデータ分析時の各種AWSサービスとの連携を一括で管理してくれるため、エンジニアは「ETLジョブ」の作成や監視といった付加価値の高い作業に専念できるというメリットもあります。
他にも、AWS上での「サーバーレス」サービスの一つであるため、インフラ基盤のセッティングやシステム管理が不要という点もコスト面から大きなメリットとなっています。
「AWS Glue」の機能
「AWS Glue」は、「クローラ」、「データカタログ」、「スケジューラー」、「ジョブ」等の複数の機能で構成されています。
それでは、これらの主な機能について確認していきましょう。
「データストア」とは?
「データストア」とは、データを永続的に保存するリポジトリ(貯蔵庫)です。
先ほど説明した「データソース」は、「AWS Glue」でETL処理する際の入力先として使用するデータストアに該当します。
「データカタログ」とは?
「データカタログ」とは、永続的なメタデータストアです。
ETL処理する際に必要なテーブル定義、ジョブ定義やその他制御情報を保持しています。またデータカタログは、AWSアカウント毎に一つ用意されています。
なお「メタデータ」とは、データそのものではなく、そのデータに関する属性等の付帯情報を記述したデータを指します。同様に「メタ◯◯」と表現されている場合は、「◯◯」に関する属性等の付帯情報を指すことになります。
「クローラ」とは?
「クローラ」とは、「AWS Glue」の「データカタログ」に、データストアに関する「メタデータ」を作成するプログラムです。
「メタデータ」は、「テーブル情報」、「テーブルプロパティ」、「テーブルスキーマ」等の情報で構成されています。「クローラ」が、データストアからこれらの情報を抽出し、テーブル形式で「データカタログ」に保存しています。
また「クローラ」は、「Amazon S3」のようなストレージ内のファイルと、「Amazon DynamoDB」や「Amazon RDS」等のデータベースのテーブルとをクロールすることが可能です。
「ジョブ」とは?
「ジョブ」とは、ETL作業を実行するための処理単位です。ジョブの種類は、「Apache Spark」と「Python Shell」の2種類のタイプがあります。
「Apache Spark」タイプは、「Apache Spark」のクラスタを制御して大規模分散処理を実行します。ジョブを起動すると、「ドライバー」と複数の「エグゼキューター」が起動し、スクリプトは「ドライバー」で実行されます。
「Python Shell」タイプは、Pythonスクリプトを実行するためのジョブです。Pythonのバージョン対応としては、Python 2.7またはPython 3.6と互換性のあるスクリプトが実行できます。
「AWS Glue」の利用ケース
「AWS Glue」は単独で用いるサービスというより、複数のAWSサービスが連携して一連の処理を行う際の「橋渡し」となる利用ケースが一般的です。
ここでは単純化して、基本的な利用ケースをご紹介します。
基本的な利用ケース
「AWS Glue」の基本的な利用ケースについて、その他のAWSサービスと連携する際に共通する部分にフォーカスして説明していきます。
具体的には、以下の流れでETL処理(抽出、変換、書込)を実施していきます。
最初に、「データストア(データベースのテーブルやCSV形式のファイル等)」をクロールして、データカタログにメタデータ(※テーブル形式)を作成します。
次に、データカタログの情報を参考にして、ETL処理を実行するための「ジョブ」を「AWS Glue」のコンソール画面で定義します。
続けて「スケジューラー」の設定画面にて、上記で定義したジョブの実行タイミングを設定します。
最後に、ジョブを実行することで、ETL処理(抽出、変換、書込)が実施されます。
「AWS Glue」利用方法のチュートリアル
「AWS Glue」では、AWSコンソール画面(画面左下)の該当メニューの中に「チュートリアル」が存在します。
こちらのチュートリアルは、「AmazonS3上にあるCSVファイルをParquet形式に変換する」という内容で、手順も分かりやすくなっています。他にも、AWS公式の開発者ガイドの中で、「AWS Glueで機械学習変換を作成する」というチュートリアルも公開されています。
こちらのチュートリアルを参考にして、「AWS Glue」の理解を深めてみてはいかがでしょうか。
Search キーワード検索
Popular 人気の記事
-
AWSの平均年収12選|AWSの人気が高い理由3選なども紹介
2021年01月05日 -
AWS EBSとは?8つの特徴とEBSボリュームについても解説
2020年10月14日 -
AWS Cloud9の利用料金はかかるの?利用手順6つやメリット解説
2020年11月16日 -
AWS Amplifyとは?特徴6つ|利用するメリット紹介!
2020年10月16日 -
AWSスナップショットの利用料金計算方法とスナップショットのメリット3つ解説
2020年10月24日
reccomended おすすめ記事
-
【AWS入門編】AWSとは|サービス概要や特徴・おすすめ参考書4つ
2020年10月14日 -
AWSエンジニアにおすすめの開発手法DevOps。今後の求人は増える?
2020年10月14日 -
AWSを使ってWebサイトを構築しよう!おすすめサービス6つと選び方
2020年10月14日 -
AWSエンジニアの将来性は?年収と必要なスキル6つをご紹介!
2020年10月14日 -
【初心者向け】AWSの代表的なサービス10選|AWSを活用する利便性5選
2020年10月07日