In 第2部 このシリーズでは、これを有効にする方法について説明しました。 AWSグルー ジョブの可観測性メトリクスを作成し、それを Grafana と統合してリアルタイム監視します。 Grafana は、パイプラインの状態を表示するための強力なカスタマイズ可能なダッシュボードを提供します。ただし、時間の経過に伴う傾向を分析し、さまざまな次元から集計し、組織全体で洞察を共有するには、次のような専用のビジネス インテリジェンス (BI) ツールが必要です。 アマゾンクイックサイト あなたのビジネスにとってより効果的になる可能性があります。 QuickSight を使用すると、ビジネス ユーザーは対話型のダッシュボードやレポートでデータを簡単に視覚化できます。
この投稿では、QuickSight を アマゾンクラウドウォッチ メトリクスを作成し、グラフを作成して、AWS Glue ジョブの可観測性メトリクスの傾向を明らかにします。履歴パターンを分析することで、パフォーマンスを最適化し、問題を積極的に特定し、計画を改善することができます。 CloudWatch メトリクス ストリームと QuickSight SPICE を使用して、CloudWatch メトリクスを QuickSight に取り込む手順を説明します。この統合により、折れ線グラフ、棒グラフ、その他の種類のグラフを使用して、日次、週次、月次のパターンを明らかにすることができます。 QuickSight を使用すると、メトリクスに対して集計計算を実行して、より詳細な分析を行うことができます。ジョブ名などのさまざまな次元でデータをスライスし、異常を確認し、組織全体でレポートを安全に共有できます。これらの洞察により、チームはデータ統合パイプラインをより効率的にするための可視性を得ることができます。
ソリューションの概要
次のアーキテクチャ図は、ソリューションを実装するためのワークフローを示しています。
ワークフローには次の手順が含まれます。
- AWS Glue ジョブは可観測性メトリクスを CloudWatch メトリクスに出力します。
- CloudWatch はメトリクス ストリームを通じてメトリクス データをストリーミングします。 Amazon データ ファイアホース.
- Data Firehose は AWSラムダ データを変換し、変換されたレコードを Amazon シンプル ストレージ サービス (Amazon S3)バケット。
- AWS Glue クローラーは、S3 バケット上のデータをスキャンし、AWS Glue データ カタログにテーブルのメタデータを入力します。
- QuickSight は定期的に実行されます アマゾンアテナ クエリを実行してクエリ結果を SPICE にロードし、最新のメトリクス データを視覚化します。
すべてのリソースはサンプルで定義されています AWSクラウド開発キット (AWS CDK) テンプレート。エンドツーエンドのソリューションを展開して、可観測性メトリクスの傾向を視覚化および分析できます。
サンプル AWS CDK テンプレート
この投稿では、AWS Glue 可観測性メトリクスを使用したダッシュボード用のサンプル AWS CDK テンプレートを提供します。
通常、データ パイプラインのリソースを管理および実行するために複数のアカウントがあります。
このテンプレートでは、次のアカウントを想定しています。
- モニタリングアカウント – これは、中央の S3 バケット、中央のデータ カタログ、および QuickSight 関連のリソースをホストします。
- ソースアカウント – これは、AWS Glue 上の個々のデータ パイプライン リソースと、モニタリング アカウントにメトリクスを送信するためのリソースをホストします。
このテンプレートは、モニタリング アカウントとソース アカウントが同じ場合でも機能します。
このサンプル テンプレートは 4 つのスタックで構成されています。
- Amazon S3 スタック – これにより、S3 バケットがプロビジョニングされます
- データカタログスタック – これにより、AWS Glue データベース、テーブル、およびクローラーがプロビジョニングされます
- クイックサイトスタック – これにより、QuickSight データ ソース、データセット、分析がプロビジョニングされます。
- メトリクス送信者スタック – これにより、CloudWatch メトリクス ストリーム、Firehose 配信ストリーム、および変換用の Lambda 関数がプロビジョニングされます
前提条件
次の前提条件が必要です。
- Python3.9以降
- モニタリングアカウントとソースアカウントのAWSアカウント
- An AWS の名前付きプロファイル モニタリングアカウントとソースアカウントの場合
- AWS CDK ツールキット 2.87.0以降
CDK プロジェクトを初期化する
プロジェクトを初期化するには、次の手順を実行します。
- クローン CDK テンプレート あなたの職場へ:
- Python を作成する 仮想環境 クライアント マシン上のプロジェクトに固有:
このプロジェクトの Python 環境を分離し、ソフトウェアをグローバルにインストールしないために、仮想環境を使用します。
- OS に応じて仮想環境をアクティブ化します。
- MacOS および Linux では、次のコードを使用します。
- Windows プラットフォームでは、次のコードを使用します。
このステップの後、以降のステップはクライアント マシンの仮想環境の境界内で実行され、必要に応じて AWS アカウントとやり取りします。
- で説明されている必要な依存関係をインストールします。 Requirements.txt 仮想環境へ:
- 構成ファイルを編集します
default-config.yaml
環境に応じて異なります (各アカウント ID を自分のものに置き換えてください)。
AWS 環境をブートストラップする
次のコマンドを実行して、AWS 環境をブートストラップします。
- モニタリング アカウントで、モニタリング アカウント番号、AWS リージョン、モニタリング プロファイルを指定します。
- ソース アカウントで、ソース アカウント番号、リージョン、ソース プロファイルを指定します:x
すべての環境で XNUMX つのアカウントのみを使用する場合は、cdk bootstrap
コマンドを XNUMX 回実行します。
AWS リソースをデプロイする
次のコマンドを実行して、AWS リソースをデプロイします。
- モニタリング アカウントを使用して次のコマンドを実行し、AWS CDK テンプレートで定義されたリソースをデプロイします。
- ソース アカウントを使用して次のコマンドを実行し、AWS CDK テンプレートで定義されたリソースをデプロイします。
QuickSight 権限の構成
最初は、QuickSight 権限がまだ設定されていないため、AWS CDK テンプレートによって作成されたデータセットや分析を含む新しい QuickSight リソースは表示されません。
データセットと分析を表示するには、次の手順を実行します。
- QuickSight コンソールで、ユーザー メニューに移動し、 QuickSightを管理する.
- ナビゲーションペインで、 資産を管理する.
- アセットを参照する、選択する 分析.
- 「GlueObservabilityAnalysis」を検索して選択します。
- 選択する シェア.
- ユーザーまたはグループ、ユーザーを選択してから、 シェアする(1).
- 共有が完了するまで待ってから、 DONE.
- ソフトウェア設定ページで、下図のように 資産を管理する ページ、選択 データセット.
- observability_demo.metrics_data を検索して選択します。
- 選択する シェア.
- ユーザーまたはグループ、ユーザーを選択してから、 シェアする(1).
- 共有が完了するまで待ってから、 DONE.
デフォルトの QuickSight 分析を調べる
これで、QuickSight 分析とデータセットが表示されるようになりました。 QuickSight コンソールに戻り、以下の GlueObservabilityAnalysis を選択します。 分析。次のスクリーンショットは、ダッシュボードを示しています。
サンプル分析には 2 つのタブがあります。 監視 & 分析。 デフォルトでは、 監視 タブには次のグラフがあります。
- [信頼性] ジョブ実行エラーの内訳
- [信頼性] ジョブ実行エラー数 (合計)
- [パフォーマンス] 歪度ジョブ
- [パフォーマンス] ジョブごとの歪度ジョブ
- 【リソース利用率】ワーカー利用率
- [リソース使用率] ジョブごとのワーカー使用率
- [スループット] BytesRead、RecordsRead、FilesRead、PartitionRead (平均)
- [スループット] 書き込みバイト数、書き込みレコード数、書き込みファイル数 (平均)
- [リソース使用率 ディスク利用可能 GB (分)
- [リソース使用率の最大ディスク使用率 % (最大)
- [ドライバー OOM] OOM エラー数
- [ドライバー OOM] 使用された最大ヒープ メモリ % (最大)
- [実行者 OOM] OOM エラー数
- [Executor OOM] 使用された最大ヒープ メモリ % (最大)
デフォルトでは、 分析 タブには次のような洞察があります。
- 最下位の従業員の活用率
- 上位ランクの歪度ジョブ
- 従業員の稼働率の予測
- トップムーバー readBytes
要件に基づいて可観測性メトリクスを使用して、新しいグラフ チャートや分析情報を追加できます。
QuickSight ダッシュボードを公開する
分析の準備ができたら、次の手順を実行してダッシュボードを公開します。
- 選択する 出版.
- 選択 新しいダッシュボードを、入力して
GlueObservabilityDashboard
. - 選択する ダッシュボードを公開する.
その後、ダッシュボードを表示および共有できます。
AWS Glue ジョブの可観測性メトリクスを視覚化して分析する
ダッシュボードを使用して、AWS Glue の使用のパフォーマンスを向上させましょう。
こちらを見てみましょう ジョブごとの歪度ジョブ ビジュアライゼーションでは、1 年 2023 月 9.53 日にスパイクがありました。ジョブのマルチステージ デモの歪度メトリクスは XNUMX を示し、これは他のメトリクスよりも大幅に高かったです。
詳細を掘り下げてみましょう。選んでいいですよ コントロール、日時、リージョン、AWS アカウント ID、AWS Glue ジョブ名、ジョブ実行 ID、データ ストアのソースとシンクに基づいてフィルター条件を変更します。ここでは、ジョブ名 multistage-demo でフィルタリングしてみましょう。
濾過されたもの ジョブごとの労働者の稼働率 視覚化では 0.5 が示され、その最小値は 0.16 でした。リソースの利用には改善の余地があるようです。この観察結果から、このジョブの自動スケーリングを有効にしてワーカーの使用率を高めることができます。
クリーンアップ
次のコマンドを実行して、AWS リソースをクリーンアップします。
- 監視アカウントを使用して次のコマンドを実行し、リソースをクリーンアップします。
ソース アカウントを使用して次のコマンドを実行し、リソースをクリーンアップします。
考慮事項
QuickSight 統合は、分析と柔軟性の向上を目的として設計されています。任意のフィールドに基づいてメトリクスを集計できます。一度に多くのジョブを処理する場合、QuickSight の分析情報は問題のあるジョブを特定するのに役立ちます。
QuickSight の統合は、環境内でより多くのリソースを使用して実現されます。モニタリング アカウントには、AWS Glue データベース、テーブル、クローラー、S3 バケット、および QuickSight でメトリクスを視覚化するための Athena クエリを実行する機能が必要です。各ソース アカウントには、XNUMX つのメトリック ストリームと XNUMX つの Firehose 配信ストリームが必要です。これには追加コストが発生する可能性があります。
必要なリソースはすべて AWS CDK でテンプレート化されています。
まとめ
この投稿では、CloudWatch メトリクス ストリームと SPICE を使用して、QuickSight で AWS Glue ジョブの可観測性メトリクスを視覚化および分析する方法を検討しました。新しい可観測性メトリクスをインタラクティブな QuickSight ダッシュボードに接続することで、日次、週次、月次のパターンを明らかにして、AWS Glue ジョブの使用を最適化できます。 QuickSight の豊富な視覚化機能を使用すると、ワーカーの使用率、エラー カテゴリ、スループットなどのメトリクスの傾向を分析できます。メトリクスを集計し、ジョブ名などのさまざまな次元でデータをスライスすると、より深い洞察が得られます。
サンプル ダッシュボードには、時間の経過に伴うメトリクス、上位のエラー、および比較ジョブ分析が表示されました。これらの視覚化とレポートは、組織全体のチームと安全に共有できます。 AWS Glue 可観測性メトリクスに関するデータ主導の洞察を使用すると、パフォーマンスのボトルネックや一般的なエラーなどについてより深い洞察を得ることができます。
著者について
関山典隆 AWS Glue チームのプリンシパル ビッグ データ アーキテクトです。 彼は、顧客を支援するソフトウェア アーティファクトの構築を担当しています。 余暇には、新しいロードバイクでサイクリングを楽しんでいます。
リュウ・チューハン は、AWS Glue チームのソフトウェア開発エンジニアです。 彼は、ビッグ データの処理、分析、管理のためのスケーラブルな分散システムの構築に情熱を注いでいます。 余暇には、彼はテニスを楽しんでいます。
シャオラン・ユー は、AWS Glue チームのソフトウェア開発エンジニアです。彼は、顧客を支援するための AWS Glue の新機能の構築に取り組んでいます。仕事以外では、Xiaorun はベイエリアの新しい場所を探索することを楽しんでいます。
ショーン・マー は、AWS Glue チームのプリンシパルプロダクトマネージャーです。彼には、ユーザーにデータの力を解き放つエンタープライズ製品を革新し、提供してきた 18 年以上の実績があります。仕事以外では、ショーンはスキューバ ダイビングと大学フットボールを楽しんでいます。
モヒトサクセナ は、AWS Glue チームのシニア ソフトウェア開発マネージャーです。 彼のチームは、インタラクティブで使いやすいインターフェイスを備えた顧客が、Amazon S3 上のデータレイク、クラウド上のデータベース、データ ウェアハウス全体でペタバイト規模のデータを効率的に管理し、シームレスに変換できるようにする分散システムの構築に重点を置いています。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- プラトンヘルス。 バイオテクノロジーと臨床試験のインテリジェンス。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/big-data/enhance-monitoring-and-debugging-for-aws-glue-jobs-using-new-job-observability-metrics-part-3-visualization-and-trend-analysis-using-amazon-quicksight/