GlueContext クラス - AWS Glue

GlueContext クラス

Apache SparkSQL SQLContext オブジェクトをラップすることにより、Apache Spark プラットフォームとやり取りするためのメカニズムを提供します。

Amazon S3 でのデータセットの操作

purge_table

purge_table(database, table_name, options={}, transformation_ctx="", catalog_id=None)

指定したカタログのデータベースとテーブルのファイルを Amazon S3 から削除します。パーティション内のすべてのファイルが削除されると、そのパーティションもカタログから削除されます。

削除されたオブジェクトを復元できるようにするには、Amazon S3 バケットでオブジェクトバージョニングを有効にします。オブジェクトバージョニングが有効になっていないバケットからオブジェクトが削除された場合、そのオブジェクトは復元できません。バージョンが有効にされているバケットで削除されたオブジェクトを復元する方法の詳細については、AWS サポートナレッジセンターで「削除された Amazon S3 オブジェクトを取得するにはどうすればよいですか?」を参照してください。

  • database – 使用するデータベース。

  • table_name – 使用するテーブルの名前。

  • options – 削除するファイルとマニフェストファイルの生成のためのファイルをフィルタリングするオプション。

    • retentionPeriod – ファイルを保持する期間を時間単位で指定します。保存期間より新しいファイルは保持されます。デフォルトでは 168 時間(7 日)に設定されています。

    • partitionPredicate – この述語を満たすパーティションは削除されます。これらのパーティションの保存期間内のファイルは削除されません。デフォルトでは "" – 空に設定されます。

    • excludeStorageClassesexcludeStorageClasses セット内のストレージクラスを持つファイルは削除されません。デフォルトは Set() – 空白のセットです。

    • manifestFilePath – マニフェストファイルを生成するためのオプションのパス。正常にパージされたすべてのファイルが Success.csv に記録され、失敗したファイルは Failed.csv に記録されます。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。マニフェストファイルパスで使用されます。

  • catalog_id – アクセス中の データカタログ のカタログ ID(データカタログ のアカウント ID)。デフォルトでは、None に設定されています。None のデフォルト値は、サービス内の呼び出し元アカウントのカタログ ID になります。

glueContext.purge_table("database", "table", {"partitionPredicate": "(month=='march')", "retentionPeriod": 1, "excludeStorageClasses": ["STANDARD_IA"], "manifestFilePath": "s3://bucketmanifest/"})

purge_s3_path

purge_s3_path(s3_path, options={}, transformation_ctx="")

指定された Amazon S3 パスからファイルを再帰的に削除します。

