Amazon の AWS Glue サービスは、「顧客が分析のためのデータの準備や読み込みがしやすくなるような、フルマネージドの ETL(抽出、変換、格納)サービス」です。では、なぜ同社は AWS Glue をリリースしたのでしょうか?また、企業ユーザーはそれで何ができると期待しているのでしょうか。

ビッグデータは、顧客により良いサービスを提供して競合他社よりも優位に立つために、より価値あるビジネスインサイトがほしい先進的な組織にとって極めて重要です。ただ残念なことに、あまりにも多くの組織が、手元にある豊富な情報を活用できていません。

ちなみに Tech Pro Research によると、回答者の半数が、適切なタイミングで適切な情報を下流アプリに供給するツールが不足していると報告しており、その回答者の44%は、情報を選別する時間がないと回答しています。

企業のデータ分析とレポーティングをシンプルにするために、多くの企業が、組織内の多くの情報源から情報を集めるデータ保管システムである「データウェアハウス」を導入していますが、もちろんこれも、遠く離れたデータベースから集中管理されたデータウェアハウスに情報をどのように取り込むかという疑問は残ります。

ETL プロセスは、ソースデータベースからウェアハウスへの情報の転送のために特別に設計されていますが、ETL の課題と複雑さにから、企業の全データに対して ETL をうまく実施するのは大変です。

なので、Amazon では AWS Glue が導入されました。そこで、本記事では、Glue とは何か、その仕組みやレビュー、Glue の代替製品との比較など、Glueについて知りたいことをすべてお話します。

目次

  • ETLとは
  • AWS Glue の概要
  • AWS Glue レビュー: 概要、特徴、機能
  • AWS Glue のデメリット
  • AWS Glue: レビューと代替案
  • AWS Glue の代替:Integrate.io
  • AWS Glue の比較:ntegrate.io の優位性
  • まとめ

ETL とは

ETL(抽出、変換、格納)は、単一または複数のソースデータベースからターゲットデータベースまたは情報ウェアハウスに情報を読み込むための主要なデータ統合プロセスであり、その名が示すように、以下の3つの段階または機能から構成されます:

  • 抽出: ソースデータベースから情報を読み込み、ステージングエリアに抽出する。
  • 変換: 未加工の情報を検証し、データの整合性に問題がないかチェックし、ターゲットデータベースのスキーマに一致するように変換する。
  • 格納: 変換された情報は、ターゲットデータベースまたはデータウェアハウスに格納される。

データウェアハウスがデータベースに含まれるインサイトを引き出すには、適切に設計された ETL システムがあることが非常に重要です。ETLツールは、例えばソースとターゲットの間での情報の正しい変換や多種多様なソースへの対応、大量の情報を扱うための拡張性といった課題に対処しないといけませんからね。

ただ残念なのは、多くの組織がこういった課題への対処や、ETL の導入から最大限の効果を得るといったことができていないという点です。ちなみに最近の調査によると、回答者の68%が、情報のサイロ化によってアナリティクスへの取り組みが妨げられていると回答しています。

そこで AWS Glue のようなサービスが、そのギャップを埋めるべく参入してきました。では、AWS Glue とはどのようなサービスなのでしょうか?

AWS Glue の概要

上記のように、AWS Glue は、情報をより活用したい組織のために、ETL プロセスがしやすくなることを目的としたフルマネージドの ETL サービスであり、Amazon は2017年8月の最初のパブリックリリース以来、機能と特徴を追加してアップデートをリリースし続けています。そして最新のアップデートには以下のようなものがあります:

  • Python シェルジョブ での Python 3.6 への対応(2019年6月)。
  • VPC(仮想プライベートクラウド)エンドポイント経由での Glue への直接接続への対応(2019年5月)。
  • Apache Spark によるジョブのリアルタイム連続ロギングへの対応(2019年5月)。
  • CSV データのスキーマを推測するカスタム CSV 分類器の対応(2019年3月)。

Glue は Amazon のクラウドデータ処理サービスの穴を埋めるものです。以前、AWS にはデータの取得、保存、分析のためのサービスがありましたが、データ変換のためのソリューションはありませんでした。

もっと深く掘り下げると以下があります:

  • ETL プロセスの一部となるソースとターゲットへの参照を含むメタデータレポジトリであるデータカタログ。
  • ETL プロセス全体で使う Python や Scala のスクリプトを自動生成する ETL エンジン。
  • 時間やその他の条件に基づいてジョブを実行し、イベントをトリガーするスケジューラ。

Glue は、エンタープライズクラスのデータウェアハウスの構築をしやすくすることを目的としており、トランザクションデータベースや Amazon のクラウドなど、さまざまなソースから情報をウェアハウスに移動させることができます。

