

# AWS Glue Studio でのカスタムコネクタと接続の使用
<a name="connectors-chapter"></a>

AWS Glue には、JDBC 接続を使用する最も一般的なデータストア (Amazon Redshift、Amazon Aurora、Microsoft SQL Server、MySQL、MongoDB、PostgreSQL など) に対するサポートが組み込まれています。また、AWS Glue では、抽出、変換、ロード (ETL) ジョブ用にカスタム JDBC ドライバも使用できます。SaaS アプリケーションなど、ネイティブにサポートされていないデータストアに対しては、コネクタを使用することができます。

*コネクタ* とは AWS Glue Studio 内でデータストアに対するアクセスを支援するための、オプションのコードパッケージです。AWS Marketplace で提供されている複数のコネクタをサブスクライブすることができます。

ETL ジョブの作成時には、ネイティブにサポートされているデータストアを使用するか、AWS Marketplace からのコネクタ、または独自のカスタムコネクタを使用できます。コネクタを使用するには、最初にコネクタのための接続を作成する必要があります。*接続*には、特定のデータストアに接続するために必要なプロパティが含まれます。ETL ジョブでは、データソースおよびデータターゲットとの接続を使用します。コネクタと接続は、データストアへのアクセスを容易にするために連携して動作します。

 コネクタの接続を作成する際に、次の接続を使用できます。
+  **Amazon Aurora** – セキュリティ、バックアップと復元、メモリ内アクセラレーションを組み込んだ、スケーラブルで高性能なリレーショナルデータベースエンジン。
+  **Amazon DocumentDB** – MongoDB と SQL API をサポートする、スケーラブルで可用性の高いフルマネージドのドキュメントデータベースサービス。
+  **Amazon Redshift** – MongoDB および SQL API をサポートする、スケーラブルで可用性の高いフルマネージドのドキュメントデータベースサービス。
+  **Azure SQL** – スケーラブルで信頼性が高く安全なデータストレージと管理機能を提供する、Microsoft Azure のクラウドベースのリレーショナルデータベースサービス。
+  **Cosmos DB** – スケーラブルで高性能なデータストレージとクエリ機能を提供する、Microsoft Azure のグローバルに分散されたクラウドデータベースサービス。
+  **Google BigQuery** – 大規模なデータセットに対して高速 SQL クエリを実行するためのサーバーレスクラウドデータウェアハウス。
+  **JDBC** – 接続と、データ接続とのインタラクションに Java API を使用するリレーショナルデータベース管理システム (RDBMS)。
+  **Kafka** – リアルタイムのデータストリーミングとメッセージングに使用されるオープンソースのストリーム処理プラットフォーム。
+  **MariaDB** – 強化されたパフォーマンス、スケーラビリティ、および機能を提供する、コミュニティによって開発された MySQL のフォーク。
+  **MongoDB** – 高いスケーラビリティ、柔軟性、パフォーマンスを提供する、クロスプラットフォームのドキュメント指向データベース。
+  **MongoDB Atlas** – MongoDB のデプロイの管理とスケーリングを簡素化する、MongoDB のクラウドベースの Database as a Service (DBaaS) オファリング。
+  **Microsoft SQL Server** – 堅牢なデータストレージ、分析、レポート機能を提供する、Microsoft のリレーショナルデータベース管理システム (RDBMS)。
+  **[Mixpanel]** – ユーザーがウェブサイト、モバイルアプリケーション、その他のデジタル製品をどのように操作するかを企業が把握するのに役立つ分析プラットフォーム。
+  **MySQL** – ウェブアプリケーションで広く使用されており、その信頼性とスケーラビリティで知られる、オープンソースのリレーショナルデータベース管理システム (RDBMS)。
+  **ネットワーク**- ネットワークデータソースは、データ統合プラットフォームによってアクセスできる、ネットワークからアクセス可能なリソースまたはサービスを表します。
+  **OpenSearch** – OpenSearch データソースは、OpenSearch が接続してデータを取り込むことができるアプリケーションです。
+  **Oracle** – 堅牢なデータストレージ、分析、レポート機能を提供する、Oracle Corporation のリレーショナルデータベース管理システム (RDBMS)。
+  **PostgreSQL** – 堅牢なデータストレージ、分析、レポート機能を提供する、オープンソースのリレーショナルデータベース管理システム (RDBMS)。
+  **[Salesforce]** – Salesforce は、販売、カスタマーサービス、e コマースなどに役立つカスタマーリレーションシップ管理 (CRM) ソフトウェアを提供します。Salesforce ユーザーの場合は、AWS Glue を Salesforce アカウント に接続できます。次に、ETL ジョブのデータソースまたは送信先として Salesforce を使用できます。これらのジョブを実行して、Salesforce と AWS サービス、またはその他のサポートされているアプリケーション間でデータを転送します。
+  **SAP HANA** – 高速データ処理、高度な分析、リアルタイムのデータ統合を提供する、インメモリデータベースおよび分析プラットフォーム。
+  **Snowflake** – スケーラブルで高性能なデータストレージと分析サービスを提供するクラウドベースのデータウェアハウス。
+  **Teradata** – 高性能のデータストレージ、分析、レポート機能を提供する、リレーショナルデータベース管理システム (RDBMS)。
+  **Vertica** – 高速なクエリパフォーマンス、高度な分析、およびスケーラビリティを提供する、ビッグデータ分析用に設計されたカラム指向の分析データウェアハウス。

# カスタムコネクタを作成する
<a name="creating-custom-connectors"></a>

独自のコネクタを作成し、そのコネクタのコードを AWS Glue Studio にアップロードすることもできます。

カスタムコネクタは、AWS Glue Spark ランタイム API を介して AWS Glue Studio に組み込まれます。Spark、Athena、または JDBC インターフェイスと準拠している任意のコネクタを、AWS Glue Spark ランタイムを使用してプラグインすることができます。これにより、カスタムコネクタで使用できる任意の接続オプションを渡すことができます。

