サーバーレス AWS Glue インタラクティブ セッション PlatoBlockchain Data Intelligence を使用して、Amazon SageMaker Studio で大規模なデータを準備します。 垂直検索。 あい。

サーバーレス AWS Glue インタラクティブセッションを使用して、Amazon SageMaker Studio で大規模なデータを準備します

Amazon SageMakerスタジオ 機械学習 (ML) 用の最初の完全統合開発環境 (IDE) です。 データの準備、モデルの構築、トレーニング、デプロイなど、すべての ML 開発手順を実行できる単一の Web ベースのビジュアル インターフェイスを提供します。

AWSグルー は、分析、ML、およびアプリケーション開発のためのデータの検出、準備、結合を容易にするサーバーレス データ統合サービスです。 AWS Glue を使用すると、次のようなさまざまな機能を使用して、データレイクとデータパイプラインに保存するためにデータをシームレスに収集、変換、クレンジング、および準備できます。 組み込み変換.

データエンジニアとデータサイエンティストは、AWS Glue によって管理されるサーバーレス Spark セッションとの Studio ノートブックの組み込み統合を使用して、大規模なデータをインタラクティブに準備できるようになりました。 数秒で起動し、アイドル時にコンピューティングを自動的に停止します。 AWSGlueインタラクティブセッション Studio 内でスケーラブルなデータ準備を実現するために、オンデマンドで高度にスケーラブルなサーバーレス Spark バックエンドを提供します。 Studio ノートブックで AWS Glue インタラクティブ セッションを使用する主な利点は次のとおりです。

  • プロビジョニングまたは管理するクラスターがない
  • 課金するアイドル状態のクラスターはありません
  • 事前の構成は不要
  • 同じ開発環境でリソースの競合がない
  • AWS Glue の抽出、変換、ロード (ETL) ジョブとまったく同じサーバーレス Spark ランタイムおよびプラットフォーム

この投稿では、サーバーレス AWS Glue インタラクティブ セッションを使用して Studio で大規模にデータを準備する方法を紹介します。

ソリューションの概要

このソリューションを実装するには、次の高レベルの手順を実行します。

  1. あなたの更新 AWS IDおよびアクセス管理 (IAM) ロールのアクセス許可。
  2. AWS Glue インタラクティブ セッション カーネルを起動します。
  3. 対話型セッションを構成します。
  4. 対話型セッションをカスタマイズして、スケーラブルなデータ準備ワークロードを実行します。

IAM ロールのアクセス許可を更新する

開始するには、Studio ユーザーの IAM 実行ロールを必要な権限で更新する必要があります。 詳細な手順については、次を参照してください。 SageMaker Studio での Glue インタラクティブ セッションのアクセス許可.

まず、管理ポリシーを実行ロールに追加します。

  1. IAMコンソールで、 役割 ナビゲーションペインに表示されます。
  2. 使用する Studio 実行ロールを見つけ、ロール名を選択してロールの概要ページに移動します。
  3. ソフトウェア設定ページで、下図のように 権限 タブ、 権限の追加 メニュー、選択 ポリシーを添付.
  4. 管理ポリシーを選択する AmazonSageMakerFullAccess および AwsGlueSessionUserRestrictedServiceRole
  5. 選択する ポリシーを添付.
    概要ページには、新しく追加された管理ポリシーが表示されます。カスタム ポリシーを追加して、実行ロールにアタッチします。
  6. ソフトウェア設定ページで、下図のように 権限の追加 メニュー、選択 インラインポリシーを作成する.
  7. ソフトウェア設定ページで、下図のように JSONの タブで、次のポリシーを入力します。
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. 役割の信頼関係を変更します。
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

AWS Glue インタラクティブ セッション カーネルを起動する

Studio ドメイン内に既存のユーザーが既にいる場合は、そのユーザーが必要になる場合があります Jupyter サーバーをシャットダウンして再起動する 新しいノートブック カーネル イメージを取得します。

リロードすると、新しい Studio ノートブックを作成して、 お好みのカーネルを選択してください。 組み込み SparkAnalytics 1.0 イメージが利用可能になり、好みの AWS Glue カーネルを選択できます (Scala Spark を接着する or 接着剤 PySpark).

インタラクティブ セッションを構成する

初期化の前に、ノートブック セル マジックを使用して AWS Glue インタラクティブ セッションを簡単に設定できます。 マジックは、環境を制御するためのショートカットを提供する Jupyter セルの先頭にある % で始まる小さなコマンドです。 AWS Glue インタラクティブ セッションでは、以下を含むすべての設定ニーズに対して魔法が使用されます。

  • %領域 – セッションを初期化する AWS リージョン。 デフォルトは Studio リージョンです。
  • %iam_role – セッションを実行するための IAM ロール ARN。 デフォルトは、ユーザーの SageMaker 実行ロールです。
  • %worker_type - AWS Glue ワーカー タイプ. デフォルトは標準です。
  • %number_of_workers – ジョブの実行時に割り当てられるワーカーの数。 デフォルトは XNUMX です。
  • %idle_timeout – セッションがタイムアウトになるまでの非アクティブな分数。 デフォルトは 2,880 分です。
  • %Additional_python_modules – クラスターに含める追加の Python モジュールのコンマ区切りリスト。 これは PyPi または Amazon シンプル ストレージ サービス (Amazon S3)。
  • %%構成、設定 – 以下で構成される JSON 形式の辞書 AWS Glue 固有の設定パラメータ セッションのために。

このカーネルの構成可能なマジック パラメーターの包括的なリストについては、 %help あなたのノートに魔法を。

AWS Glue インタラクティブ セッションは、最初の非魔法のセルが実行されるまで開始されません。

対話型セッションをカスタマイズして、データ準備ワークロードを実行します