同社によると、Glue には、 ETL 作業をシンプルにする 多くのユースケースが以下のようにあります:

  • さまざまなデータベースやデータストアに関するメタデータを検出し、カタログにアーカイブする。
  • ETL スクリプトを作成し、ソースからターゲットへの過程で情報を変換、非正規化、リッチ化する。
  • データベーススキーマの変更を自動的に検出し、それに合わせてサービスを調整する。
  • 特定のトリガー、スケジュール、イベントに基づいて ETL ジョブを起動する。
  • ETL オペレーションに関するログ、メトリクス、KPI(重要業績評価指標)を集めてモニタリングやレポーティングに使用する。
  • エラー処理と再試行により、プロセス中の失速を防ぐ。
  • 現在の状況に合わせてリソースを自動的にスケーリングする。

次のセクションでは、Glue にある特徴や機能を見てみましょう。

AWS Glue レビュー: 概要、特徴、機能

Glue の主な特徴には以下が挙げられます:

  • サーバーレスのコンピューティング: サーバーレスなので、手動でのサーバーの指定や実行が不要。Glue の機能を使いたいときはいつでも、Amazon がサーバーを立ち上げ、使わなくなったら終了してくれる。この自動プロビジョニングにより、インフラの管理やスケーリングを自分でする必要がなくなる。
  • Apache Spark: Glue は、情報処理用の Apache Spark 分析エンジンをベースにしていが、Python や Scala でスクリプトを作成することもできる。
  • 開発が簡単: 手動で ETL コードを記述することを決定したユーザーは、スクリプトを開発およびテストできる環境である「デベロッパーエンドポイント」にアクセスできる。
  • データカタログ: カタログは、データストアおよびデータソース全てに関する情報を保存するメタデータレポジトリであることから、場所に関係なく、重要な情報の可視性が上がる。
  • ジョブスケジューリング: Glue では、イベントやスケジュールに基づいたジョブの開始や、完全にオンデマンドでのジョブの開始ができるため、スケジューリングがしやすくなる。

AWS Glue の欠点

AWS Glue は様々なユースケースに有用ですが、制限もあるので、採用するには至らない場合もあるかもしれません。

限定的な統合

AWS Glue との統合オプションは限られており、AWS のツールとして、他のテクノロジーとうまく統合できません。JDBC(Java Database Connectivity)と S3(Simple Storage Service)へのネイティブコネクタしかないという点で制限されており、組織は JDBC 以外のデータソースを接続するのに他の方法を利用する必要が出てきます。

特定のスキルが求められる

比較的新しいテクノロジーである AWS Glue は、習得が難しく、このフレームワークの実装には、多くの IT 部門にとってまだ新しい概念であるサーバーレスアーキテクチャの専門知識が求められます。また、AWS Glue は Apache Spark 上で動作することから、デベロッパーは Spark と、Scala や Python などの実装に必要なコードを知っている必要があります。

限定的なデータベースサポート

Glueは、従来のリレーショナル・データベース・タイプのクエリに対応していません。SQL タイプのクエリにしか対応していませんが、それ以上のことを行うには、かなりの回避策が必要です。

不十分なテスト環境

Glue にはテスト環境がなく、デベロッパーは、実際のデータでコードをテストせざるを得ません。あいにく、これは時間はかかるし退屈なプロセスです。そして言うまでもないですが、何か問題が発生した場合は、実データに悪影響が及ぶ可能性があります。

リアルタイムデータ処理には不十分

Glue では、データはすべて一度にステージングされて処理されます。また、データソースからの増分同期機能はありません。

ドキュメンテーションの欠如

AWS Glue の新しさを考えると、その技術はまだ発展途上であり、ドキュメントも限られているため、使いこなすのは難しいかもしれません。

AWS Glue: レビューと代替案

2017年8月の一般提供リリース以来、AWS Glue の評判はかなり良いようで、ビジネスソフトウェアのレビュープラットフォームである G2 Crowd では、30件のレビューに基づいて、5つ星中平均4.0の評価を得ています。

G2 Crowd のレビューによると、Glue のポジティブな特徴として、データ統合プロセスがシンプルになることが挙げられています。レビュアーの アルケシュ G. 氏は以下のように述べています:

2、3年前から AWS Glue を使っており、AWS の Glue を使うことで、ビジネス全体のデータセットを検索、移動、変換することができます。AWS Glue は、サーバーレスであることが一番興味深いです。Glue を指すだけで、ETL ジョブをすべて実行することができ、サーバーの設定やプロビジョニング、スピンアップの必要がなく、ライフサイクルの管理も要りません。

ただ、AWS Glue は、ドキュメントやリソースが不足していることもあり、習得し辛いと不満を漏らすユーザーもいます。あるレビュアーは以下のように言っています: 

AWS Glue のドキュメントとサンプルコードはとんでもないです。なので問題解決には大体サポートチケットを発行しないといけません。

また別のユーザーはこのように述べています。

あまりに新しく、Web 上でもチュートリアルやユースケースがあまり紹介されていないので、本番環境で使うにはしばらく時間がかかるでしょうね。

AWS Glueの代替: Integrate.io

このサービスにまだ魅力を感じていない人にとって朗報なのは、ETL サービスがこれだけではないという点です。例えば Integrate.io のような会社には、データ統合プロセスを管理してシンプルにするための代替サービスがあります。

