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

Importing data from Elasticsearch #5

Open
saig0 opened this issue Feb 5, 2020 · 9 comments
Open

Importing data from Elasticsearch #5

saig0 opened this issue Feb 5, 2020 · 9 comments
Labels
enhancement New feature or request hacktoberfest

Comments

@saig0
Copy link
Contributor

saig0 commented Feb 5, 2020

@saig0 saig0 added the enhancement New feature or request label Feb 5, 2020
@asaf
Copy link

asaf commented Mar 28, 2020

@saig0 first, i'd like to say that it's a great effort as there's currently no way to read Zeebe data easily.

I would like to clarify this, when ES exporter is enabled, Operate uses ES transformers in order to create its own data, so data gets built on the fly when it is pushed by the exporter.

Since the approach you chose is to create a local DB, I was wondering what would be the approach to support importing data from ES.

@saig0
Copy link
Contributor Author

saig0 commented Mar 30, 2020

@asaf, my idea is similar to Operate.

  • pull ES
  • aggregate data
  • store data in internal DB (which is used to query from)
  • pull next data from ES

The difference to Operate is that the data is stored in a database that is maybe not ES.

@asaf
Copy link

asaf commented Apr 6, 2020

@saig0 ah, I thought operate puts some "processors" on ES somehow, yea fair enough,
I guess you just need some kind of cursor / store the last document fetched as with Hazelcast sequence

@mohit2494
Copy link

Hi there,
I'm looking forward to contribute to this through Hacktoberfest. Can someone help me out chart the details, so that I can make incremental code reviews for this.
Best :)

@saig0
Copy link
Contributor Author

saig0 commented Sep 28, 2020

@mohit2494 awesome 🎉

The basic idea here is to import the data from ES and store it similar to the Hazelcast importer.

  • create a new module for the ES importer similar to /hazelcast-importer
  • create a new importer to poll the data from the different ES indexes and store them in the same way as /hazelcast-importer/src/main/kotlin/io/zeebe/zeeqs/importer/hazelcast/HazelcastImporter.kt
  • store the current position of the ES index to continue after a restart

The data in ES are generated by the ES exporter: https://github.com/zeebe-io/zeebe/tree/develop/exporters/elasticsearch-exporter
Here are the templates for the ES indexes: https://github.com/zeebe-io/zeebe/tree/develop/exporters/elasticsearch-exporter/src/main/resources

Please ask if you've any question or need help :)

@mohit2494
Copy link

Thank you so much for the reply. It looks interesting, though a bit challenging. Can I have an email id where I can get in touch.

Best.
Mohit

@saig0
Copy link
Contributor Author

saig0 commented Sep 30, 2020

@mohit2494 you can get in touch using the Zeebe Slack channel. You can ask questions in general or contact me directly.

@fromz
Copy link

fromz commented Sep 26, 2022

@saig0 is there any idea of an ETA for this at all?

@saig0
Copy link
Contributor Author

saig0 commented Sep 26, 2022

@fromz no ETA. Currently, I don't have any plans to work on it because I don't have a concrete need for it.

But I'm open to contributions from the community. 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request hacktoberfest
Projects
None yet
Development

No branches or pull requests

4 participants