設定 AWS Glue Jupyter と のインタラクティブセッション AWS Glue Studio ノートブック - AWS Glue

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

設定 AWS Glue Jupyter と のインタラクティブセッション AWS Glue Studio ノートブック

Jupyter Magics の概要

Jupyter Magics は、セル先頭またはセル本文全体として実行できるコマンドです。マジックの先頭は、Line Magics の場合は %、Cell Magics の場合は %% です。%region%connections などの Line Magics は、セル内の複数のマジック、または次の例のようにセル本文に含まれるコードを使用して実行できます。

%region us-east-2 %connections my_rds_connection dy_f = glue_context.create_dynamic_frame.from_catalog(database='rds_tables', table_name='sales_table')

Cell Magics はセル全体を使用する必要があり、コマンドを複数行に渡すことができます。%%sql の例を以下に示します。

%%sql select * from rds_tables.sales_table

でサポートされているマジック AWS Glue Jupyter のインタラクティブセッション

以下は、 で使用できるマジックです。AWS Glue Jupyter ノートブックのインタラクティブセッション。

Sessions Magics

名前 説明
%help 該当なし すべてのマジックコマンドのために説明と入力タイプのリストを返します。
%profile 文字列 認証情報プロバイダー AWS として使用する設定でプロファイルを指定します。
%region 文字列

セッションを初期化 AWS リージョンする を指定します。~/.aws/configure. からのデフォルト設定

例: %region us-west-1

%idle_timeout Int

セルが実行されてからセッションがタイムアウトするまでの非アクティブ時間 (分)。Spark ETLセッションのデフォルトのアイドルタイムアウト値は、デフォルトのタイムアウトである 2880 分 (48 時間) です。他のセッションタイプについては、該当するセッションタイプのマニュアルを参照してください。

例: %idle_timeout 3000

%session_id 該当なし 実行中のセッションのセッション ID をリターンします。
%session_id_prefix 文字列

[session_id_prefix]-[session_id] IDs の形式で、すべてのセッションに先行する文字列を定義します。 セッション ID が指定されていない場合、ランダムが生成されUUIDます。 AWS Glue Studioで Jupyter Notebook を実行する場合に、このマジックはサポートされていません。

例: %session_id_prefix 001

%status 現在の のステータスを返します。AWS Glue セッションの期間、設定、ユーザー/ロールの実行など。
%stop_session 現在のセッションを停止します。
%list_sessions 名前と ID で、現在実行中のすべてのセッションをリストします。
%session_type 文字列

セッションタイプをストリーミング、、ETLまたは Ray のいずれかに設定します。

例: %session_type Streaming

%glue_version 文字列

のバージョン AWS Glue このセッションで使用される。

例: %glue_version 3.0

ジョブタイプを選択するためのマジック

名前 説明
%streaming 文字列 セッションタイプを に変更します AWS Glue ストリーミング。
%etl 文字列 セッションタイプを に変更します AWS Glue ETL.
%glue_ray 文字列 セッションタイプを AWS Glue for Ray に変更します。AWS Glue Ray インタラクティブセッション でサポートされている Magics を参照してください。

AWS Glue for Spark 設定マジック

%%configure マジックは、セッションのすべての構成パラメータで構成される JSON 形式のディクショナリです。各パラメータは、ここで指定することも、個々のマジックを使って指定することもできます。

名前 説明
%%configure 辞書

セッションのすべての設定パラメータで構成される JSON形式のディクショナリを指定します。各パラメータは、ここで指定することも、個々のマジックを使って指定することもできます。

の使用方法に関するパラメータと例のリストについては%%configure、「」を参照してください%%configure セルマジック引数

%iam_role 文字列

セッションARNを実行するIAMロールを指定します。~/.aws/configure からのデフォルト設定。

例: %iam_role AWSGlueServiceRole

%number_of_workers Int

ジョブの実行時に割り当てられる、定義された worker_type のワーカーの数。worker_type も設定する必要があります。デフォルト number_of_workers は 5 です。

例: %number_of_workers 2

%additional_python_modules リスト

クラスターに含める追加の Python モジュールのカンマ区切りリスト (PyPI または S3 からでも可)。

例えば、%additional_python_modules pandas, numpy などです。

%%tags 文字列

