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

GME & the future? #6

Closed
roynasser opened this issue May 14, 2015 · 5 comments
Closed

GME & the future? #6

roynasser opened this issue May 14, 2015 · 5 comments

Comments

@roynasser
Copy link

Hi,

with the announcement that rivers are being discontinued in 2.0, and are discouraged from 1.5 on, will this affect Go-Mysql-Elasticsearch?

Will you be pursuing other alternatives? We are looking into ways of syncing using the recommended method which best suits us (in our case we dont want to start from zero, so looking at Logstash)... Are you/will you be considering GME as an input to logstash perhaps? or is there too much overlap in code alreadt in your opinion?

Logstash doesnt have a mysql input layer, and probably wont ever have something binlog capable... on the otherhand, logstash is already bulking requests and inserting them using the correct apis on ES, so a bridge between GME and logstash could be a natural progression?

I'd like to hear the dev's opinions...

@siddontang
Copy link
Collaborator

Hi @RVN-BR

I know that ES will discard river feature, but this doesn't affect GME, because I don't use river feature at all.

GME is a service acting as a MySQL slave to sync MySQL binlog and then update the data changes into ES with ES http bulk API.

Btw, if you want to sync MySQL binlog and write the changes into logstash, you can use my another project github.com/siddontang/go-mysql, you can use the canal package to sync binlog and write the json format changes in a place which logstash can get.

@roynasser
Copy link
Author

@siddontang Makes perfect sense! I didnt realize GME was using bulk api and not river api... I guess thats future-proof then :)

Thanks

@siddontang
Copy link
Collaborator

Hi @RVN-BR

Thank you reminding me, maybe we can build another repository named go-mysql-logstash, it will sync the mysql data and then write the json format in a place.

But I haven't used logstash, so I don't know the proper format the logstash needs.

@roynasser
Copy link
Author

@siddontang It appears it shouldnt be an issue to configure from the format files in GME to get the appropriate mappings...

I'm now been investigating another interesting and promising project called Crate.io, built on top of ES, but which is more SQL-esque. It allows me to use ES but also to query some data in a structured fashion where it makes more sense. I'm looking into making a driver for GME for crate. It shouldnt be too difficult... crate has a bulk api too, it differs a bit in format from ES, but I'm going to poke around a bit of GO and see if I can eventually try something...

In theory, one can insert straight to ES, but Crate does its own internal type, id, etc mapping which may be difficult or impossible to reproduce statically, so it may be best to try to do it straight to the crate api... https://crate.io/docs/stable/sql/rest.html#bulk-operations

anyways, I am thinking crate may be useful... I'm thinking abt using it as a "bridging gap" for when some things need to be quickly shifted from mysql into a more search-esque backend :) GME might be a great tool to keep the data in sync. At the same time we can still use logstash and other great tools on ES, as well as having a running ES cluster... win win 👍

@siddontang
Copy link
Collaborator

Thanks @RVN-BR, I will look it later. :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants