AWS Glue 接続を設定する - Amazon SageMaker

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

AWS Glue 接続を設定する

SQL 拡張機能で使用するデータソースを設定するには、管理者はデータソースごとに AWS Glue 接続を作成する必要があります。これらの接続には、データソースへのアクセスと操作を可能にする設定の詳細が保存されます。

これらの接続を作成するには:

  • まず、各データソースの接続プロパティを定義する JSON ファイルを作成します。JSON ファイルには、データソース識別子、アクセス認証情報、および AWS Glue 接続を介してデータソースにアクセスするためのその他の関連する設定パラメータなどの詳細が含まれています。

  • 次に、 AWS Command Line Interface (AWS CLI) を使用して AWS Glue 接続を作成し、JSON ファイルをパラメータとして渡します。 AWS CLI コマンドは JSON ファイルから接続の詳細を読み取り、適切な接続を確立します。

    注記

    SQL 拡張機能は、 AWS CLI を使用した接続の作成のみをサポートします。

AWS Glue 接続を作成する前に、必ず次のステップを完了してください。

  • AWS Command Line Interface () をインストールして設定しますAWS CLI。をインストールして設定する方法の詳細については AWS CLI、「バージョン 2 について AWS CLI」を参照してください。の設定に使用した IAM ユーザーまたはロールのアクセスキーとトークンに、接続の作成 AWS Glue に必要なアクセス許可 AWS CLI があることを確認します。それ以外の場合は、 glue:CreateConnectionアクションを許可するポリシーを追加します。

  • の使用方法を理解します AWS Secrets Manager。Secrets Manager を使用して、データストアの接続認証情報やその他の機密情報を提供することをお勧めします。Secrets Manager を使用して認証情報を保存する方法の詳細については、「Secrets Manager での接続認証情報の保存 AWS」を参照してください。

接続定義 JSON ファイルを作成する

AWS Glue 接続定義ファイルを作成するには、JSON ファイルを作成して、 をインストールして設定したマシンの接続の詳細を定義します AWS CLI。この例では、ファイルに という名前を付けますsagemaker-sql-connection.json

接続定義ファイルは、次の一般的な形式に従う必要があります。

  • Name は接続の名前です。

  • 説明は、接続のテキスト説明です。

  • ConnectionType は接続のタイプです。[REDSHIFT]、[ATHENA]、または [SNOWFLAKE] を選択します。

  • ConnectionProperties は、 AWS シークレットの ARN やデータベースの名前など、接続プロパティのキーと値のペアのマップです。

{ "ConnectionInput": { "Name": <GLUE_CONNECTION_NAME>, "Description": <GLUE_CONNECTION_DESCRIPTION>, "ConnectionType": "REDSHIFT | ATHENA | SNOWFLAKE", "ConnectionProperties": { "PythonProperties": "{\"aws_secret_arn\": <SECRET_ARN>, \"database\": <...>}" } } }
注記
  • ConnectionProperties キー内のプロパティは、文字列化されたキーと値のペアで構成されます。キーまたは値で使用される二重引用符は、バックスラッシュ (\) 文字でエスケープします。

  • Secrets Manager で使用できるすべてのプロパティは、 を通じて直接提供することもできますPythonProperties。ただし、パスワードなどの機密フィールドを に含めることはお勧めしませんPythonProperties。代わりに、Secrets Manager を使用することをお勧めします。

さまざまなデータストアに固有の接続定義ファイルは、以下のセクションで確認できます。

各データソースの接続定義ファイルには、SQL 拡張機能からそれらのデータストアに接続するために必要な特定のプロパティと設定が含まれています。そのソースへの接続の定義の詳細については、該当するセクションを参照してください。

このセクションでは、Amazon Redshift に固有の JSON 定義ファイルのシークレットプロパティと接続プロパティについて詳しく説明します。接続設定ファイルを作成する前に、Amazon Redshift アクセス認証情報をシークレットとして Secrets Manager に保存することをお勧めします。または、 AWS Identity and Access Management (IAM) アクセス許可ポリシーによって付与されたアクセス許可に基づいて一時的なデータベース認証情報を生成して、ユーザーが Amazon Redshift データベースに対して持っているアクセスを管理することもできます。詳細については、「IAM 認証を使用したデータベースユーザー認証情報の生成」を参照してください。