例として、次のノートブック セルは、AWS Glue インタラクティブ セッションをカスタマイズして、スケーラブルなデータ準備ワークロードを実行する方法を示しています。 この例では、ETL タスクを実行して、特定の都市の大気質データを集約し、XNUMX 日の時間ごとにグループ化します。

リアルタイム デバッグ用に Spark ログを S3 バケットに保存するようにセッションを構成します。これについては、この記事の後半で説明します。 必ず iam_role AWS Glue セッションを実行しているクライアントには、指定された S3 バケットへの書き込みアクセス権があります。

%help

%session_id_prefix air-analysis-
%glue_version 3.0
%idle_timeout 60
%%configure
{
"--enable-spark-ui": "true",
"--spark-event-logs-path": "s3://<BUCKET>/gis-spark-logs/"
}

次に、Amazon S3 からデータセットを直接ロードします。 または、次のことができます AWS Glue データカタログを使用してデータをロードする.

from pyspark.sql.functions import split, lower, hour
print(spark.version)
day_to_analyze = "2022-01-05"
df = spark.read.json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/1641409725.ndjson.gz")
df_air = spark.read.schema(df.schema).json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/*")

最後に、変換されたデータセットを、定義した出力バケットの場所に書き込みます。

df_city = df_air.filter(lower((df_air.city)).contains('delhi')).filter(df_air.parameter == "no2").cache()
df_avg = df_city.withColumn("Hour", hour(df_city.date.utc)).groupBy("Hour").avg("value").withColumnRenamed("avg(value)", "no2_avg")
df_avg.sort("Hour").show()

# Examples of reading / writing to other data stores: 
# https://github.com/aws-samples/aws-glue-samples/tree/master/examples/notebooks

df_avg.write.parquet(f"s3://<BUCKET>/{day_to_analyze}.parquet")

作業が完了したら、Studio ノートブック カーネルをシャットダウンするだけで AWS Glue インタラクティブ セッションをすぐに終了できます。 %stop_session 魔法。

デバッグと Spark UI

前の例では、 ”--enable-spark-ui”: “true” とともに引数 "--spark-event-logs-path": location. これにより、AWS Glue セッションがセッション ログを記録するように設定され、Spark UI を利用して AWS Glue ジョブをリアルタイムで監視およびデバッグできるようになります。

これらの Spark ログを起動して読み取るプロセスについては、次を参照してください。 Spark履歴サーバーの起動. 次のスクリーンショットでは、ログを含む S3 バケットを読み取る権限を持つローカル Docker コンテナを起動しました。 オプションで、 アマゾン エラスティック コンピューティング クラウド (Amazon EC2) インスタンスを使用して、前述のリンクされたドキュメントで説明されているように、これを実行します。

サーバーレス AWS Glue インタラクティブ セッション PlatoBlockchain Data Intelligence を使用して、Amazon SageMaker Studio で大規模なデータを準備します。 垂直検索。 あい。

価格(英語)

Studio ノートブックで AWS Glue インタラクティブ セッションを使用すると、AWS Glue および Studio ノートブックでのリソース使用量に対して個別に課金されます。

AWS は、セッションがアクティブな時間と使用されたデータ処理ユニット (DPU) の数に基づいて、AWS Glue インタラクティブ セッションの料金を請求します。 ワークロードの実行に使用される DPU の数に対して時間料金が請求され、1 秒単位で請求されます。 AWS Glue インタラクティブ セッションでは、デフォルトで 5 つの DPU が割り当てられ、最低 2 つの DPU が必要です。 また、対話型セッションごとに 1 分間の最小請求期間もあります。 AWS Glue の料金と料金の例を確認する、または AWS 料金計算ツールを使用してコストを見積もるには、以下を参照してください。 AWS Glue の料金.

Studio ノートブックは EC2 インスタンスで実行され、使用期間に基づいて、選択したインスタンス タイプに対して課金されます。 Studio は、ml-t2-medium を選択すると、デフォルトの EC3 インスタンス タイプを割り当てます。 SparkAnalytics イメージと関連するカーネル。 ワークロードに合わせて Studio ノートブックのインスタンス タイプを変更できます。 SageMaker Studio の料金については、以下を参照してください。 Amazon SageMakerの価格.

まとめ

Studio ノートブックと AWS Glue インタラクティブ セッションのネイティブ統合により、データ サイエンティストとデータ エンジニアはシームレスでスケーラブルなサーバーレス データ準備が容易になります。 Studio でこの新機能を試してみることをお勧めします。

見る AWS Glue インタラクティブ セッションを使用してデータを準備する


著者について

ショーン・モーガンショーン・モーガン AWS のシニア ML ソリューション アーキテクトです。 彼は半導体および学術研究分野での経験があり、その経験を利用して、お客様が AWS で目標を達成できるよう支援しています。 余暇には、アクティブなオープン ソースのコントリビューター/メンテナーとして活動し、TensorFlow アドオンの特別利益団体のリーダーを務めています。

サーバーレス AWS Glue インタラクティブ セッション PlatoBlockchain Data Intelligence を使用して、Amazon SageMaker Studio で大規模なデータを準備します。 垂直検索。 あい。スメダ・スワミー アマゾン ウェブ サービスのプリンシパル プロダクト マネージャーです。 彼は SageMaker Studio チームを率いて、インタラクティブなデータ サイエンスとデータ エンジニアリングのワークフローに最適な IDE に SageMaker Studio を組み込んでいます。 彼は過去 15 年間、機械学習を使用して、顧客志向の消費者および企業向け製品を構築してきました。 余暇には、アメリカ南西部の驚くべき地質を撮影するのが好きです。

タイムスタンプ:

より多くの AWS機械学習