セッションにタグを追加します。タグを中かっこ { } で囲んで指定します。各タグ名のペアは二重引用符 (" ") で囲まれ、カンマ (,) で区切られます。

%%tags {"billing":"Data-Platform", "team":"analytics"}

%status マジックを使用して、セッションに関連付けられたタグを表示します。

%status
Session ID: <sessionId> Status: READY Role: <example-role> CreatedOn: 2023-05-26 11:12:17.056000-07:00 GlueVersion: 3.0 Job Type: glueetl Tags: {'owner':'example-owner', 'team':'analytics', 'billing':'Data-Platform'} Worker Type: G.4X Number of Workers: 5 Region: us-west-2 Applying the following default arguments: --glue_kernel_version 0.38.0 --enable-glue-datacatalog true Arguments Passed: ['--glue_kernel_version: 0.38.0', '--enable-glue-datacatalog: true']
%%assume_role 辞書

json 形式のディクショナリまたはIAMロールARN文字列を指定して、クロスアカウントアクセス用のセッションを作成します。

を使用した例ARN:

%%assume_role { 'arn:aws:iam::XXXXXXXXXXXX:role/AWSGlueServiceRole' }

認証情報の例:

%%assume_role {{ "aws_access_key_id" = "XXXXXXXXXXXX", "aws_secret_access_key" = "XXXXXXXXXXXX", "aws_session_token" = "XXXXXXXXXXXX" }}

%%configure セルマジック引数

%%configure マジックは、セッションのすべての構成パラメータで構成される JSON 形式のディクショナリです。各パラメータは、ここで指定することも、個々のマジックを使って指定することもできます。%%configure セルマジックがサポートする引数の例については、以下を参照してください。ジョブに指定された実行引数に -- プレフィックスを使用します。例:

%%configure { "--user-jars-first": "true", "--enable-glue-datacatalog": "false" }

ジョブパラメータの詳細については、「ジョブのパラメータ」を参照してください。

セッション設定

パラメータ Type 説明
max_retries Int

失敗した場合にこのジョブを再試行する最大回数。

%%configure { "max_retries": "0" }
max_concurrent_runs Int ジョブで許可される同時実行の最大数。

例:

%%configure { "max_concurrent_runs": "3" }

セッションパラメータ

パラメータ Type 説明
--enable-spark-ui ブール値 Spark UI によるモニタリングとデバッグを有効にする AWS Glue ETL ジョブ。
%%configure { "--enable-spark-ui": "true" }
--spark-event-logs-path 文字列 Amazon S3 パスを指定します。Spark UI のモニタリング機能を使用する場合。

例:

%%configure { "--spark-event-logs-path": "s3://path/to/event/logs/" }
--script_location 文字列 ジョブを実行するスクリプトへの S3 パスを指定します。

例:

%%configure { "script_location": "s3://new-folder-here" }
--SECURITY_CONFIGURATION 文字列

AWS Glue セキュリティ設定の名前

例:

%%configure { "--security_configuration": { "encryption_type": "kms", "kms_key_id": "YOUR_KMS_KEY_ARN" } }
--job-language 文字列 スクリプトプログラミング言語。'scala' または 'python' の値を使用できます。デフォルトは 'python' です。

例:

%%configure { "--job-language": "scala" }
--class 文字列 Scala スクリプトのエントリポイントとなる Scala クラス。デフォルトは null です。

例:

%%configure { "--class": "className" }
--user-jars-first ブール値 クラスパス内のお客様の追加のJARファイルを優先します。デフォルトは null です。

例:

%%configure { "--user-jars-first": "true" }
--use-postgres-driver ブール値 JDBC ドライバーとの競合を避けるため、クラスパスで Postgres ドライバーを優先します Amazon Redshift JDBC。デフォルトは null です。

例:

%%configure { "--use-postgres-driver": "true" }
--extra-files List(string) Amazon S3 は、AWS Glue は、スクリプトを実行する前にスクリプトの作業ディレクトリにコピーします。

例:

%%configure { "--extra-files": "s3://path/to/additional/files/" }
--job-bookmark-option 文字列 ジョブブックマークの動作を制御します。'job-bookmark-enable'、'job-bookmark-disable'、または 'job-bookmark-pause' の値を受け入れます。デフォルトは 'job-bookmark-disable' です。