Amazon Redshift アクセス認証情報のシークレットを作成する

Amazon Redshift 情報を AWS Secrets Manager に保存するには
  1. AWS コンソールから Secrets Manager に移動します。

  2. [新しいシークレットを保存] を選択します。

  3. シークレットタイプ で、Amazon Redshift の認証情報 を選択します。

  4. Amazon Redshift クラスターの起動時に設定された管理者ユーザー名とパスワードを入力します。

  5. シークレットに関連付けられている Amazon Redshift クラスターを選択します。

  6. シークレットに名前を付けます。

  7. 残りの設定は、最初のシークレット作成時のデフォルト値のままにすることも、必要に応じてカスタマイズすることもできます。

  8. シークレットを作成し、その ARN を取得します。

Amazon Redshift AWS Glue の接続を設定する

SQL 拡張機能は、カスタム AWS Glue 接続を使用してデータソースに接続します。データソースを接続するための AWS Glue 接続の作成に関する一般的な情報については、「」を参照してくださいAWS Glue 接続を設定する。次の例は、Amazon Redshift に接続するための AWS Glue 接続定義の例です。

新しい接続を作成する前に、次の推奨事項に注意してください。

  • PythonProperties キー内のプロパティは、文字列化されたキーと値のペアで構成されます。キーまたは値で使用される二重引用符は、バックスラッシュ (\) 文字でエスケープします。

  • 接続定義ファイルで、接続の名前と説明を入力し、 のシークレットの ARN を以前に作成したシークレットの ARN aws_secret_arn に置き換えます。

  • 上記の接続定義で名前で宣言されたデータベースがクラスターデータベースと一致していることを確認します。これを確認するには、Amazon Redshift コンソール のクラスターの詳細ページに移動し、「プロパティ」セクションの「データベース設定」でデータベース名を確認します。

  • その他のパラメータについては、「」の「Amazon Redshift でサポートされている接続プロパティのリスト」を参照してくださいAmazon Redshift 接続パラメータ

    注記
    • デフォルトでは、接続プロパティの が に設定されていない限り、Python の SQL 拡張コネクタはトランザクションauto_commit内のすべてのクエリを実行しますtrue

    • シークレットには、database名前を含むすべての接続パラメータを追加できます。

{ "ConnectionInput": { "Name": "Redshift connection name", "Description": "Redshift connection description", "ConnectionType": "REDSHIFT", "ConnectionProperties": { "PythonProperties":"{\"aws_secret_arn\": \"arn:aws:secretsmanager:region:account_id:secret:secret_name\", \"database\":\"database_name\", \"database_metadata_current_db_only\": false}" } } }

定義ファイルが更新されたら、「」の手順に従って AWS Glue 接続接続の作成 AWS Glueを作成します。

このセクションでは、Athena に固有の JSON 定義ファイルの接続プロパティについて詳しく説明します。

Athena AWS Glue の接続を設定する

SQL 拡張機能は、カスタム AWS Glue 接続を使用してデータソースに接続します。データソースを接続するための AWS Glue 接続の作成に関する一般的な情報については、「」を参照してくださいAWS Glue 接続を設定する。次の例は、Athena に接続するための AWS Glue 接続定義の例です。

新しい接続を作成する前に、次の推奨事項に注意してください。

  • ConnectionProperties キー内のプロパティは、文字列化されたキーと値のペアで構成されます。キーまたは値で使用される二重引用符は、バックスラッシュ (\) 文字でエスケープします。

  • 接続定義ファイルで、接続の名前と説明を入力し、 をカタログcatalog_nameの名前、 を s3_staging_dir Amazon S3 バケット内の出力ディレクトリの Amazon S3 URI (Uniform Resource Identifier)、 を Amazon S3 バケットのregion_nameリージョンに置き換えます。

  • その他のパラメータについては、「」の「Athena でサポートされている接続プロパティのリスト」を参照してくださいAthena 接続パラメータ

    注記
    • catalog_name または を含むすべての接続パラメータをs3_staging_dirシークレットに追加できます。

    • を指定した場合workgroup、 を指定する必要はありませんs3_staging_dir

