4 ms·
That's what we do at Rakam. If you have less than ~10M events per month, Postgresql works smoothly if you use features such as partitioned tables, parallel quer
by buremba 7y ago
That's what we do at Rakam. If you have less than ~10M events per month, Postgresql works smoothly if you use features such as partitioned tables, parallel queries, and BRIN indexes. The only limitation is that since it's not horizontally scalable, your data must fit in one server. We have SDKs that provide ways to send the event data with the following format:
rakam.logEvent('pageview', {url: 'https://test.com'} https://test.com'})
The event types and attributes are all dynamic. The API server automatically infers the attribute types from the JSON blob and creates the tables which correspond to event types and the columns which correspond to event attributes and inserts the data into that table. It also enriches the events with visitor information such as user agent, location, referrer, etc. The users just run the following SQL query:
SELECT url, count(*) from pageview where _city = 'New York' group by 1
All the project is open-source: https://github.com/rakam-io/rakam https://github.com/rakam-io/rakam Would love to get some contribution!