# Elasticsearch Sink Connector
- Sink connector to consume data from kafka & ingest it into Elasticsearch

## Run Setup
Start sink connector with given below command

`$ cd elasticsearch-connect` \
`$ docker-compose up`

## Connector Config
### How to register elasticsearch sink connector
- You will find given below curl request in docker-compose.yml file
- Look for  `"topics": "pageviews",` replace pageviews with topic name you want to ingest to.
- For more info on config checkout [elasticsearch-sink-connector-configuration-properties](https://docs.confluent.io/current/connect/kafka-connect-elasticsearch/configuration_options.html#elasticsearch-sink-connector-configuration-properties "elasticsearch-sink-connector-configuration-properties")

```
curl -i -X POST -H  "Content-Type:application/json" \
                http://localhost:28083/connectors/sink-elastic-06/config \
                -d '
                {
                    "name": "sink-elastic-06",
                    "config": {
                        "connector.class": "io.confluent.connect.elasticsearch.ElasticsearchSinkConnector",
                        "tasks.max": "1",
                        "topics": "pageviews",
                        "connection.url": "https://vpc-dev-mymac-kafka-neo4j-swmab7laolvwt7rp7utfnhtbxm.us-east-1.es.amazonaws.com/",
                        "key.ignore": "false",
                        "type.name": "lp_test",
                        "schema.ignore": "true",
                        "key.converter": "org.apache.kafka.connect.storage.StringConverter",
                        "value.converter": "org.apache.kafka.connect.json.JsonConverter",
                        "value.converter.schemas.enable": "false"
                    }
                }
```

### How to update elasticsearch sink connector config
- Use curl command as given below to update config

```
curl -i -X PUT -H "Content-Type:application/json" \
            http://localhost:28083/connectors/sink-elastic-06/config \
            -d '{
                "connector.class": "io.confluent.connect.elasticsearch.ElasticsearchSinkConnector",
                "tasks.max": "1",
                "topics": "pageviews2",
                "connection.url": "https://vpc-dev-mymac-kafka-neo4j-swmab7laolvwt7rp7utfnhtbxm.us-east-1.es.amazonaws.com/",
                "key.ignore": "false",
                "type.name": "lp_test",
                "schema.ignore": "true",
                "key.converter": "org.apache.kafka.connect.storage.StringConverter",
                "value.converter": "org.apache.kafka.connect.json.JsonConverter",
                "value.converter.schemas.enable": "false"
            }'
```

### How to delete elasticsearch sink connector
- Use curl command as given below to update sink connector

```
curl -X DELETE http://localhost:28083/connectors/sink-elastic-06
```