[AWS Glue 接続](https://docs.aws.amazon.com/glue/latest/dg/glue-connections.html)でのすべての接続プロパティをカプセル化して、ETL ジョブにその接続名を指定することができます。Data Catalog 接続を統合することで、単一の Spark アプリケーションからの複数の呼び出しや、異なるアプリケーション間での同じ接続プロパティの使用ができるようにします。

接続には、他のオプションを指定することもできます。AWS Glue Studio が生成するジョブスクリプトには、指定された接続オプションを使用してコネクタをプラグインする接続を使用する `Datasource` エントリが含まれています。例:

```
Datasource = glueContext.create_dynamic_frame.from_options(connection_type = 
"custom.jdbc", connection_options = {"dbTable":"Account","connectionName":"my-custom-jdbc-
connection"}, transformation_ctx = "DataSource0")
```

**AWS Glue Studio にカスタムコネクタを追加する方法**

1. カスタムコネクタ用のコードを作成します。詳しくは、「[カスタムコネクタの開発](developing-custom-connectors.md) 」を参照してください。

1. コネクタに、AWS Glue 機能に対するサポートを追加します。以下に、これらの機能について、さらにそれらが AWS Glue Studio で生成されたジョブスクリプトでどのように使用されるかに関する例をいくつか挙げてみます。
   + **データ型のマッピング** – コネクタは、基盤データストアから列を読み込む際に、列をタイプキャストすることができます。例えば `{"INTEGER":"STRING"}` の `dataTypeMapping` では、レコードの解析と `DynamicFrame` の構築時に、`Integer` 型のすべての列を `String` 型の列に変換します。これにより、ユーザーは任意のタイプに列をキャストすることができます。

     ```
     DataSource0 = glueContext.create_dynamic_frame.from_options(connection_type 
     = "custom.jdbc", connection_options = {"dataTypeMapping":{"INTEGER":"STRING"}", 
     connectionName":"test-connection-jdbc"}, transformation_ctx = "DataSource0")
     ```
   + **並列読み取りのパーティション化** – AWS Glue は、列にあるデータを分割することで、データストアから並列データを読み取れるようにします。パーティション列、パーティションの下限、パーティションの上限、およびパーティション数を指定する必要があります。この機能により、データの並列処理と、Spark アプリケーションに割り当てる複数の Spark エグゼキュータの使用が可能になります。

     ```
     DataSource0 = glueContext.create_dynamic_frame.from_options(connection_type 
     = "custom.jdbc", connection_options = {"upperBound":"200","numPartitions":"4",
     "partitionColumn":"id","lowerBound":"0","connectionName":"test-connection-jdbc"},
     transformation_ctx = "DataSource0")
     ```
   + **AWS Secrets Manager を使用した認証情報の保存** – Data Catalog 接続には、AWS Secrets Manager に保存されているシークレットのための `secretId` も含めることができます。AWS シークレットにより、承認と認証に関する情報を安全に保存し、また、AWS Glue の実行時にその情報を提供できます。または、以下に示すように、Spark スクリプトから `secretId` を指定することもできます。

     ```
     DataSource = glueContext.create_dynamic_frame.from_options(connection_type 
     = "custom.jdbc", connection_options = {"connectionName":"test-connection-jdbc",
      "secretId"-> "my-secret-id"}, transformation_ctx = "DataSource0")
     ```
   + **行述語と列射影によるソースデータのフィルタリング** – AWS Glue Spark ランタイムでは、行述語と列射影を使用しながら、SQL クエリをプッシュダウンすることでソースにあるデータをフィルタリングすることもできます。これにより ETL ジョブは、フィルタリングされたデータを、プッシュダウンをサポートするデータストアからより迅速にロードできます。`SELECT id, name, department FROM department WHERE id < 200.` は、JDBC データ・ソースにプッシュダウンされた SQL クエリの例です。

     ```
     DataSource = glueContext.create_dynamic_frame.from_options(connection_type = 
     "custom.jdbc", connection_options = {"query":"SELECT id, name, department FROM department 
     WHERE id < 200","connectionName":"test-connection-jdbc"}, transformation_ctx = 
     "DataSource0")
     ```
   + **ジョブのブックマーク** – AWS Glue は、JDBC ソースからのデータの増分ロードをサポートしています。AWS Glue は、最後に処理された (データストアからの) レコードを追跡し、後続の ETL ジョブ実行で新しいデータレコードを処理します。ジョブのブックマークは、その列が順番に増減しているのであれば、ブックマークキーのデフォルト列としてプライマリキーを使用します。ジョブのブックマークの詳細については、*AWS Glue デベロッパーガイド*の「[ジョブ ブックマーク](https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html)」を参照してください。

     ```
     DataSource0 = glueContext.create_dynamic_frame.from_options(connection_type = 
     "custom.jdbc", connection_options = {"jobBookmarkKeys":["empno"], "jobBookmarkKeysSortOrder"
     :"asc", "connectionName":"test-connection-jdbc"}, transformation_ctx = "DataSource0")
     ```

1. カスタムコネクタを JAR ファイルとしてパッケージ化し、そのファイルを Amazon S3 にアップロードします。

1. カスタムコネクタをテストします。詳細については、GitHub の「[Glue カスタムコネクタ: ローカル検証テストガイド](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/localValidation/README.md)」で手順を参照してください。

1. AWS Glue Studio コンソールのナビゲーションペインで、[**Connectors**] (コネクタ) をクリックします。

1. **[Connectors]** (コネクタ) ページで、**[Create custom connector]** (カスタムコネクタを作成) をクリックします。

1. **[Create custom connector]** (カスタムコネクタの作成) ページで、次の情報を入力します。
   + カスタムコード JAR ファイルの Amazon S3 内ロケーションへのパス。
   + AWS Glue Studio によって使用されるコネクタの名前。
   + コネクタのタイプ (**JDBC**、**Spark**、または **Athena**)。
   + コネクタを使用するために AWS Glue Studio が呼び出す、カスタムコード内のエントリポイントの名前。
     + JDBC コネクタの場合、このフィールドは JDBC ドライバのクラス名です。
     + Spark コネクタの場合、このフィールドは、データソースの完全修飾クラス名、またはそのエイリアスである必要があります。これは、`format` 演算子を使用して Spark データソースをロードする際に使用します。
   + (JDBC のみ) データストアの JDBC 接続で使用されるベース URL。
   + (オプション) カスタムコネクタの説明。

1. **[Create connector]** (コネクターを作成) をクリックします。

1. [コネクタ用の接続を作成する](creating-connections.md) の説明を参考に、**[Connectors]** (コネクタ) ページで、そのコネクタを使用する接続を作成します。

## AWS Glue Studio にコネクタを追加する
<a name="creating-connectors"></a>

コネクタとは、データストアと AWS Glue 間の通信を容易にするための、一連のコードのことです。AWS Marketplace で提供されているコネクタをサブスクライブするか、独自のカスタムコネクタを作成することが可能です。

### AWS Marketplace コネクタをサブスクライブする
<a name="subscribe-marketplace-connectors"></a>

AWS Glue Studio を使用すると、AWS Marketplace からコネクタを簡単に導入できます。

**AWS Marketplace から AWS Glue Studio にコネクタを追加する方法**

1. AWS Glue Studio コンソールのナビゲーションペインで、[**Connectors**] (コネクタ) をクリックします。

1. [**Connectors**] (コネクタ) ページで、[**Go to AWS Marketplace**] をクリックします。

1. AWS Marketplace の **[Featured products]** (注目の製品) で、使用するコネクタを選択します。表示されているコネクタの 1 つを選択するか、または検索することができます。コネクタを、名前またはタイプにより検索したり、オプションを使用して検索結果を絞り込むことができます。

   表示されているコネクタのいずれかを使用するには、**[View product]** (製品を表示する) をクリックします。検索結果からコネクタを見つけた場合は、そのコネクタの名前を選択します。

1. コネクタの製品ページで、そのコネクタに関するタブを開いて情報を表示します。そのコネクタを購入する場合は、**[Continue to Subscribe]** (続行してサブスクライブする) をクリックします。

1. 支払い情報を入力し、**[Continue to Configure]** (設定に進む) をクリックします。

1. **[Configure this software]** (このソフトウェアを設定する) ページで、デプロイの方法と使用するコネクタのバージョンを選択します。**[Continue to Launch]** (続行して起動する) をクリックします。

1. **[Launch this software]** (このソフトウェアを起動する) ページでは、コネクタプロバイダから提供される **[Usage Instructions]** (使用手順) を確認することができます。次に進む準備ができたら、**[AWS Glue Studio で接続をアクティブにする]** を選択します。

   少し待機すると、コンソールに、AWS Glue Studio の **[Create marketplace connection]** (マーケットプレイス接続の作成) ページが表示されます。

1. [コネクタ用の接続を作成する](creating-connections.md) の説明を参考に、このコネクタを使用する接続を作成します。

   または、**[Activate connector only]** (アクティブなコネクタのみ) を選択し、この時点での接続の作成をスキップすることも可能です。後にコネクタを使用する際には、先に接続を作成する必要があります。

# コネクタ用の接続を作成する
<a name="creating-connections"></a>

AWS Glue 接続は、特定のデータストアの接続情報を保存する Data Catalog オブジェクトです。接続には、ログイン認証情報、URI 文字列、Virtual Private Cloud (VPC) 情報などが含まれます。データカタログで接続を作成することで、クローラーまたはジョブを作成するたびに、すべての接続の詳細を指定する必要がなくなります。

**コネクタのために接続を作成するには**

1. AWS Glue Studio コンソールのナビゲーションペインで、[**Connectors**] (コネクタ) をクリックします。**[接続]** セクションで、**[接続を作成]** を選択します。

1. **[データ接続を作成]** ウィザードのステップ 1 で、接続を作成するデータソースを選択します。使用可能なデータソースを表示するには、以下のような複数の方法があります。
   + タブを選択して、使用可能なデータソースをフィルタリングします。デフォルトでは、**[すべてのコネクタ]** が選択されています。
   + **[リスト]** に切り替えてデータソースをリストとして表示するか、または **[グリッド]** に切り替えてグリッドレイアウトで使用可能なコネクタを表示します。
   + データソースのリストを絞り込むには、検索バーを使用します。入力すると、検索に一致するソースが表示され、一致しないソースはビューから削除されます。

    データソースを選択したら、**[次へ]** を選択します。

1. ウィザードのステップ 2 で接続を設定します。

   接続の詳細を入力します。選択したコネクタのタイプに応じて、追加情報の入力を促されます。  
![\[スクリーンショットは、[コネクタ] ページと [接続] セクションを示しています。[接続を作成] ボタンは赤いボックスで囲まれています。接続ウィザードを開始するには、[接続を作成] を選択します。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/connections-create-connection.png)

1.  **[データ接続を作成]** ウィザードのステップ 1 で、接続を作成するデータソースを選択します。使用可能なデータソースを表示するには、いくつかの方法があります。デフォルトでは、使用可能なすべてのデータソースがグリッドレイアウトで表示されます。以下の操作も可能です。
   + **[リスト]** に切り替えてデータソースをリストとして表示するか、または **[グリッド]** に切り替えてグリッドレイアウトで使用可能なコネクタを表示します。
   + データソースのリストを絞り込むには、検索バーを使用します。入力すると、検索に一致するソースが表示され、一致しないソースはビューから削除されます。  
![\[スクリーンショットは、検索バーと、グリッドとリストの切り替えを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/connections-create-step-1-view.png)

    データソースを選択したら、**[次へ]** を選択します。

1. ウィザードのステップ 2 で接続を設定します。

   接続の詳細を入力します。選択したコネクタの種類によっては、追加の接続情報の入力が必要になる場合があります。これには次が含まれる場合があります。
   +  **[接続の詳細]** – これらのフィールドは、接続先のデータソースに応じて変わります。例えば、Amazon DocumentDB データベースに接続しようとしている場合は、Amazon DocumentDB URL を入力します。Amazon Aurora に接続しようとしている場合は、データベースインスタンスを選択し、データベース名を入力します。Amazon Aurora に必要な [接続の詳細] は次のとおりです。  
![\[スクリーンショットは、データソースとして Amazon Aurora を設定するために必要な接続の詳細を示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/connections-create-step-2-configure.png)
   +  認証情報タイプ – **[ユーザー名とパスワード]**、または **[AWS Secrets Manager]** のいずれかを選択します。要求された認証情報を入力します。
   + JDBC を使用するコネクタの場合は、データストアに JDBC URL を作成するために必要な情報を入力します。
   + Virtual Private Cloud (VPC) を使用する場合は、VPC のネットワーク情報を入力します。

1. ウィザードのステップ 3 で接続のプロパティを設定します。このステップのオプション部分として、説明とタグを追加できます。名前は必須であり、デフォルト値が事前に入力されています。[**次へ**] を選択します。

1. 接続ソース、詳細、プロパティを確認します。変更を加える必要がある場合は、ウィザードのステップで **[編集]** を選択します。準備ができたら、**[接続を作成]** を選択します。

   **[Create connection]** (接続の作成) を選択します。

   再び **[Connectors]** (コネクタ) ページが表示され、作成された接続が情報バナーに表示されます。AWS Glue Studio ジョブで接続を使用することができるようになりました。

# Kafka 接続を作成する
<a name="creating-connections-kafka"></a>

 Kafka 接続を作成するときには、ドロップダウンメニューから **Kafka** を選択すると追加設定が表示され、構成できるようになります。
+  Kafka クラスターの詳細 
+  認証 
+  暗号化 
+  ネットワークオプション 

 **Kafka クラスターの詳細を設定する** 

1.  クラスターの場所を選択します。**Amazon Managed Streaming for Apache Kafka (MSK)** クラスターまたは **Customer managed Apache Kafka** クラスターから選択できます。Amazon Managed streaming for Apache Kafka の詳細については、[Amazon Managed Streaming for Apache Kafka (MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) を参照してください。
**注記**  
 Amazon Managed Streaming for Apache Kafka は TLS および SASL/SCRAM-SHA-512 認証方法のみをサポートします。  
![\[スクリーンショットは、クラスターの場所を選択したり、Kafka ブートストラップサーバーの URL を入力したりすることができる Kafka クラスターの詳細セクションを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/kafka-cluster-details.png)

1.  Kafka ブートストラップサーバーの URL を入力します。各サーバーをカンマで区切ることで、複数のサーバーを入力できます。URL の末尾に `:<port number>` を足してポート番号を入力します。

    例: `b-1.vpc-test-2.034a88o.kafka-us-east-1.amazonaws.com:9094` 

 **認証方法の選択** 

![\[スクリーンショットには、Kafka 認証方法を選択できるドロップダウンメニューが表示されています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/kafka-connection-authentication.png)


AWS Glue は、認証用の Simple Authentication and Security Layer (SASL) フレームワークをサポートしています。SASL フレームワークはさまざまな認証メカニズムをサポートしており、AWS Glue は SCRAM プロトコル (ユーザー名およびパスワード)、GSSAPI プロトコル (Kerberos プロトコル)、PLAIN プロトコル (ユーザー名およびパスワード) を提供します。

ドロップダウンメニューから認証方法を選択するときには、次のクライアント認証方法を選択できます。
+ None - 認証なし。これは、テスト目的で接続する場合に便利です。
+ SASL/SCRAM-SHA-512 - これを選択すると、この認証方法のための認証情報が指定されます。2 つのオプションがあります。
  + AWS Secrets Manager を使用 (推奨) - このオプションを選択すると、認証情報が AWS Secrets Manager に保存され、必要になった際に AWS Glue からその情報へアクセスすることを許可できます。SSL または SASL 認証の認証情報を格納するシークレットを指定します。  
![\[スクリーンショットは、認証方法が SALS/SCRAM-SHA-512 の場合の認証情報オプションを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/kafka-connection-authentication-sha-512.png)
  + ユーザー名とパスワードを直接指定します。
+  SASL/GSSAPI (Kerberos) - このオプションを選択すると、キータブファイル、krb5.conf ファイルの場所を選択して、Kerberos プリンシパル名と Kerberos サービス名を入力することができます。キータブファイルと krb5.conf ファイルの場所は、Simple Storage Service (Amazon S3) がある場所の中にする必要があります。MSK は SALS/GSSAPI をまだサポートしていないため、このオプションは Customer Managed Apache Kafka クラスターでのみ使用できます。詳細については、「[MIT Kerberos ドキュメント: キータブ](https://web.mit.edu/kerberos/krb5-latest/doc/basic/keytab_def.html)」を参照してください。
+  SASL/PLAIN - 認証用の認証情報を指定するためにこの認証方法を選択します。2 つのオプションがあります。
  + AWS Secrets Manager を使用 (推奨) - このオプションを選択すると、認証情報が AWS Secrets Manager に保存され、必要になった際に AWS Glue からその情報へアクセスすることを許可できます。SSL または SASL 認証の認証情報を格納するシークレットを指定します。
  + ユーザー名とパスワードを直接指定します。
+  SSL クライアント認証 - このオプションを選択すると、Simple Storage Service (Amazon S3) を参照することで Kafka クライアントキーストアの場所を選択できます。オプションで、Kafka クライアントキーストアのパスワードと Kafka クライアントキーのパスワードを入力できます。

![\[スクリーンショットは、SSL が認証方法である場合の暗号化オプションを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/kafka-connection-authentication-ssl.png)


 **暗号化設定の構成** 

1.  Kafka 接続に SSL 接続が必要な場合は、**[Require SSL connection]** (SSL 接続が必要) チェックボックスを選択します。SSL 経由で接続できない場合、接続は失敗することに留意してください。暗号化用の SSL は、任意の認証方法 (SASL/SCRAM-SHA-512、SASL/GSSAPI、SASL/PLAIN、SSL クライアント認証) と使用できるオプションです。

    認証方式が **[SSL client authentication]** (SSL クライアント認証) に設定されている場合、このオプションは自動的に選択され、変更を防ぐために無効化されます。

1.  (オプション)。認証機関 (CA) からプライベート証明書の場所を選択します。証明書の場所は S3 が存在する場所の中である必要があることに留意してください。**[Browse]** (参照) を選択して、接続された S3 バケットからファイルを選択します。パスは `s3://bucket/prefix/filename.pem` の形式で指定する必要があります。ファイル名と .pem 拡張子で終わる必要があります。

1.  認証機関 (CA) からの証明書の検証はスキップできます。**[Skip validation of certificate from certificate authority (CA)]** (認証機関 (CA) からの証明書の検証をスキップする) チェックボックスを選択してください。このチェックボックスにチェックは入っていない場合、AWS Glue は、3 つのアルゴリズムの証明書を検証します。
   +  SHA256withRSA 
   +  SHA384withRSA 
   +  SHA512withRSA 

![\[スクリーンショットには、暗号化の構成に関するオプションが示されています。これらのオプションには SSL 接続を必要とするかどうかのオプション、認証機関 (CA) からのプライベート証明書の場所を選択するオプション、認証機関 (CA) からの証明書の検証をスキップするためのオプションが含まれます。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/kafka-connection-encryption.png)


 **(オプション) ネットワークオプション** 

 以下は、VPC、サブネット、およびセキュリティグループを設定するためのオプションのステップです。AWS Glue ジョブを仮想プライベートクラウド (VPC) サブネット内の Amazon EC2 インスタンスで実行する必要がある場合は、追加の VPC に固有の設定情報を提供する必要があります。

1.  データストアが含まれる VPC (仮想プライベートクラウド) を選択します。

1.  VPC を持つサブネットを選択します。

1.  VPC サブネット内のデータストアへのアクセスを許可するセキュリティグループを 1 つ以上選択します。セキュリティグループは、サブネットに接続されている ENI に関連付けられています。すべての TCP ポートに対して、自己参照のインバウンドルールを持つセキュリティグループを少なくとも 1 つ選択する必要があります。

![\[スクリーンショットは、VPC、サブネット、およびセキュリティグループのオプションとなるネットワークオプションを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/kafka-connection-network-options.png)


# カスタムコネクタを使用したジョブのオーサリング
<a name="job-authoring-custom-connectors"></a>

AWS Glue Studio では、データソースノードとデータターゲットノードの両方に対し、コネクタと接続を使用できます

**Topics**
+ [データソースに対しコネクタを使用するジョブを作成する](#create-job-connectors)
+ [コネクタを使用するノードのソースプロパティを設定する](#edit-connector-source)
+ [コネクタを使用するノードのターゲットプロパティの設定](#edit-connector-target)

## データソースに対しコネクタを使用するジョブを作成する
<a name="create-job-connectors"></a>

新しいジョブの作成時に、データソースとデータターゲットで使用するコネクタを選択できます。

**データソースまたはデータターゲットに対しコネクタを使用するジョブを作成するには**

1. AWS マネジメントコンソール にサインインして、AWS Glue Studio コンソール ([https://console.aws.amazon.com/gluestudio/](https://console.aws.amazon.com/gluestudio/)) を開きます。

1. **[Connectors]** (コネクタ) ページの **[Your connections]** (使用する接続)リソースリストで、ジョブで使用する接続を選択してから、**[Create job]** (ジョブを作成) をクリックします。

   または、AWS Glue Studio Glue Studio の **[Jobs]** (ジョブ) ページの **[Create job]** (ジョブを作成) で、**[Source and target added to the graph]** (グラフに追加されたソースとターゲット) を選択します。**[Source]** (ソース) ドロップダウンリストから、ジョブで使用するカスタムコネクタを選択します。また、**[Target]** (ターゲット) のためにコネクタを選択することもできます。  
![\[\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/create-job-data-sources-screenshot.png)

1. **[Create]** (作成) をクリックして、ビジュアルジョブエディタを開きます。

1. 「[コネクタを使用するノードのソースプロパティを設定する](#edit-connector-source)」 にある説明に従い、データソースノードを設定します。

1. 「[AWS Glue Studio でビジュアル ETL ジョブを開始する](edit-nodes-chapter.md)」を参考に、変換、追加のデータストア、データターゲットを追加しながら、ETL ジョブを作成します。

1. 「[ジョブのプロパティを変更する](managing-jobs-chapter.md#edit-jobs-properties)」のように、ジョブのプロパティを設定して、ジョブの実行環境をカスタマイズします。

1. このジョブを保存して、実行します。

## コネクタを使用するノードのソースプロパティを設定する
<a name="edit-connector-source"></a>

データソース用にコネクタを使用するジョブを作成すると、ビジュアルジョブエディタには、コネクタ用に設定されたデータソースのノードを含むジョブグラフが表示されます。このノードには、データソースのプロパティを設定する必要があります。

**コネクタを使用するデータソースノードのプロパティを設定するには**

1. ジョブグラフでコネクタのデータソースノードを選択するか、新しいノードを追加して **[Node type]** (ノードタイプ) でコネクタを選択します。次に、右側のノードの詳細パネルで、**[Data source properties]** (データソースのプロパティ) タブを選択します (まだ選択されていない場合)。  
![\[\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-source-properties-connector-screenshot2.png)

1. **[Data source properties]** (データソースのプロパティ) タブで、このジョブに使用する接続を選択します。

   各接続タイプに必要な追加情報を入力します。

------
#### [ JDBC ]
   + **[Data source input type]** (データソースの入力タイプ): テーブル名または SQL クエリのどちらを、データソースとして指定するか選択します。選択した選択に応じて、以下の追加情報を設定する必要があります。
     + [**Table name**] (テーブル名): データソース内のテーブルの名前。データソースで、*テーブル*という用語を使用しない場合、カスタムコネクタの使用状況情報で示されている、適切なデータ構造の名前を指定します (これは、AWS Marketplace で見つかります)。
     + **[Filter predicate]** (フィルター述語): データソースを読み取る際に使用する条件句。これは、データのサブセットを取得するために使用される、`WHERE` 句と類似しています。
     + **[Query code]** (クエリコード): データソースから特定のデータセットを取得するために使用する SQL クエリを入力します。基本 SQL クエリの例は以下のとおりです。

       ```
       SELECT column_list FROM 
                                 table_name WHERE where_clause
       ```
   + [**Schema**] (スキーマ): AWS Glue Studio がデータソースにアクセスする際には、Data Catalog テーブルからメタデータ情報を取得する代わりに、接続内に格納された情報を使用します。このため、データソースのスキーマメタデータを指定する必要があります。[**Add schema**] (スキーマを追加) をクリックして、スキーマエディタを開きます。

     スキーマエディタの使用方法については、「[カスタム変換ノードでスキーマを編集する](transforms-custom.md#transforms-custom-editschema)」を参照してください。
   + **[Partition column]** (パーティション列): (オプション) データの読み取りをパーティション化するには、**[Partition column]** (パーティション列)、**[Lower bound]** (下限)、**[Upper bound]** (上限)、および **[Number of partitions]** (パーティションの数) を、それぞれ指定します。

     `lowerBound` および `upperBound` 値は、パーティションのストライドを決定するために使用されます (テーブル内の行のフィルタリングには使用しません)。返されるテーブル内のすべての行は、パーティション化されています。
**注記**  
列のパーティショニングは、データの読み取りに使用されるクエリに対し、さらにパーティショニング条件を追加します。テーブル名の代わりにクエリを使用する場合は、指定されたパーティショニング条件でクエリが動作することを確認する必要があります。例:  
`"SELECT col1 FROM table1"` の形式のクエリでパーティション列を使用する場合、末尾に `WHERE` 句を追加してそのクエリをテストします。
クエリを `"SELECT col1 FROM table1 WHERE col2=val"` 形式で行っている場合、`AND` とパーティション列を使用する式を使用して、`WHERE` 句を拡張することでそのクエリをテストします。
   + **データ型のキャスティング**: データソースが JDBC で使用できないデータ型を使用している場合、このセクションを使用して、データソースのデータ型を JDBC データ型に変換する方法を指定します。データ型の変換方法には、最大 50 種類までを指定できます。データソース内で同じデータ型を使用しているすべての列は、同じ方法で変換されます。

     例えば、データソース内に `Float` データ型を使用する 3 つの列があり、`Float` データ型に対し JDBC の `String` データ型への変換を指定している場合には、`Float` データ型を使用する 3 つの列がすべて `String` データ型に変換されます。
   + **ジョブのブックマークキー**: ジョブのブックマークは、AWS Glue が状態情報を保持することと、古いデータの再処理を防ぐことを助けます。ブックマークキーとして 1 つ以上の列を指定します。AWS Glue Studio はブックマークキーを使用して ETL ジョブの以前の実行中にすでに処理されたデータを追跡します。カスタムブックマークキーに使用する列は、厳密に単調に増加または減少する必要がありますが、そこにギャップを含むことは可能です。

     ブックマークキーを複数入力した場合は、それらは結合され単一の複合キーを形成します。複合ジョブブックマークキーには、重複する列を含めることはできません。ブックマークキーを指定しない場合、AWS Glue Studio はデフォルトでプライマリキーをブックマークキーとして使用します。ただし、そのプライマリキーが連続して (ギャップなく) 増減することが条件です。ジョブブックマークのプロパティでは有効になっているものの、テーブルにプライマリキーがない場合には、カスタムジョブブックマークキーを指定する必要があります。この指定を行わないと、デフォルトとして使用するプライマリキーの検索が失敗し、ジョブの実行も失敗します。
   + **[Job bookmark keys sorting order]** (Job ブックマークキーの並べ替え順序): キー値を、連続的に増加させるか減少させるかを選択します。

------
#### [ Spark ]
   + [**Schema**] (スキーマ): AWS Glue Studio がデータソースにアクセスする際には、Data Catalog テーブルからメタデータ情報を取得する代わりに、接続内に格納された情報を使用します。このため、データソースのスキーマメタデータを指定する必要があります。[**Add schema**] (スキーマを追加) をクリックして、スキーマエディタを開きます。

     スキーマエディタの使用方法については、「[カスタム変換ノードでスキーマを編集する](transforms-custom.md#transforms-custom-editschema)」を参照してください。
   + [**Connection options:**] (接続オプション): 追加の接続情報やオプションを提供するために、必要に応じて追加のキーと値のペアを入力します。例えば、データベース名、テーブル名、ユーザー名、パスワードを入力します。

     例えば OpenSearch の場合には、[チュートリアル: Elasticsearch 向けの AWS Glue コネクタを使用する](tutorial-elastisearch-connector.md) で説明されているように以下のキーと値のペアを入力します
     + `es.net.http.auth.user` : `username`
     + `es.net.http.auth.pass` : `password` 
     + `es.nodes` : `https://<Elasticsearch endpoint>`
     + `es.port` : `443`
     + `path`: `<Elasticsearch resource>`
     + `es.nodes.wan.only` : `true`

   最小接続オプションの使用例については、GitHub のサンプルテストスクリプト、[MinimalSparkConnectorTest.scala](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Spark/MinimalSparkConnectorTest.scala) を参照してください。ここでは、接続のために指定する一般的な接続オプションが確認できます。

------
#### [ Athena ]
   + [**Table name**] (テーブル名): データソース内のテーブルの名前。Athena-CloudWatch のログからの読み取り用にコネクタを使用している場合は、テーブル名に `all_log_streams` を入力します。
   + **[Athena schema name:]** (Athena のスキーマ名): テーブルを含むデータベースに対応する、Athena データソース内のスキーマを選択します。Athena-CloudWatch のログからの読み取りのためにコネクタを使用している場合は、スキーマ名として `/aws/glue/name` のように入力します。
   + [**Schema**] (スキーマ): AWS Glue Studio がデータソースにアクセスする際には、Data Catalog テーブルからメタデータ情報を取得する代わりに、接続内に格納された情報を使用します。このため、データソースのスキーマメタデータを指定する必要があります。[**Add schema**] (スキーマを追加) をクリックして、スキーマエディタを開きます。

     スキーマエディタの使用方法については、「[カスタム変換ノードでスキーマを編集する](transforms-custom.md#transforms-custom-editschema)」を参照してください。
   + **[Additional connection options]** (その他の接続オプション): 他の接続情報やオプションを提供する際には、必要に応じて追加のキーと値のペアを入力します。

   この例については、[https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Athena](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Athena) にある `README.md` ファイルでご確認ください。このドキュメント内に示す手順では、サンプルコードにより、必要最小限の接続オプション (`tableName`、`schemaName`、および `className`) を使用しています。コード例では、これらのオプションを `optionsMap` 変数の一部として指定しており、それらを実際に指定することで接続を使用できるようになります。

------

1. (オプション) 必要な情報を指定した後は、**[Output schema]** (出力スキーマ) タブを選択することで、出力されたデータソース用のデータスキーマを、ノードの詳細パネルに表示できるようになります。このタブに表示されるスキーマは、ジョブグラフに追加される任意の子ノードによって使用されます。

1. (オプション) ノードおよびデータソースのプロパティを設定した後、ノードの詳細パネルの [Data preview] (データのプレビュー) タブを選択して、データソースからのデータセットをプレビューできます。ジョブ内の任意のノードに対してこのタブを初めて選択すると、データにアクセスする IAM ロールを指定するよう求められます。この機能を使用するには費用がかかり、IAM ロールを指定するとすぐに請求が開始します。

## コネクタを使用するノードのターゲットプロパティの設定
<a name="edit-connector-target"></a>

データターゲットタイプにコネクタを使用する場合は、データターゲットノードのプロパティを設定する必要があります。

**コネクタを使用するデータターゲットノードでプロパティを設定するには**

1. ジョブグラフで、コネクタのデータターゲットノードを選択します。次に、右側のノードの詳細パネルで、**[Data target properties]** (データターゲットのプロパティ) タブを選択します (選択されていない場合)。

1. **[Data target properties]** (データターゲットのプロパティ) タブで、ターゲットへの書き込みに使用する接続を選択します。

   各接続タイプに必要な追加情報を入力します。

------
#### [ JDBC ]
   + [**Connection**] (接続): コネクタで使用する接続を選択します。接続の作成方法については、「[コネクタ用の接続を作成する](creating-connections.md)」を参照してください。
   + **[Table name]** (テーブル名): データターゲット内のテーブルの名前。データターゲットで、*テーブル*という用語を使用しない場合、カスタムコネクタの使用状況情報で示されている、適切なデータ構造の名前を指定します (これは、AWS Marketplace で見つかります)。
   + **[Batch size]** (バッチサイズ) (オプション): 1 回のオペレーションでターゲットテーブルに挿入する、行数またはレコード数を入力します。デフォルト値は 1000 行です。

------
#### [ Spark ]
   + [**Connection**] (接続): コネクタで使用する接続を選択します。以前に接続を作成していない場合は、**[Create connection]** (接続を作成する) をクリックして作成します。接続の作成方法については、「[コネクタ用の接続を作成する](creating-connections.md)」を参照してください。
   + [**Connection options:**] (接続オプション): 追加の接続情報やオプションを提供するために、必要に応じて追加のキーと値のペアを入力します。データベース名、テーブル名、ユーザー名、パスワードを入力することもできます。

     例えば OpenSearch の場合には、[チュートリアル: Elasticsearch 向けの AWS Glue コネクタを使用する](tutorial-elastisearch-connector.md) で説明されているように以下のキーと値のペアを入力します
     + `es.net.http.auth.user` : `username`
     + `es.net.http.auth.pass` : `password` 
     + `es.nodes` : `https://<Elasticsearch endpoint>`
     + `es.port` : `443`
     + `path`: `<Elasticsearch resource>`
     + `es.nodes.wan.only` : `true`

   最小接続オプションの使用例については、GitHub のサンプルテストスクリプト、[MinimalSparkConnectorTest.scala](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Spark/MinimalSparkConnectorTest.scala) を参照してください。ここでは、接続のために指定する一般的な接続オプションが確認できます。

------

1. 必要な情報を指定した後は、**[Output schema]** (出力スキーマ) タブを選択することで、出力されたデータソース用のデータスキーマを、ノードの詳細パネルに表示できるようになります。

# コネクタと接続を管理する
<a name="managing-connectors"></a>

コネクタと接続を管理するには、AWS Glue の **[コネクタ]** ページを使用します。

**Topics**
+ [コネクタと接続の詳細を表示する](#connector-details)
+ [コネクタと接続を編集する](#editing-connectors)
+ [コネクタおよび接続を削除する](#deleting-connectors)
+ [コネクタのサブスクリプションをキャンセルする](#cancel-subscription)

## コネクタと接続の詳細を表示する
<a name="connector-details"></a>

**[Connectors]** (コネクタ) ページの **[Your connectors]** (使用中のコネクタ)、および **[Your connections]** (使用中の接続) リソーステーブルで、コネクタと接続に関する概要情報を表示できます。詳細な情報を表示するには、以下の手順を実行します。

**コネクタまたは接続の詳細を表示するには**

1. AWS Glue Studio コンソールのナビゲーションペインで、[**Connectors**] (コネクタ) をクリックします。

1. 詳細情報を表示するコネクタまたは接続を選択します。

1. **[Actions]** (アクション)、**[View details]** (詳細を表示) の順にクリックして、選択したコネクタまたは接続の詳細ページを開きます。

1. 詳細ページでは、コネクタまたは接続に対し、**[Edit]** (編集) または **[Delete]** (削除) を選択できます。
   + コネクタの場合は、**[Create connection]** (接続を作成する) をクリックすることで、そのコネクタを使用する新しい接続を作成できます。
   + 接続の場合は、**[Create job]** (ジョブを作成する) をクリックすると、その接続を使用するジョブを作成できます。

## コネクタと接続を編集する
<a name="editing-connectors"></a>

**[Connectors]** (コネクタ) ページを使用して、コネクタと接続に保存されている情報を変更します。

**コネクタまたは接続を変更するには**

1. AWS Glue Studio コンソールのナビゲーションペインで、[**Connectors**] (コネクタ) をクリックします。

1. 変更するコネクタまたは接続を選択します。

1. **[Actions]** (アクション) を選択して、**[Edit]** (編集) を選択します。

   また、**[View details]** (詳細を表示する) をクリックし、コネクタまたは接続の詳細ページを開いて、**[Edit]** (編集) を実行することもできます。

1. **[Edit connector]** (コネクタを編集する) または **[Edit connection]** (接続を編集する) ページで、情報を更新した上で、**[Save]** (保存) をクリックします。

## コネクタおよび接続を削除する
<a name="deleting-connectors"></a>

コネクタと接続を削除するには、**[Connectors]** (コネクタ) ページを使用します。コネクタを削除すると、そのコネクタのために作成された接続もすべて削除されます。

**AWS Glue Studio からコネクタを削除する方法**

1. AWS Glue Studio コンソールのナビゲーションペインで、[**Connectors**] (コネクタ) をクリックします。

1. 削除するコネクタまたは接続を選択します。

1. **[Actions]** (アクション) を選択してから、**[Delete]** (削除) をクリックします。

   または、**[View details]** (詳細を表示する) をクリックし、コネクタまたは接続の詳細ページで、**[Delete]** (削除) を実行することもできます。

1. 「**Delete**」と入力し、コネクタまたは接続を削除することを確認した上で、**[Delete]** (削除) をクリックします。

   コネクタを削除すると、そのコネクタのために作成された接続もすべて削除されます。

ここで削除される接続を使用していたジョブも、すべて機能しなくなります。これらのジョブは、別のデータストアを使用するように編集することも、あるいは削除することもできます。ジョブを削除する方法については、「[ジョブの削除](managing-jobs-chapter.md#delete-jobs)」を参照してください。

コネクタを削除しても、そのコネクタの AWS Marketplace に対するサブスクリプションはキャンセルされません。削除されたコネクタのサブスクリプションを削除するには、「[コネクタのサブスクリプションをキャンセルする](#cancel-subscription)」の手順に従います。

## コネクタのサブスクリプションをキャンセルする
<a name="cancel-subscription"></a>

AWS Glue Studio から接続とコネクタをキャンセルした後、不要になったコネクタのサブスクリプションを AWS Marketplace でキャンセルできます。

**注記**  
コネクタのサブスクリプションをキャンセルしても、コネクタや接続はアカウントから削除されません。コネクタと、それに関連する接続を使用するジョブは、以後コネクタを使用できなくなり失敗します。  
AWS Marketplace から、コネクタのサブスクリプション解除または再サブスクライブを行う際には、その前に、対象の AWS Marketplace 製品に関連付けられた既存の接続とコネクタを削除する必要があります。

**AWS Marketplace でコネクタのサブスクリプションを解除するには**

1. AWS Marketplace コンソール ([https://console.aws.amazon.com/marketplace](https://console.aws.amazon.com/marketplace)) にサインインします。

1. **[Manage subscriptions]** (サブスクリプションを管理する) をクリックします。

1. **[Manage subscriptions]** (サブスクリプションの管理) ページで、キャンセルするコネクタのサブスクリプションの横にある **[Manage]** (管理) をクリックします。

1. **[Actions]** (アクション)、**[Delete Application]** (アプリケーションの削除) の順にクリックします。

1. 実行中のインスタンスがアカウントで課金されることを受け入れるチェックボックスをオンにして、**[Yes, cancel subscription]** (はい、サブスクリプションをキャンセルします) をクリックします。

# カスタムコネクタの開発
<a name="developing-custom-connectors"></a>

コードを記述すると、データストアとの間でデータの読み取りや書き込みを実行したり、AWS Glue Studio ジョブで使用するためにデータのフォーマットを行ったりできます。Spark、Athena、JDBC データストアのためのコネクタを作成できます。実装する必要がある基本的なインターフェイスの概要は、GitHub に掲載されているサンプルコードで提供しています。

コネクタコードを作成するには、ローカルの開発環境が必要です。コネクタを書き込むには、任意の IDE やコマンドラインエディタを使用することもできます。開発環境の例には以下があります。
+ ローカルの AWS Glue ETL Mavenライブラリを使用したローカル Scala 環境 (*AWS Glueデベロッパーガイド*の「[Developing Locally with Scala](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-libraries.html#develop-local-scala)」を参照)。
+ [https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/) からダウンロードして使用する、IntelliJ IDE。

**Topics**
+ [Spark コネクタの開発](#code-spark-connector)
+ [Athena コネクタの開発](#code-athena-connector)
+ [JDBC コネクタの開発](#code-jdbc-connector)
+ [AWS Glue Studio でのカスタムコネクタ使用例](#custom-connector-examples)
+ [AWS Marketplace 向け AWS Glue コネクターの開発](#code-marketplace-connector)

## Spark コネクタの開発
<a name="code-spark-connector"></a>

Spark DataSource API V2 (Spark 2.4) を使用して、データ読み取りのために Spark コネクタを作成することができます。

**カスタム Spark コネクタを作成するには**

Spark コネクタ開発のための AWS Glue GitHub サンプルライブラリ ([https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Spark/README.md](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Spark/README.md)) にある手順に従います。

## Athena コネクタの開発
<a name="code-athena-connector"></a>

Athena コネクタを作成し、AWS Glue および AWS Glue Studio でカスタムのデータソースをクエリするために使用できます。

**カスタムの Athena コネクタを作成するには**

Athena コネクタ開発のための AWS Glue GitHub サンプルライブラリ([https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Athena](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Athena)) にある手順に従います。

## JDBC コネクタの開発
<a name="code-jdbc-connector"></a>

データストアにアクセスするために、JDBC を使用するコネクタを作成できます。

**カスタムの JDBC コネクタを作成するには**

1. ローカルの開発環境に、AWS Glue Spark ランタイムライブラリをインストールします。手順については、AWS Glue GitHub のサンプルライブラリ ([https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/GlueSparkRuntime/README.md](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/GlueSparkRuntime/README.md)) を参照してください。

1. データソースからデータを取得するための JDBC ドライバーを実装します。Java SE 8 向けの [Java ドキュメント](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/)を参照してください。

   作成しているコード内に、AWS Glue Studio がコネクタの位置を特定するために使用するエントリポイントを記述します。**[Class name]** (クラス名) フィールドは、JDBC ドライバーへの完全なパスを指定する必要があります。

1. `GlueContext` API を使用して、コネクタによりデータを読み取ります。必要に応じてユーザーは、AWS Glue Studio コンソールを使用して、データソースへの接続を設定するための他の入力オプションを追加できます。カスタム JDBC コネクタを使用しながら、JDBC データベースとの間で読み取りおよび書き込みを行うコードの例については、「[Custom and AWS Marketplace connectionType values](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html#aws-glue-programming-etl-connect-market)」を参照してください。

## AWS Glue Studio でのカスタムコネクタ使用例
<a name="custom-connector-examples"></a>

カスタムコネクタの使用例については、次のブログを参照してください。
+ [AWS Glue を使用したデータストア用のカスタムコネクタの開発、テスト、およびデプロイ](https://aws.amazon.com/blogs/big-data/developing-testing-and-deploying-custom-connectors-for-your-data-stores-with-aws-glue/)
+ Apache Hudi: [Writing to Apache Hudi tables using AWS Glue Custom Connector](https://aws.amazon.com/blogs/big-data/writing-to-apache-hudi-tables-using-aws-glue-connector/)
+ Google BigQuery: [Migrating data from Google BigQuery to Amazon S3 using AWS Glue custom connectors](https://aws.amazon.com/blogs/big-data/migrating-data-from-google-bigquery-to-amazon-s3-using-aws-glue-custom-connectors/)
+ Snowflake (JDBC): [Performing data transformations using Snowflake and AWS Glue](https://aws.amazon.com/blogs/big-data/performing-data-transformations-using-snowflake-and-aws-glue/)
+ SingleStore: [Building fast ETL using SingleStore and AWS Glue](https://aws.amazon.com/blogs/big-data/building-fast-etl-using-singlestore-and-aws-glue/)
+ Salesforce:[ Ingest Salesforce data into Amazon S3 using the CData JDBC custom connector with AWS Glue](https://aws.amazon.com/blogs/big-data/ingest-salesforce-data-into-amazon-s3-using-the-cdata-jdbc-custom-connector-with-aws-glue) 
+ MongoDB: [Building AWS Glue Spark ETL jobs using Amazon DocumentDB (with MongoDB compatibility) and MongoDB](https://aws.amazon.com/blogs/big-data/building-aws-glue-spark-etl-jobs-using-amazon-documentdb-with-mongodb-compatibility-and-mongodb/)
+ Amazon Relational Database Service (Amazon RDS): [Building AWS Glue Spark ETL jobs by bringing your own JDBC drivers for Amazon RDS ](https://aws.amazon.com/blogs/big-data/building-aws-glue-spark-etl-jobs-by-bringing-your-own-jdbc-drivers-for-amazon-rds/)
+ MySQL (JDBC): [https://github.com/aws-samples/aws-glue-samples/blob/master/GlueCustomConnectors/development/Spark/SparkConnectorMySQL.scala](https://github.com/aws-samples/aws-glue-samples/blob/master/GlueCustomConnectors/development/Spark/SparkConnectorMySQL.scala)

## AWS Marketplace 向け AWS Glue コネクターの開発
<a name="code-marketplace-connector"></a>

AWS パートナーであれば、作成したカスタムコネクタを AWS Marketplace にアップロードし、それを AWS Glue のお客様に販売することができます

コネクタコードの開発プロセスは、カスタムコネクタの場合と同様です。ただし、コネクタコードのアップロードと検証のプロセスには、より詳細な要素が含まれます。手順については、GitHub ウェブサイトの「[ Creating Connectors for AWS Marketplace](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/marketplace/publishGuide.pdf)」を参照してください。

# AWS Glue Studio でのコネクタおよび接続の使用に関する制約事項
<a name="connector-restrictions"></a>

カスタムコネクタ、または AWS Marketplace で提供されているコネクタを使用する際は、以下の制限事項に注意してください。
+ カスタムコネクタ用に作成された接続では、TestConnection API は使用できません。
+ Data Catalog 接続でのパスワードの暗号化は、カスタムコネクタではサポートされていません。
+ JDBC コネクタを使用するデータソースノードでフィルター述語を指定した場合は、ジョブブックマークを使用できなくなります。
+  Marketplace 接続の作成は、AWS Glue Studio ユーザーインターフェイス以外ではサポートされていません。