カスタムコネクタの開発
コードを記述すると、データストアとの間でデータの読み取りや書き込みを実行したり、AWS Glue Studio ジョブで使用するためにデータのフォーマットを行ったりできます。Spark、Athena、JDBC データストアのためのコネクタを作成できます。実装する必要がある基本的なインターフェイスの概要は、GitHub に掲載されているサンプルコードで提供しています。
コネクタコードを作成するには、ローカルの開発環境が必要です。コネクタを書き込むには、任意の IDE やコマンドラインエディタを使用することもできます。開発環境の例には以下があります。
-
ローカルの AWS Glue ETL Mavenライブラリを使用したローカル Scala 環境 (AWS Glueデベロッパーガイドの「Developing Locally with Scala」を参照)。
-
https://www.jetbrains.com/idea/
からダウンロードして使用する、IntelliJ IDE。
トピック
Spark コネクタの開発
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
Athena コネクタの開発
Athena コネクタを作成し、AWS Glue および AWS Glue Studio でカスタムのデータソースをクエリするために使用できます。
カスタムの Athena コネクタを作成するには
Athena コネクタ開発のための AWS Glue GitHub サンプルライブラリ(https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/Athena
JDBC コネクタの開発
データストアにアクセスするために、JDBC を使用するコネクタを作成できます。
カスタムの JDBC コネクタを作成するには
-
ローカルの開発環境に、AWS Glue Spark ランタイムライブラリをインストールします。手順については、AWS Glue GitHub のサンプルライブラリ (https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/development/GlueSparkRuntime/README.md
) を参照してください。 -
データソースからデータを取得するための JDBC ドライバーを実装します。Java SE 8 向けの Java ドキュメント
を参照してください。 作成しているコード内に、AWS Glue Studio がコネクタの位置を特定するために使用するエントリポイントを記述します。[Class name] (クラス名) フィールドは、JDBC ドライバーへの完全なパスを指定する必要があります。
-
GlueContext
API を使用して、コネクタによりデータを読み取ります。必要に応じてユーザーは、AWS Glue Studio コンソールを使用して、データソースへの接続を設定するための他の入力オプションを追加できます。カスタム JDBC コネクタを使用しながら、JDBC データベースとの間で読み取りおよび書き込みを行うコードの例については、「Custom and AWS Marketplace connectionType values」を参照してください。
AWS Glue Studio でのカスタムコネクタ使用例
カスタムコネクタの使用例については、次のブログを参照してください。
-
Apache Hudi: Writing to Apache Hudi tables using AWS Glue Custom Connector
-
Google BigQuery: Migrating data from Google BigQuery to Amazon S3 using AWS Glue custom connectors
-
Snowflake (JDBC): Performing data transformations using Snowflake and AWS Glue
-
SingleStore: Building fast ETL using SingleStore and AWS Glue
Salesforce: 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
-
Amazon Relational Database Service (Amazon RDS): 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
AWS Marketplace 向け AWS Glue コネクターの開発
AWS パートナーであれば、作成したカスタムコネクタを AWS Marketplace にアップロードし、それを AWS Glue のお客様に販売することができます
コネクタコードの開発プロセスは、カスタムコネクタの場合と同様です。ただし、コネクタコードのアップロードと検証のプロセスには、より詳細な要素が含まれます。手順については、GitHub ウェブサイトの「 Creating Connectors for AWS Marketplace