削除されたオブジェクトを復元できるようにするには、Amazon S3 バケットでオブジェクトバージョニングを有効にします。オブジェクトバージョニングが有効になっていないバケットからオブジェクトが削除された場合、そのオブジェクトは復元できません。バージョンが有効にされているバケットで削除されたオブジェクトを復元する方法の詳細については、AWS サポートナレッジセンターで「削除された Amazon S3 オブジェクトを取得するにはどうすればよいですか?」を参照してください。

  • s3_path – 削除するファイルの Amazon S3 のパス(s3://<bucket>/<prefix>/ 形式)

  • options – 削除するファイルとマニフェストファイルの生成のためのファイルをフィルタリングするオプション。

    • retentionPeriod – ファイルを保持する期間を時間単位で指定します。保存期間より新しいファイルは保持されます。デフォルトでは 168 時間(7 日)に設定されています。

    • partitionPredicate – この述語を満たすパーティションは削除されます。これらのパーティションの保存期間内のファイルは削除されません。デフォルトでは "" – 空に設定されます。

    • excludeStorageClassesexcludeStorageClasses セット内のストレージクラスを持つファイルは削除されません。デフォルトは Set() – 空白のセットです。

    • manifestFilePath – マニフェストファイルを生成するためのオプションのパス。正常にパージされたすべてのファイルが Success.csv に記録され、失敗したファイルは Failed.csv に記録されます。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。マニフェストファイルパスで使用されます。

  • catalog_id – アクセス中の データカタログ のカタログ ID(データカタログ のアカウント ID)。デフォルトでは、None に設定されています。None のデフォルト値は、サービス内の呼び出し元アカウントのカタログ ID になります。

glueContext.purge_s3_path("s3://bucket/path/", {"retentionPeriod": 1, "excludeStorageClasses": ["STANDARD_IA"], "manifestFilePath": "s3://bucketmanifest/"})

transition_table

transition_table(database, table_name, transition_to, options={}, transformation_ctx="", catalog_id=None)

指定されたカタログのデータベースとテーブルの Amazon S3 に格納されているファイルのストレージクラスを移行します。

任意の 2 つのストレージクラス間で移行できます。GLACIERDEEP_ARCHIVE のストレージクラスでは、これらのクラスに移行できます。ただし、GLACIERDEEP_ARCHIVE のストレージクラスからの移行には S3 RESTORE を使用します。

Amazon S3 からファイルまたはパーティションを読み取る AWS Glue ETL ジョブを実行している場合は、一部の Amazon S3 ストレージクラスタイプを除外できます。詳細については、「Amazon S3 ストレージクラスの除外」を参照してください。

  • database – 使用するデータベース。

  • table_name – 使用するテーブルの名前。

  • transition_to – 移行先の Amazon S3 ストレージクラス

  • options – 削除するファイルとマニフェストファイルの生成のためのファイルをフィルタリングするオプション。

    • retentionPeriod – ファイルを保持する期間を時間単位で指定します。保存期間より新しいファイルは保持されます。デフォルトでは 168 時間(7 日)に設定されています。

    • partitionPredicate – この述語を満たすパーティションは移行されます。これらのパーティションの保存期間内のファイルは移行されません。デフォルトでは "" – 空に設定されます。

    • excludeStorageClassesexcludeStorageClasses セット内のストレージクラスを持つファイルは移行されません。デフォルトは Set() – 空白のセットです。

    • manifestFilePath – マニフェストファイルを生成するためのオプションのパス。正常に移行されたすべてのファイルが Success.csv に記録され、失敗したファイルは Failed.csv に記録されます。

    • accountId – 移行変換を実行する AWS アカウント ID。このトランスフォームには必須です。

    • roleArn – 移行変換を実行する AWS ロール。このトランスフォームには必須です。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。マニフェストファイルパスで使用されます。

  • catalog_id – アクセス中の データカタログ のカタログ ID(データカタログ のアカウント ID)。デフォルトでは、None に設定されています。None のデフォルト値は、サービス内の呼び出し元アカウントのカタログ ID になります。

glueContext.transition_table("database", "table", "STANDARD_IA", {"retentionPeriod": 1, "excludeStorageClasses": ["STANDARD_IA"], "manifestFilePath": "s3://bucketmanifest/", "accountId": "12345678901", "roleArn": "arn:aws:iam::123456789012:user/example-username"})

transition_s3_path

transition_s3_path(s3_path, transition_to, options={}, transformation_ctx="")

指定された Amazon S3 パス内のファイルのストレージクラスを再帰的に移行します。

任意の 2 つのストレージクラス間で移行できます。GLACIERDEEP_ARCHIVE のストレージクラスでは、これらのクラスに移行できます。ただし、GLACIERDEEP_ARCHIVE のストレージクラスからの移行には S3 RESTORE を使用します。

Amazon S3 からファイルまたはパーティションを読み取る AWS Glue ETL ジョブを実行している場合は、一部の Amazon S3 ストレージクラスタイプを除外できます。詳細については、「Amazon S3 ストレージクラスの除外」を参照してください。

  • s3_path – 移行するファイルの Amazon S3 のパス(s3://<bucket>/<prefix>/ 形式)

  • transition_to – 移行先の Amazon S3 ストレージクラス

  • options – 削除するファイルとマニフェストファイルの生成のためのファイルをフィルタリングするオプション。

    • retentionPeriod – ファイルを保持する期間を時間単位で指定します。保存期間より新しいファイルは保持されます。デフォルトでは 168 時間(7 日)に設定されています。

    • partitionPredicate – この述語を満たすパーティションは移行されます。これらのパーティションの保存期間内のファイルは移行されません。デフォルトでは "" – 空に設定されます。

    • excludeStorageClassesexcludeStorageClasses セット内のストレージクラスを持つファイルは移行されません。デフォルトは Set() – 空白のセットです。

    • manifestFilePath – マニフェストファイルを生成するためのオプションのパス。正常に移行されたすべてのファイルが Success.csv に記録され、失敗したファイルは Failed.csv に記録されます。

    • accountId – 移行変換を実行する AWS アカウント ID。このトランスフォームには必須です。

    • roleArn – 移行変換を実行する AWS ロール。このトランスフォームには必須です。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。マニフェストファイルパスで使用されます。

glueContext.transition_s3_path("s3://bucket/prefix/", "STANDARD_IA", {"retentionPeriod": 1, "excludeStorageClasses": ["STANDARD_IA"], "manifestFilePath": "s3://bucketmanifest/", "accountId": "12345678901", "roleArn": "arn:aws:iam::123456789012:user/example-username"})

作成

__init__

__init__(sparkContext)

  • sparkContext – 使用する Apache Spark のコンテキスト。

getSource

getSource(connection_type, transformation_ctx = "", **options)

外部ソースから DynamicFrames を読み取るために使用できる DataSource オブジェクトを作成します。

  • connection_type – 使用する接続タイプ(Amazon Simple Storage Service (Amazon S3)、Amazon Redshift、JDBC など)。有効な値には、s3mysqlpostgresqlredshiftsqlserveroracle および dynamodb があります。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。

  • options – オプションの名前と値のペアのコレクション。詳細については、「AWS Glue での ETL の接続タイプとオプション」を参照してください。

以下は、getSource の使用例です。

>>> data_source = context.getSource("file", paths=["/in/path"]) >>> data_source.setFormat("json") >>> myFrame = data_source.getFrame()

create_dynamic_frame_from_rdd

create_dynamic_frame_from_rdd(data, name, schema=None, sample_ratio=None, transformation_ctx="")

Apache Spark Resilient Distributed Dataset (RDD) から作成された DynamicFrame を返します。

  • data – 使用するデータソース。

  • name – 使用するデータの名前。

  • schema – 使用するスキーマ (オプション)。

  • sample_ratio – 使用するサンプル比率 (オプション)。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。

create_dynamic_frame_from_catalog

create_dynamic_frame_from_catalog(database, table_name, redshift_tmp_dir, transformation_ctx = "", push_down_predicate= "", additional_options = {}, catalog_id = None)

カタログデータベースとテーブル名を使用して作成された DynamicFrame を返します。

  • Database – 読み込むデータベース。

  • table_name – 読み取り元のテーブルの名前。

  • redshift_tmp_dir – 使用する Amazon Redshift の一時ディレクトリ (オプション)。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。

  • push_down_predicate – データセットのすべてのファイルをリストアップして読み取る必要がないフィルタパーティション。詳細については、「プッシュダウン述語を使用した事前フィルタ処理」を参照してください。

  • additional_options – AWS Glue に指定する追加のオプション。

  • catalog_id — アクセス中の データカタログ のカタログ ID (アカウント ID)。None の場合は、発信者のアカウント ID のデフォルトが使用されます。

create_dynamic_frame_from_options

create_dynamic_frame_from_options(connection_type, connection_options={}, format=None, format_options={}, transformation_ctx = "")

指定された接続と形式で作成された DynamicFrame を返します。

  • connection_type – 接続タイプ (Amazon S3、Amazon Redshift、JDBC など)。有効な値には、s3mysqlpostgresqlredshiftsqlserveroracle および dynamodb があります。

  • connection_options – 接続オプション (パスやデータベーステーブルなど) (オプション)。s3 の connection_type に関しては、Amazon S3 パスのリストが定義されています。

    connection_options = {"paths": ["s3://aws-glue-target/temp"]}

    JDBC 接続の場合、いくつかのプロパティを定義する必要があります。データベース名は URL の一部である必要があることに注意してください。オプションで接続オプションに含めることができます。

    connection_options = {"url": "jdbc-url/database", "user": "username", "password": "password","dbtable": "table-name", "redshiftTmpDir": "s3-tempdir-path"}

    dbtable プロパティは JDBC テーブルの名前です。データベース内でスキーマをサポートする JDBC データストアの場合、schema.table-name を指定します。スキーマを指定しない場合、デフォルトの「パブリック」スキーマが使用されます。

    詳細については、「AWS Glue での ETL の接続タイプとオプション」を参照してください。

  • format – 形式の仕様 (オプション)。これは、複数の形式をサポートする Amazon S3 または AWS Glue 接続に使用します。サポートされる形式については、「AWS Glue での ETL 入力および出力の形式オプション」を参照してください。

  • format_options – 指定した形式の形式オプション。サポートされる形式については、「AWS Glue での ETL 入力および出力の形式オプション」を参照してください。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。

書き込み

getSink

getSink(connection_type, format = None, transformation_ctx = "", **options)

外部ソースに DynamicFrames を書き込むために使用できる DataSink オブジェクトを取得します。期待しているシンクを確実に取得するために、SparkSQL format を最初に確認します。

  • connection_type – 使用する接続タイプ (Amazon S3、Amazon Redshift、JDBC など)。有効な値には、s3mysqlpostgresqlredshiftsqlserver、および oracle があります。

  • format – 使用する SparkSQL 形式 (オプション)。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。

  • options – オプションの名前と値のペアのコレクション。

以下に例を示します。

>>> data_sink = context.getSink("s3") >>> data_sink.setFormat("json"), >>> data_sink.writeFrame(myFrame)

write_dynamic_frame_from_options

write_dynamic_frame_from_options(frame, connection_type, connection_options={}, format=None, format_options={}, transformation_ctx = "")

指定された接続と形式を使用して DynamicFrame を書き込み、返します。

  • frame – 書き込む DynamicFrame

  • connection_type – 接続タイプ (Amazon S3、Amazon Redshift、JDBC など)。有効な値には、s3mysqlpostgresqlredshiftsqlserver、および oracle があります。

  • connection_options – 接続オプション (パスやデータベーステーブルなど) (オプション)。s3connection_type では、Amazon S3 パスが定義されています。

    connection_options = {"path": "s3://aws-glue-target/temp"}

    JDBC 接続の場合、いくつかのプロパティを定義する必要があります。データベース名は URL の一部である必要があることに注意してください。オプションで接続オプションに含めることができます。

    connection_options = {"url": "jdbc-url/database", "user": "username", "password": "password","dbtable": "table-name", "redshiftTmpDir": "s3-tempdir-path"}

    dbtable プロパティは JDBC テーブルの名前です。データベース内でスキーマをサポートする JDBC データストアの場合、schema.table-name を指定します。スキーマを指定しない場合、デフォルトの「パブリック」スキーマが使用されます。

    詳細については、「AWS Glue での ETL の接続タイプとオプション」を参照してください。

  • format – 形式の仕様 (オプション)。これは、複数の形式をサポートする Amazon S3 または AWS Glue 接続に使用します。サポートされる形式については、「AWS Glue での ETL 入力および出力の形式オプション」を参照してください。

  • format_options – 指定した形式の形式オプション。サポートされる形式については、「AWS Glue での ETL 入力および出力の形式オプション」を参照してください。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。

write_from_options

write_from_options(frame_or_dfc, connection_type, connection_options={}, format={}, format_options={}, transformation_ctx = "")

指定された接続および形式情報で作成された DynamicFrame または DynamicFrameCollection を書き込み、返します。

  • frame_or_dfc – 書き込む DynamicFrame または DynamicFrameCollection

  • connection_type – 接続タイプ (Amazon S3、Amazon Redshift、JDBC など)。有効な値には、s3mysqlpostgresqlredshiftsqlserver、および oracle があります。

  • connection_options – 接続オプション (パスやデータベーステーブルなど) (オプション)。s3connection_type では、Amazon S3 パスが定義されています。

    connection_options = {"path": "s3://aws-glue-target/temp"}

    JDBC 接続の場合、いくつかのプロパティを定義する必要があります。データベース名は URL の一部である必要があることに注意してください。オプションで接続オプションに含めることができます。

    connection_options = {"url": "jdbc-url/database", "user": "username", "password": "password","dbtable": "table-name", "redshiftTmpDir": "s3-tempdir-path"}

    dbtable プロパティは JDBC テーブルの名前です。データベース内でスキーマをサポートする JDBC データストアの場合、schema.table-name を指定します。スキーマを指定しない場合、デフォルトの「パブリック」スキーマが使用されます。

    詳細については、「AWS Glue での ETL の接続タイプとオプション」を参照してください。

  • format – 形式の仕様 (オプション)。これは、複数の形式をサポートする Amazon S3 または AWS Glue 接続に使用します。サポートされる形式については、「AWS Glue での ETL 入力および出力の形式オプション」を参照してください。

  • format_options – 指定した形式の形式オプション。サポートされる形式については、「AWS Glue での ETL 入力および出力の形式オプション」を参照してください。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。

write_dynamic_frame_from_catalog

write_dynamic_frame_from_catalog(frame, database, table_name, redshift_tmp_dir, transformation_ctx = "", addtional_options = {}, catalog_id = None)

カタログデータベースとテーブル名を使用して DynamicFrame を書き込み、返します。

  • frame – 書き込む DynamicFrame

  • Database – 読み込むデータベース。

  • table_name – 読み取り元のテーブルの名前。

  • redshift_tmp_dir – 使用する Amazon Redshift の一時ディレクトリ (オプション)。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。

  • catalog_id — アクセス中の データカタログ のカタログ ID (アカウント ID)。None の場合は、発信者のアカウント ID のデフォルトが使用されます。

write_dynamic_frame_from_jdbc_conf

write_dynamic_frame_from_jdbc_conf(frame, catalog_connection, connection_options={}, redshift_tmp_dir = "", transformation_ctx = "", catalog_id = None)

指定された JDBC 接続情報を使用して DynamicFrame を書き込み、返します。

  • frame – 書き込む DynamicFrame

  • catalog_connection – 使用するカタログ接続。

  • connection_options – 接続オプション (パスやデータベーステーブルなど) (オプション)。詳細については、「AWS Glue での ETL の接続タイプとオプション」を参照してください。

  • redshift_tmp_dir – 使用する Amazon Redshift の一時ディレクトリ (オプション)。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。

  • catalog_id — アクセス中の データカタログ のカタログ ID (アカウント ID)。None の場合は、発信者のアカウント ID のデフォルトが使用されます。

write_from_jdbc_conf

write_from_jdbc_conf(frame_or_dfc, catalog_connection, connection_options={}, redshift_tmp_dir = "", transformation_ctx = "", catalog_id = None)

指定された JDBC 接続情報を使用して DynamicFrame または DynamicFrameCollection を書き込み、返します。

  • frame_or_dfc – 書き込む DynamicFrame または DynamicFrameCollection

  • catalog_connection – 使用するカタログ接続。

  • connection_options – 接続オプション (パスやデータベーステーブルなど) (オプション)。詳細については、「AWS Glue での ETL の接続タイプとオプション」を参照してください。

  • redshift_tmp_dir – 使用する Amazon Redshift の一時ディレクトリ (オプション)。

  • transformation_ctx – 使用する変換コンテキスト (オプション)。

  • catalog_id — アクセス中の データカタログ のカタログ ID (アカウント ID)。None の場合は、発信者のアカウント ID のデフォルトが使用されます。

抽出

extract_jdbc_conf

extract_jdbc_conf(connection_name, catalog_id = None)

userpasswordvendorurl をキーに持つ dict を データカタログ 内の接続オブジェクトから返します。

  • connection_name – データカタログ 内の接続の名前

  • catalog_id — アクセス中の データカタログ のカタログ ID (アカウント ID)。None の場合は、発信者のアカウント ID のデフォルトが使用されます。