

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 開發自訂連接器


您可以編寫程式碼以從資料存放區讀取資料或將資料寫入資料存放區，以及將用於 AWS Glue Studio 任務的資料格式化。您可以為 Spark、Athena 和 JDBC 資料存放區建立連接器。發佈至 GitHub 的範本程式碼提供了您需要實作的基本介面的概述。

您將需要一個本機開發環境來建立您的連接器程式碼。您可以使用任何 IDE，甚至只是命令行編輯器來編寫連接器。開發環境的範例包括：
+ 本機 Scala 環境搭配本機 AWS Glue ETL Maven 程式庫，如 *AWS Glue 開發人員指南*的[在本機開發 Scala](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-libraries.html#develop-local-scala) 中所述。
+ IntelliJ IDE，透過從 [https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/) 下載 IDE 取得。

**Topics**
+ [

## 開發 Spark 連接器
](#code-spark-connector)
+ [

## 開發 Athena 連接器
](#code-athena-connector)
+ [

## 開發 JDBC 連接器
](#code-jdbc-connector)
+ [

## 搭配 AWS Glue Studio 使用自訂連接器的範例
](#custom-connector-examples)
+ [

## 開發 的AWS Glue連接器 AWS Marketplace
](#code-marketplace-connector)

## 開發 Spark 連接器


您可以使用 Spark DataSource API V2 (Spark 2.4) 建立 Spark 連接器來讀取資料。

**建立自訂 Spark 連接器**

請按照 AWS Glue GitHub 範例程式庫中的步驟來開發 Spark 連接器，網址為 [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 連接器


您可以建立 Athena 連接器，以供 AWS Glue 和 AWS Glue Studio 用於查詢自訂資料來源。

**建立自訂 Athena 連接器**

請依照 AWS Glue GitHub 範例程式庫中的步驟來開發 Athena 連接器，網址為 [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 連接器


您可以建立使用 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 值](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html#aws-glue-programming-etl-connect-market)。

## 搭配 AWS Glue Studio 使用自訂連接器的範例


如需使用自訂連接器的範例，請參閱下列部落格：
+ [使用 AWS Glue 為您的資料存放區開發、測試及部署自訂連接器](https://aws.amazon.com/blogs/big-data/developing-testing-and-deploying-custom-connectors-for-your-data-stores-with-aws-glue/)
+ Apache Hudi：[使用 AWS Glue 自訂連接器寫入 Apache Hudi 資料表](https://aws.amazon.com/blogs/big-data/writing-to-apache-hudi-tables-using-aws-glue-connector/)
+ Google BigQuery：[使用 AWS Glue 自訂連接器將資料從 Google BigQuery 移轉至 Amazon S3](https://aws.amazon.com/blogs/big-data/migrating-data-from-google-bigquery-to-amazon-s3-using-aws-glue-custom-connectors/)
+ Snowflake (JDBC)：[使用 Snowflake 和 AWS Glue 執行資料轉換](https://aws.amazon.com/blogs/big-data/performing-data-transformations-using-snowflake-and-aws-glue/)
+ SingleStore：[使用 SingleStore 和 AWS Glue 建置快速 ETL](https://aws.amazon.com/blogs/big-data/building-fast-etl-using-singlestore-and-aws-glue/)
+ Salesforce：[ 搭配使用 CData JDBC 自訂連接器與 AWS Glue，將 Salesforce 資料擷取至 Amazon S3](https://aws.amazon.com/blogs/big-data/ingest-salesforce-data-into-amazon-s3-using-the-cdata-jdbc-custom-connector-with-aws-glue) - 
+ MongoDB：[使用 Amazon DocumentDB (with MongoDB compatibility) 和 MongoDB 建置 AWS Glue Spark ETL 任務](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)：為 [Amazon RDS 使用您自己的 JDBC 驅動程式來建置 AWS Glue Spark ETL 任務 ](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 Glue連接器 AWS Marketplace


身為 AWS 合作夥伴，您可以建立自訂連接器，並將其上傳至 AWS Marketplace 以銷售給AWS Glue客戶。

開發連接器程式碼的程序與自訂連接器的程序相同，但是上傳和驗證連接器程式碼的程序比較詳細。請參閱 GitHub 網站上[為 AWS Marketplace建立連接器](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/marketplace/publishGuide.pdf)中的指示。