Integrate.io プラットフォームには、データパイプラインを最初から最後まで構築するための完全なツールキットがあり、単純なレプリケーション作業から高度なデータ準備や変換まで、Integrate.io の使いやすいポイント&クリックのユーザーインターフェースで全て可能です。

また、Integrate.io のプラットフォームには、100以上の一般的なデータストアや SaaS アプリケーションとの統合が含まれています: MongoDB、MySQL、Amazon Redshift、PostgreSQL、Google Cloud Platform、Facebook、Salesforce、Jira、Magento、HubSpot、Slack、QuickBooks など、ここでは紹介しきれないほどです。

さらに、Integrate.io で、データ統合のインフラストラクチャの拡張が劇的にシンプルになり、例えばアクティブなノード数の増減は、スライダーを上下に調整するのと同じくらい簡単です。

ちなみに G2 Crowd の Web サイトにおいて、Integrate.io は80件のレビューに基づいて、5つ星中平均4.4の評価を受けており、この強力なユーザーフィードバックのおかげで、Integrate.io は2019年春の G2 Crowd のトップパフォーマーの1つにランクされています。

多くの Integrate.io ユーザーから、Integrate.io を使う際の使いやすさとサポートについてのポジティブなコメントが以下のように寄せられています。

レビュアーのニック G.氏は、以下のようにコメントしてくれています:

Integrate.io は、我々に必要なソースとデスティネーションに大抵リンクしており、ネイティブコネクタがない場合、REST API コネクタでお望みの結果が得られます。また、サポートチームは、必要であればいつでも飛び込んできて助けてくれますし、サポートチームと包括的なドキュメントが、仕事を代わりにやってくれるのではなく、こちらが望む結果を達成するための学習をサポートしてくれることに重点を置いていることもいいですね。そのおかげで、学んだことを他の用途に活用できるようになりました。

Integrate.io  ユーザーの ラリー B. も同意し、次のようにコメントしています:

Integrate.io のカスタマーサービスは素晴らしいです。チームは私たちと一緒にデータフローを開発し、リアルタイムチャットシステムで製品に関する質問に答えてくれます。

別のユーザーはこのように言っています:

Integrate.io を使う前は、ETLプロセスやデータ全般についてほとんど経験がありませんでしたが、運良く彼らのサポートチームが素晴らしく、データ管理という複雑な課題を一つひとつ丁寧に教えてくれました。

AWS Glue の比較:Integrate.io が優れている点

Integrate.io は、デベロッパーがサッと使い始められるように、複数の機能を提供しています。

簡単なデータ変換

ローコードのソリューションとして、Integrate.io にはデータ変換の構築のためのドラッグ&ドロップのインターフェースが備わっています。それでデベロッパーは、大量のコードを書くことなく、ソート、結合、フィルター、クローンなどの変換をサッと構築することができ、さらにカスタマイズしたい場合は、Integrate.io の API を使って他のモニタリングシステムやレポートシステムに接続することができます。

シンプルなワークフロー作成

ワークフローは、一連の条件に基づいてタスクの順序付けを自動化します。Integrate.io を使えば、デベロッパーはパッケージ間の依存関係を設定でき、別のパッケージからのアクションに基づいて、パッケージを自動的にトリガーすることができます。

非常に柔軟な REST API

Integrate.io で、REST API コネクタを介した、一意のデータ ソースまたは非標準のデータソースへの接続がしやすくなります。接続する統合プラットフォームやデータソースは、事実上無限にありますからね。

強固なデータセキュリティとコンプライアンス 

Integrate.io は、最も厳格なセキュリティ基準を遵守しており、業種や業界を問わず、あらゆる要件を満たします。

SOC2 コンプライアンスSOC 2 認証は、サードパーティのサービスプロバイダが顧客の個人データを保護するための基準である。

ファイアウォールによるアクセス制御: デフォルトでは、Integrate.ioのファイアウォールは、すべての内部システムと外部ネットワークへのアクセスを拒否し、指定されたプロトコルとポート経由のアクセスしか許可しない。

顧客アプリケーションの分離: 顧客アプリケーションは、ホストベースのファイアウォールを使って互いに分離される。

EU および GDPR データプライバシー準拠: Integrate.ioは、EU で最も厳しいデータ保護規制の1つに準拠している。

HIPAA および CCPA 準拠: Integrate.io は、機密性の高い医療情報を保護するためのセキュリティ要件をすべて満たしている。

まとめ

多くのデベロッパーや IT プロフェッショナルにとって、2017年8月のリリース以来、AWS Glue で ETL プロセスに関わる複雑さや手作業がうまいこと軽減されています。

ただ、本記事での比較において、サービスの新しさや習得の難しさといった欠点が浮き彫りになり、より確立された、ユーザーに使いやすくて強力なカスタマーサポートを備えたフルマネージドの ETL ソリューションを探している企業には、Integrate.io をチェックするのがいいかもしれません。

Integrate.io が自身の組織に適しているかどうかについては、Integrate.io のブログで最新のニュースや最新情報をご覧いただくか、こちらから Integrate.io チームまでぜひお問い合わせください。