

# Desenvolvimento de conectores personalizados
<a name="developing-custom-connectors"></a>

Você pode escrever código para ler ou gravar dados no seu datastore e formatar esses dados para usá-los com trabalhos do AWS Glue Studio. Você pode criar conectores para armazenamentos de dados do Spark, Athena e JDBC. O código de exemplo publicado no GitHub fornece uma visão geral das interfaces básicas que você precisa implantar.

Você precisará de um ambiente de desenvolvimento local para criar seu código de conector. Você pode usar qualquer IDE ou até mesmo um simples editor de linha de comando para escrever seu conector. Exemplos de ambientes de desenvolvimento incluem:
+ Um ambiente Scala local com uma biblioteca local de ETL Maven do AWS Glue, conforme descrito em [Desenvolver localmente com o Scala](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-libraries.html#develop-local-scala) no *Guia do desenvolvedor do AWS Glue*.
+ IntelliJ IDE, baixando o IDE de [https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/).

**Topics**
+ [Desenvolvimento de conectores do Spark](#code-spark-connector)
+ [Desenvolvimento de conectores do Athena](#code-athena-connector)
+ [Desenvolvimento de conectores do JDBC](#code-jdbc-connector)
+ [Exemplos de uso de conectores personalizados com o AWS Glue Studio](#custom-connector-examples)
+ [Desenvolver conectores do AWS Glue para o AWS Marketplace](#code-marketplace-connector)

## Desenvolvimento de conectores do Spark
<a name="code-spark-connector"></a>

Você pode criar um conector do Spark para ler dados com o Spark DataSource API V2 (Spark 2.4).

**Para criar um conector personalizado do Spark**

Para desenvolver conectores do Spark, siga as etapas na biblioteca de exemplo do GitHub do AWS Glue, que está localizada em [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).

## Desenvolvimento de conectores do Athena
<a name="code-athena-connector"></a>

Você pode criar um conector do Athena para ser usado pelo AWS Glue e pelo AWS Glue Studio para consultar uma origem dos dados personalizada.

**Para criar um conector personalizado do Athena**

Para desenvolver conectores do Athena, siga as etapas na biblioteca de exemplo do GitHub do AWS Glue, que está localizada em [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).

## Desenvolvimento de conectores do JDBC
<a name="code-jdbc-connector"></a>

Você pode criar um conector que usa o JDBC para acessar seus armazenamentos de dados.

**Para criar um conector do JDBC personalizado**

1. Instale as bibliotecas do runtime Spark do AWS Glue em seu ambiente de desenvolvimento local. Consulte as instruções na biblioteca de exemplo do GitHub do AWS Glue em [ 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. Implante o driver do JDBC responsável por recuperar dados da origem dos dados. Consulte a [documentação do Java](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) para o Java SE 8. 

   Crie um ponto de entrada dentro do seu código que o AWS Glue Studio usará para localizar seu conector. O campo **Class name** (Nome da classe) deve ser o caminho completo do driver do JDBC.

1. Use a API `GlueContext` para ler dados com o conector. Os usuários podem adicionar mais opções de entrada no console do AWS Glue Studio para configurar a conexão com a origem dos dados, se necessário. Para obter um código de exemplo que mostra como ler e gravar em um banco de dados JDBC com um conector JDBC personalizado, consulte [Valores de connectionType do AWS Marketplace e personalizados](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html#aws-glue-programming-etl-connect-market).

## Exemplos de uso de conectores personalizados com o AWS Glue Studio
<a name="custom-connector-examples"></a>

Você pode consultar os seguintes blogs para obter exemplos de uso de conectores personalizados:
+ [Desenvolvimento, teste e implantação de conectores personalizados para seus armazenamentos de dados com o AWS Glue](https://aws.amazon.com/blogs/big-data/developing-testing-and-deploying-custom-connectors-for-your-data-stores-with-aws-glue/)
+ Apache Hudi: [Escrever tabelas Apache Hudi usando o AWS Glue Conector Personalizado](https://aws.amazon.com/blogs/big-data/writing-to-apache-hudi-tables-using-aws-glue-connector/)
+ Google BigQuery: [Dados migratórios do Google BigQuery para o Amazon S3 usando os AWS Glue conectores personalizados](https://aws.amazon.com/blogs/big-data/migrating-data-from-google-bigquery-to-amazon-s3-using-aws-glue-custom-connectors/)
+ Snowflake (JDBC): [Realizar transformações de dados usando o Snowflake e AWS Glue](https://aws.amazon.com/blogs/big-data/performing-data-transformations-using-snowflake-and-aws-glue/)
+ SingleStore: [Construir ETL rápido usando o SingleStore e AWS Glue](https://aws.amazon.com/blogs/big-data/building-fast-etl-using-singlestore-and-aws-glue/)
+ Salesforce:[ Insirir dados do Salesforce no Amazon S3 usando o conector personalizado CData JDBC com 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: [Construir AWS Glue trabalhos Spark ETL usando o Amazon DocumentDB (com compatibilidade MongoDB) e o 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): [Construir AWS Glue trabalhos Spark ETL trazendo seus próprios drivers JDBC para o 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)

## Desenvolver conectores do AWS Glue para o AWS Marketplace
<a name="code-marketplace-connector"></a>

Como um parceiro da AWS, você pode criar conectores personalizados e carregá-los no AWS Marketplace para vender para clientes do AWS Glue.

O processo para desenvolver o código do conector é o mesmo que para conectores personalizados, mas o processo de carregamento e verificação do código do conector é mais detalhado. Consulte as instruções em [Creating Connectors for AWS Marketplace](https://github.com/aws-samples/aws-glue-samples/tree/master/GlueCustomConnectors/marketplace/publishGuide.pdf) (Criar conectores para) no site do GitHub.