AWS Glue の特徴

Glue を選ぶ理由

AWS Glue は、サーバーレスでスケーラブルなデータ統合サービスで、分析、機械学習、アプリケーション開発用に、複数のソースからデータを検出、準備、移動、統合することを容易にします。AWS Glue はデータ統合に必要なすべての機能を備えているため、インサイトを得て、数か月どころか数分でデータを使用可能にします。AWS Glue では、セットアップまたは管理するインフラストラクチャはありません。ジョブの実行中に使用するリソースに対してのみ支払いが発生します。

ディスカバー

AWS Glue データカタログは永続的なメタデータストアで、保存される場所にかかわらず、すべてのデータアセットに使用できます。データカタログにはテーブルの定義、ジョブの定義、スキーマ、および AWS Glue 環境の管理に役立つその他の制御情報が格納されます。統計情報の計算とパーティションの登録は自動的に実行され、データのクエリを効率的かつ費用対効果の高い方法で行うことができます。また、包括的なスキーマバージョン履歴が保持されるため、時間の経過とともにデータがどのように変化したかを把握できます。

AWS Glue では、クローラーがソースやターゲットのデータストアに接続され、分類子の優先順位付きリストによってデータのスキーマが判定された後、AWS Glue データカタログにメタデータが作成されます。メタデータはデータカタログのテーブルに保存され、抽出、変換、ロード (ETL) ジョブの作成プロセスで使用されます。クローラーはスケジュールによって実行することも、オンデマンドで実行することもできます。または、最新のメタデータが必要なイベント時にトリガーすることもできます。

AWS Glue のサーバーレス機能である AWS Glue スキーマレジストリを使用すると、登録済みの Apache Avro スキーマを使用してストリーミングデータの変化を追加料金なしで検証および制御できます。AWS Glue スキーマレジストリは、Apache ライセンスのシリアライザーとデシリアライザーを通じて、Apache Kafka、Amazon Managed Streaming for Apache Kafka (Amazon MSK)Amazon Kinesis Data Streams、Apache Flink、Amazon Kinesis Data Analytics for Apache Flink、および AWS Lambda 用に開発された Java アプリケーションと統合されます。データストリーミングアプリケーションが AWS Glue スキーマレジストリと統合している場合、スキーマの進化を管理する互換性チェックを利用して、データ品質を向上し、予期しない変更から保護することができます。さらに、レジストリ内に保存されているスキーマを使用して、AWS Glue テーブルおよびパーティションを作成または更新できます。

AWS Glue のサーバーレス機能である Auto Scaling は、ワークロードに基づいてリソースを動的にスケールアップまたはスケールダウンします。Auto Scaling を使用すると、ジョブは必要なときだけワーカーを割り当てられます。ジョブが進行し、高度な変換が行われると、AWS Glue はワークロードをどれだけ分割できるかに応じてリソースを追加、削除します。リソースを過剰にプロビジョニングしたり、ワーカー数の最適化に時間を費やしたり、アイドル状態のリソースに料金を支払ったりすることについて心配する必要がなくなります。

準備

AWS Glue を使用すると、機械学習のエキスパートにならなくても、データをクリーンアップして分析用に準備できます。FindMatches 機能は、重複除去を行い、相互の対応が不完全なレコードを検出します。例えば、あるレコードで「121 Main St.」に「Joe's Pizza」をリストされ、別のレコードで「121 Main」に「Joseph's Pizzeria」が示されるといった場合に、FindMatches を使用してレストランのデータベースで重複レコードを検索します。 FindMatches は、レコードのセットに「一致する」または「一致しない」のいずれかのラベルを付けるよう求めます。 その後、このシステムは、1 組のレコードを「一致」と見なす条件を学習し、データベース内の重複レコードまたは 2 つのデータベース間で一致するレコードの検索に使用できる ETL ジョブを構築します。

ETL コードを対話的に開発する場合は、生成されるコードの編集、デバッグ、テストを行うために、AWS Glue によって開発のエンドポイントが用意されます。お気に入りの統合開発環境 (IDE) またはノートブックを使用できます。カスタムのリーダー、ライター、変換を作成し、カスタムライブラリとして AWS Glue ETL ジョブにインポートできます。AWS の GitHub リポジトリでは、他のデベロッパーのコードを使用することや、他のデベロッパーとコードを共有することが可能です。

AWS Glue DataBrew は、データアナリストやデータサイエンティストなどのユーザーがコードを記述せずにデータをクリーンアップおよび正規化するためのインタラクティブなポイントアンドクリックのビジュアルインターフェイスを提供します。データレイク、データウェアハウス、および Amazon Simple Storage Service (Amazon S3)、Amazon Redshift、Amazon Aurora、Amazon Relational Database Service (Amazon RDS) などのデータベースから直接データを簡単に視覚化、クリーンアップ、正規化できます。250 以上の組み込み変換から選択して、データを結合、ピボット、転置し、保存された変換を新しい受信データに直接適用することでデータ準備タスクを自動化できます。

AWS Glue Sensitive Data Detection は、データパイプラインとデータレイク内の機密データを定義、識別、処理するのに役立ちます。特定されると、個人を特定できる情報 (PII) データおよびその他の機密とみなされるデータについて、冗長化、置換、または報告することによって、機密データを修復することができます。AWS Glue Sensitive Data Detection は、名前、社会保障番号、住所、電子メール、運転免許証などの PII を含む機密データの識別とマスキングを簡素化します。