例:

%%configure { "--job-bookmark-option": "job-bookmark-enable" }
--TempDir 文字列 ジョブの一時ディレクトリとして使用できるバケットへの Amazon S3 のパスを指定します。デフォルトは null です。

例:

%%configure { "--TempDir": "s3://path/to/temp/dir" }
--enable-s3-parquet-optimized-committer ブール値 Parquet データを EMRFS Amazon S3-optimizedコミッターを有効にします。 Amazon S3 デフォルトは 'true' です。

例:

%%configure { "--enable-s3-parquet-optimized-committer": "false" }
--enable-rename-algorithm-v2 ブール値 名前EMRFS変更アルゴリズムのバージョンをバージョン 2 に設定します。デフォルトは 'true' です。

例:

%%configure { "--enable-rename-algorithm-v2": "true" }
--enable-glue-datacatalog ブール値 を使用できます。AWS Glue Apache Spark Hive メタストアとしての Data Catalog。

例:

%%configure { "--enable-glue-datacatalog": "true" }
--enable-metrics ブール値 ジョブの実行のジョブプロファイリングに関するメトリクスの収集を有効にします。デフォルトは 'false' です。

例:

%%configure { "--enable-metrics": "true" }
--enable-continuous-cloudwatch-log ブール値 のリアルタイム連続ログ記録を有効にする AWS Glue ジョブ。デフォルトは 'false' です。

例:

%%configure { "--enable-continuous-cloudwatch-log": "true" }
--enable-continuous-log-filter ブール値 連続ログ記録が有効であるジョブを作成または編集するときに、標準フィルタまたはフィルタなしを指定します。デフォルトは 'true' です。

例:

%%configure { "--enable-continuous-log-filter": "true" }
--continuous-log-stream-prefix 文字列 連続 Amazon CloudWatch ログ記録が有効になっているジョブのカスタムログストリームプレフィックスを指定します。デフォルトは null です。

例:

%%configure { "--continuous-log-stream-prefix": "prefix" }
--continuous-log-conversionPattern 文字列 連続ログ記録を有効にしたジョブのカスタム変換ログパターンを指定します。デフォルトは null です。

例:

%%configure { "--continuous-log-conversionPattern": "pattern" }
--conf 文字列 Spark の設定パラメータを制御します。高度なユースケース向けです。各パラメータの前に --conf を使用してください。例:
%%configure { "--conf": "spark.hadoop.hive.metastore.glue.catalogid=123456789012 --conf hive.metastore.client.factory.class=com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory --conf hive.metastore.schema.verification=false" }
timeout Int Spark セッションが終了する前にステートメントの完了を待機する最大時間を決定します。
%%configure { "timeout": "30" }
自動スケーリング ブール値 自動スケーリングを使用するかどうかを決定します。
%%configure {   "––enable-auto-scaling": "true" }

Spark ジョブ (ETL & ストリーミング) マジック

名前 説明
%worker_type 文字列 Standard、G.1X、または G.2X を指定します。number_of_workers も設定する必要があります。デフォルトの worker_type は G.1X です。
%connections リスト

セッションで使用する接続のカンマ区切りリストを指定します。

例:

%connections my_rds_connection dy_f = glue_context.create_dynamic_frame.from_catalog(database='rds_tables', table_name='sales_table')
%extra_py_files リスト Amazon S3 からの追加の Python ファイルのカンマ区切りリスト。
%extra_jars リスト クラスターに含める追加の jar のカンマ区切りリスト
%spark_conf 文字列 セッション用のカスタム Spark 設定を指定します。例えば、%spark_conf spark.serializer=org.apache.spark.serializer.KryoSerializer と指定します。

Ray ジョブのマジック

名前 説明
%min_workers Int Ray ジョブに割り当てられるワーカーの最小数。デフォルト: 1。

例: %min_workers 2

%object_memory_head Int ウォームスタート後のインスタンスヘッドノードの空きメモリの割合。最小値: 0。最大値: 100。

例: %object_memory_head 100

%object_memory_worker Int ウォームスタート後のインスタンスワーカーノードの空きメモリの割合。最小値: 0。最大値: 100。

例: %object_memory_worker 100

