I am new to ES, coming from a RDBMS background and understand that there are certain ways to model your data with ES, that ensure compatibility with Kibana. Namely, nested objects.
I will be using ES for a real-time web application, where the we currently have the main queryable data in a SQL Server data mart. Things like user profiles, etc. are kept in separate, normalized tables.
I would like to know some suggestions on how to model this data in ES. I am guessing that things like user profiles can be kept in separate types?
Taking a stab at this, I envision something like the following mode contained in one index:
User (type)
Key (UserID), Name, etc...
Geographies
Key (UserID:GeoID), GeoName
Projects
Key (UserID:ProjectID), ProjectName
ProjectContent
Key (UserID:ProjectID:ProjectContentID), GeoName, Title, Description, Timestamp
ProfileSettings (type)
Key (UserID:ProfileSettingsID) - Setting1, Setting2, etc...
The ProjectContent
type represents the data mart.
Also, simply guessing on how to create unique keys, I would also like some advice on key naming conventions.
Thank you.