デベロッパーは、その使いやすさと豊富な組み込みデータ処理ライブラリから Python を好んでいます。大規模なデータセットを処理するために、使い慣れた Python のプリミティブ型を使用したい、と考えているのです。AWS Glue for Ray は、データエンジニアが Python と一般的な Python ライブラリを使用した大規模なデータセットを処理することをサポートします。AWS Glue for Ray では、Python のワークロードを単一ノードから数百ノードに拡張できるオープンソースの統合計算フレームワークである Ray.io を使用しています。AWS Glue for Ray はサーバーレスであるため、インフラストラクチャを管理する必要がありません。

AWS Glue では、カスタムビジュアルトランスフォームを作成することで、ETL ロジックを定義、再利用、共有することができます。 AWS Glue カスタムビジュアルトランスフォームを使用することで、データエンジニアはビジネス固有の Apache Spark ロジックを記述して共有できるため、Spark 開発者への依存度が下がり、ETL ジョブを簡単に最新の状態に保つことができるようになります。これらのトランスフォームは、ビジュアルベースかコードベースかに関わらず、AWS アカウント内のすべてのジョブで利用可能です。

統合

ジョブ開発のサーバーレス機能である AWS Glue Interactive Sessions は、データ統合ジョブの開発を簡素化します。AWS Glue Interactive Sessions を使用すると、データエンジニアはデータをインタラクティブに探索して準備できます。エンジニアは、好みの IDE やノートブックを使って、データの探索、実験、処理をインタラクティブに行うこともできます。

AWS Glue Studio Job Notebooksは、AWS Glue Studio に最小限のセットアップでサーバーレスノートブックを提供するため、デベロッパーはすぐに始めることができます。AWS Glue Studio Job Notebooks では、AWS Glue Interactive Sessions の組み込みインターフェイスにアクセスして、ノートブックのコードを AWS Glue ジョブとして保存およびスケジュールできます。

AWS Glue のジョブは、スケジュールベース、オンデマンド、イベントベースで呼び出すことができます。複数のジョブを並列で開始することも、ジョブ間の依存関係を指定して複雑な ETL パイプラインを構築することもできます。AWS Glue では、ジョブ間の依存関係すべての処理、不良データのフィルタリング、失敗したジョブの再試行は自動的に行われます。ログや通知はすべて Amazon CloudWatch にプッシュされるため、中央のサービスからモニタリングして、アラートを受信できます。

AWS Glue は、広く使用されているオープンソースのバージョン管理システムである Git との統合されています。お客様は GitHubAWS CodeCommit を使用して AWS Glue ジョブの変更履歴を管理し、既存の DevOps プラクティスを適用してそれらのジョブをデプロイできます。AWS Glue での Git 統合は、ビジュアルタイプでもコードベースタイプでも、あらゆるタイプの AWS Glue ジョブに対して機能します。GitHub と CodeCommit の両方との統合が組み込まれており、JenkinsAWS CodeDeploy などの自動化ツールを利用した AWS Glue ジョブのデプロイも簡単にできます。

AWS Glue Flex は、緊急ではないデータ統合ワークロード (本番前のジョブ、テスト、データロードなど) のコストを最大 35% 削減できる柔軟な実行ジョブクラスです。AWS Glue には、スタンダードとフレキシブルの 2 つのジョブ実行クラスがあります。スタンダード実行クラスは、ジョブの高速起動と専用リソースを必要とする、時間に敏感なワークロードに最適です。AWS Glue Flex は、開始時間や完了時間が変動するような、時間的制約のないジョブに適しています。

AWS Glue では、Apache Hudi、Apache Iceberg、Linux Foundation Delta Lake の 3 つのオープンソースフレームワークをネイティブでサポートしています。これらのフレームワークは、Amazon S3 ベースのデータレイクで使用するために、トランザクション的に一貫性のある方法でデータを管理するのに役立ちます。

AWS Glue Data Quality は、データの品質と信頼性を向上させることができます。データレイクやパイプラインのデータ品質を自動的に測定、モニタリング、管理します。また、統計値のコンピューティング、品質ルールの推奨、モニタリング、品質悪化時の警告を自動的に行うため、欠落、陳腐化、不良データがビジネスに影響を与える前に、容易に特定することができます。

変換

AWS Glue Studio を使えば、Apache Spark の専門家にならなくても、高度にスケーラブルな ETL ジョブを分散処理向けにオーサリングできるようになります。ドラッグアンドドロップ型のジョブエディタで任意の ETL プロセスを定義すれば、AWS Glue がコードを自動的に生成してデータを抽出、変換、ロードします。このコードは、Scala または Python で生成され、Apache Spark 向けに記述されます。

AWS Glue のサーバーレスストリーミング ETL ジョブは、Amazon Kinesis や Amazon MSK などのストリーミングソースのデータを継続的に使用し、これを送信中にクリーニングおよび変換して、分析向けにターゲットのデータストアで数秒以内に使用できるようにします。この機能を使用して、IoT イベントストリーム、クリックストリーム、ネットワークログなどのイベントデータを処理します。AWS Glue ストリーミング ETL ジョブは、データを強化および集約し、バッチソースとストリーミングソースを結合し、さまざまな種類の複雑な分析および機械学習オペレーションを実行できます。