Action Magics

名前 説明
%%sql 文字列

SQL コードを実行します。最初の%%sqlマジックの後のすべての行は、SQLコードの一部として渡されます。

例: %%sql select * from rds_tables.sales_table

%matplot Matplotlib Figure

Matplotlib ライブラリを使用してデータを可視化します。

例:

import matplotlib.pyplot as plt # Set X-axis and Y-axis values x = [5, 2, 8, 4, 9] y = [10, 4, 8, 5, 2] # Create a bar chart plt.bar(x, y) # Show the plot %matplot plt
%plotly Plotly Figure

Plotly ライブラリを使用してデータを可視化します。

例:

import plotly.express as px #Create a graphical figure fig = px.line(x=["a","b","c"], y=[1,3,2], title="sample figure") #Show the figure %plotly fig

ネーミングセッション

AWS Glue インタラクティブセッションは AWS リソースであり、名前が必要です。名前はセッションごとに一意でなければならず、IAM管理者によって制限される場合があります。詳細については、「を使用したインタラクティブセッション IAM」を参照してください。Jupyter カーネルは固有のセッション名を自動的に生成します。ただし、セッション名は、次の 2 つの方法で手動で名前を付けることができます。

  1. にある AWS Command Line Interface 設定ファイルを使用します~.aws/configで AWS Config を設定する AWS Command Line Interfaceを参照してください。

  2. %session_id_prefix マジックを使用する。「 でサポートされているマジック AWS Glue Jupyter のインタラクティブセッション 」を参照してください。

セッション名は、次のように生成されます。

  • プレフィックスと session_id を指定すると、セッション名は {prefix}-{UUID} になります。

  • 何も指定しない場合: セッション名は {UUID} になります。

セッション名のプレフィックスを付けると、セッションを AWS CLI または コンソールに一覧表示するときにセッションを認識できます。

インタラクティブセッションのIAMロールの指定

で使用する AWS Identity and Access Management (IAM) ロールを指定する必要があります AWS Glue ETL インタラクティブセッションで実行するコード。

ロールには、実行に必要なアクセスIAM許可と同じアクセス許可が必要です AWS Glue ジョブ。「 のIAMロールを作成する」を参照してください。AWS Glue のロールの作成の詳細については、「」を参照してください。AWS Glue ジョブとインタラクティブセッション。

IAM ロールは、次の 2 つの方法で指定できます。

名前付きプロファイルを使用したセッションの設定

AWS Glue インタラクティブセッションは、 AWS Command Line Interface または boto3 と同じ認証情報を使用し、インタラクティブセッションは、 ~/.aws/config (Linux および MacOS ) または %USERPROFILE%\.aws\config (Windows) にある のような AWS CLI 名前付きプロファイルを尊重して使用します。詳細については、「名前を指定されたプロファイルを使用する」を参照してください。

インタラクティブセッションは、 を許可することで、名前付きプロファイルを活用します。AWS Glue プロファイルで指定するサービスロールとセッション ID プレフィックス。プロファイルロールを設定するには、以下に示すように、名前付きプロファイルに iam_role キーまたは session_id_prefix 、あるいはその両方の行を追加します。session_id_prefix は引用符を必要としません。例えば、 session_id_prefix を追加する場合は、session_id_prefix=myprefix の値を入力します。

[default] region=us-east-1 aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY glue_iam_role=arn:aws:iam::<AccountID>:role/<GlueServiceRole> session_id_prefix=<prefix_for_session_names> [user1] region=eu-west-1 aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY glue_iam_role=arn:aws:iam::<AccountID>:role/<GlueServiceRoleUser1> session_id_prefix=<prefix_for_session_names_for_user1>

認証情報を生成するカスタムメソッドがある場合は、~/.aws/config ファイルの credential_process パラメーターを使用するようにプロファイルを設定することもできます。例:

[profile developer] region=us-east-1 credential_process = "/Users/Dave/generate_my_credentials.sh" --username helen

credential_process パラメータを使用した認証情報の調達の詳細については、「外部プロセスを使用した認証情報の調達」を参照してください。

使用しているプロファイルにリージョンまたは iam_role が設定されていない場合は、最初に実行するセルの %region%iam_role マジックを使用して設定する必要があります。