{ "ConnectionInput": { "Name": "Athena connection name", "Description": "Athena connection description", "ConnectionType": "ATHENA", "ConnectionProperties": { "PythonProperties": "{\"catalog_name\": \"catalog_name\",\"s3_staging_dir\": \"s3://bucket_name_in_same_region/output_query_results_dir/\", \"region_name\": \"region\"}" } } }

定義ファイルが更新されたら、「」の手順に従って AWS Glue 接続接続の作成 AWS Glueを作成します。

このセクションでは、Snowflake に固有の JSON 定義ファイルのシークレットプロパティと接続プロパティについて詳しく説明します。接続設定ファイルを作成する前に、Snowflake アクセス認証情報をシークレットとして Secrets Manager に保存することをお勧めします。

Snowflake アクセス認証情報のシークレットを作成する

Amazon Redshift 情報を Secrets Manager に保存するには
  1. AWS コンソールから Secrets Manager に移動します。

  2. [新しいシークレットを保存] を選択します。

  3. シークレットタイプ で、その他のタイプのシークレット を選択します。

  4. キーと値のペアで、プレーンテキスト を選択し、次の JSON コンテンツをコピーします。userpassword、および をそれらの値accountに置き換えます。

    { "user":"snowflake_user", "password":"snowflake_password", "account":"account_id" }
  5. シークレットに名前を付けます。

  6. 残りの設定は、最初のシークレット作成時のデフォルト値のままにすることも、必要に応じてカスタマイズすることもできます。

  7. シークレットを作成し、その ARN を取得します。

Snowflake AWS Glue の接続を設定する

SQL 拡張機能は、カスタム AWS Glue 接続を使用してデータソースに接続します。データソースを接続するための AWS Glue 接続の作成に関する一般的な情報については、「」を参照してくださいAWS Glue 接続を設定する。次の例は、Snowflake に接続するための AWS Glue 接続定義の例です。

新しい接続を作成する前に、次の推奨事項に注意してください。

  • ConnectionProperties キー内のプロパティは、文字列化されたキーと値のペアで構成されます。キーまたは値で使用される二重引用符は、バックスラッシュ (\) 文字でエスケープします。

  • 接続定義ファイルで、接続の名前と説明を入力し、 のシークレットの ARN を以前に作成したシークレットの aws_secret_arn ARN、および のアカウント ID に置き換えますaccount

  • その他のパラメータについては、 の Snowflake でサポートされている接続プロパティのリストを参照してくださいSnowflake 接続パラメータ

    注記

    を含むすべての接続パラメータをaccountシークレットに追加できます。

{ "ConnectionInput": { "Name": "Snowflake connection name", "Description": "Snowflake connection description", "ConnectionType": "SNOWFLAKE", "ConnectionProperties": { "PythonProperties": "{\"aws_secret_arn\": \"arn:aws:secretsmanager:region:account_id:secret:secret_name\", \"account\":\"account_id\"}"}" } } }

定義ファイルが更新されたら、「」の手順に従って AWS Glue 接続接続の作成 AWS Glueを作成します。

接続の作成 AWS Glue

を介して AWS Glue 接続を作成するには AWS CLI、接続定義ファイルを使用してこの AWS CLI コマンドを実行します。region プレースホルダーを AWS リージョン名に置き換え、定義ファイルへのローカルパスを指定します。

注記

設定定義ファイルへのパスの前に を付ける必要がありますfile://

aws --region region glue create-connection --cli-input-json file://path_to_file/sagemaker-sql-connection.json

次のコマンドを実行して AWS Glue 接続が作成されたことを確認し、接続名を確認します。

aws --region region glue get-connections

または、次のように既存の AWS Glue 接続を更新することもできます。

  • 必要に応じて AWS Glue 接続定義ファイルを変更します。

  • 次のコマンドを実行して接続を更新します。

    aws --region region glue update-connection --name glue_connection_name --cli-input-json file://path_to_file/sagemaker-sql-connection.json