Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🎉 New Destination: Elasticsearch #7005

Merged
merged 34 commits into from
Nov 2, 2021
Merged

Conversation

jdbranham
Copy link
Contributor

@jdbranham jdbranham commented Oct 13, 2021

What

Adds a new Elasticsearch destination

How

This uses the elasticsearch-java rest client from the Elasticsearch team -
https://github.com/elastic/elasticsearch-java/

Read more in the bootstrap.md

Recommended reading order

  1. ElasticsearchConnection.java
  2. ElasticsearchAirbyteMessageConsumerFactory.java
  3. ElasticsearchDestination.java

Pre-merge Checklist

Community member or Airbyter

  • Community member? Grant edit access to maintainers (instructions)
  • Secrets in the connector's spec are annotated with airbyte_secret
  • Unit & integration tests added and passing. Community members, please provide proof of success locally e.g: screenshot or copy-paste unit, integration, and acceptance test output. To run acceptance tests for a Python connector, follow instructions in the README. For java connectors run ./gradlew :airbyte-integrations:connectors:<name>:integrationTest.
  • Code reviews completed
  • Documentation updated
    • Connector's README.md
    • Connector's bootstrap.md. See description and examples
    • docs/SUMMARY.md
    • docs/integrations/<source or destination>/<name>.md including changelog. See changelog example
    • docs/integrations/README.md
    • airbyte-integrations/builds.md
  • PR name follows PR naming conventions
  • Connector added to connector index like described here

Airbyter

If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.

  • Create a non-forked branch based on this PR and test the below items on it
  • Build is successful
  • Credentials added to Github CI. Instructions.
  • /test connector=connectors/<name> command is passing.
  • New Connector version released on Dockerhub by running the /publish command described here

@CLAassistant
Copy link

CLAassistant commented Oct 13, 2021

CLA assistant check
All committers have signed the CLA.

@github-actions github-actions bot added area/connectors Connector related issues area/documentation Improvements or additions to documentation labels Oct 13, 2021
@marcosmarxm
Copy link
Member

Amazing @jdbranham we're going to review this contribution tomorrow or max by Friday. Can you fill the checklst so we can see what step you are?

@jdbranham
Copy link
Contributor Author

Thanks @marcosmarxm - It's still a WIP, but I'll get the checklist updated by tomorrow, and hope to have the basic functionality working end-to-end

@jdbranham

This comment has been minimized.

@jdbranham
Copy link
Contributor Author

Ready!
image

@jdbranham jdbranham marked this pull request as ready for review October 25, 2021 00:12
@marcosmarxm
Copy link
Member

@alexandr-shegeda / @VitaliiMaltsev is it pssible to review this contribution again?

@jdbranham
Copy link
Contributor Author

jdbranham commented Oct 25, 2021

Full E2E test with MySql source to Enterprise Elasticsearch instance -
image

@VitaliiMaltsev
Copy link
Contributor

@alexandr-shegeda / @VitaliiMaltsev is it pssible to review this contribution again?

@marcosmarxm sure, will review it today again

@VitaliiMaltsev
Copy link
Contributor

VitaliiMaltsev commented Oct 27, 2021

/test connector=connectors/destination-elasticsearch

🕑 connectors/destination-elasticsearch https://github.com/airbytehq/airbyte/actions/runs/1389001085
❌ connectors/destination-elasticsearch https://github.com/airbytehq/airbyte/actions/runs/1389001085
🐛

@sherifnada
Copy link
Contributor

@VitaliiMaltsev you'll need to publish from a separate PR that is on the origin repo, this PR is coming from a forked repo. See the Community contribution handbook for more info

# Conflicts:
#	airbyte-config/init/src/main/resources/seed/destination_definitions.yaml
@marcosmarxm marcosmarxm merged commit fb313a6 into airbytehq:master Nov 2, 2021
lmossman pushed a commit that referenced this pull request Nov 3, 2021
* feat: adds destination-elasticsearch

* feat: adds destination-elasticsearch es server container

* refactor: header configuration

* update: only call createIndex when preparing the writes

* update: reuse container

* fix: make index names valid and use namespace

* refactor: use bulk process and buffered consumer

* refactor: fix bulk process and buffered consumer

* chore: update documentation

* update: remove ssl reference

* fix: bulk indexing

adds test logging config to inspect http wire
begins work for overrwriting existing records

* docs: update for authentication

* refactor: simplify config

* refactor: cleanup indices, implement auth

* update: cleanup equals/toString in Elasticsearch ConnectionConfiguration

* chore: use conventions and remove unused code

* update: close underlying rest connection

* update: enable `supportsNormalization`

* refactor: better encapsulate index naming

* update: allow upserting

* update: use oneOf for auth method

* refactor: use encapsulated auth object

* chore: pretty

* update: simplify auth header creation

* chore: remove unused class

* update: use boolean as field type

* adds: elasticsearch example server

* fix: api secret test
@jrhizor jrhizor mentioned this pull request Nov 10, 2021
schlattk pushed a commit to schlattk/airbyte that referenced this pull request Jan 4, 2022
* feat: adds destination-elasticsearch

* feat: adds destination-elasticsearch es server container

* refactor: header configuration

* update: only call createIndex when preparing the writes

* update: reuse container

* fix: make index names valid and use namespace

* refactor: use bulk process and buffered consumer

* refactor: fix bulk process and buffered consumer

* chore: update documentation

* update: remove ssl reference

* fix: bulk indexing

adds test logging config to inspect http wire
begins work for overrwriting existing records

* docs: update for authentication

* refactor: simplify config

* refactor: cleanup indices, implement auth

* update: cleanup equals/toString in Elasticsearch ConnectionConfiguration

* chore: use conventions and remove unused code

* update: close underlying rest connection

* update: enable `supportsNormalization`

* refactor: better encapsulate index naming

* update: allow upserting

* update: use oneOf for auth method

* refactor: use encapsulated auth object

* chore: pretty

* update: simplify auth header creation

* chore: remove unused class

* update: use boolean as field type

* adds: elasticsearch example server

* fix: api secret test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Status: No status
Development

Successfully merging this pull request may close these issues.

9 participants