Live data from Hacker News

Ask HN: Good tech talks on how analytics systems are implemented?

news.ycombinator.com

81–87 of 87 posts

Re: Ask HN: Good tech talks on how analytics systems are implemented?

#81
post #17
post #8

Earlier quoted context omitted.

I worked in a 15m/year revenue product for 3 years. Our Analytic system was screw by cookie messages and now GDPR. Marketeers wanted to serve Analytics through Google Tag Manager, which helped customers to block our analytics launcher, meaning 0 data for most of the visits.

Relying solely on client-side logs gets less and less reliable each year.

We never relied only on client side.

Re: Ask HN: Good tech talks on how analytics systems are implemented?

#82
post #20

Earlier quoted context omitted.

>>I'm more curios about the best tools and architectural patterns that work well with each other. Well you can go with: Fancy: Hdfs(distributed file system) as storage - oozie as workflow scheduler for your load(python/hive/scala/spark) - Tableau for visualization (your business ussers will love it. Mid range: SQL Server as storage - Informatica for your workload - power BI /SSRS for visuals Open/low budget: PostgreS…

Tableau has a terrible UI and looks like it hasn't been updated since 1995. Go for Looker instead.

Absolutely what? It's the best in the industry. In that case, could you suggest a better tool, and also maybe separately which tool that looks better?

Re: Ask HN: Good tech talks on how analytics systems are implemented?

#83
post #67

Earlier quoted context omitted.

Pruning the file is done the same way as logrotate, or even with logrotate. You don't track state. When the loader starts up, you spool through the whole file and use ON DUPLICATE KEY IGNORE in your INSERT statement.

The nice thing about the queue is that you can do fanout (eg multiple SQS subscribers to the SNS topic or similar) and have multiple parallel ingestors or change out the backend consumer/db injector without the producers knowing anything about it. You also get HA for free; your solution depends on local node disk persistence.

> your solution depends on local node disk persistence.

We have reached a point where people think that local node disk persistence is an exotic property.

Re: Ask HN: Good tech talks on how analytics systems are implemented?

#84
post #67

Earlier quoted context omitted.

The nice thing about the queue is that you can do fanout (eg multiple SQS subscribers to the SNS topic or similar) and have multiple parallel ingestors or change out the backend consumer/db injector without the producers knowing anything about it. You also get HA for free; your solution depends on local node disk persistence.

> your solution depends on local node disk persistence. We have reached a point where people think that local node disk persistence is an exotic property.

The Chaos Monkey is real. I don’t like losing data unnecessarily. Queues are cheap and are usually run by Other People. It’s basically free reliability. It’s also nice not having to specifically test the mode where the db is offline; this gives free maintenance windows with literally no alternate procedure on producers (and no additional testing).

If we’re gonna sign our lives over to Amazon and Google anyway, we might as well get some reliability out of the exchange.

Re: Ask HN: Good tech talks on how analytics systems are implemented?

#85

My go-to v0 solution is JSON (simple, with no nested objects or lists) written to s3 (partitioned by date, see Hive date partitioning) and AWS Athena (serverless Presto) to do SQL queries on those JSONs. You can build the system in less than an hour, you don't have to manage any VMs and it's relatively easy to extend to a more serious solution (e.g. if you need major scale or Spark-like analytic jobs). Relational dat…

This is the setup I normally use, though I would suggest storing the data in Parquet or ORC format if possible. Kinesis Firehose will perform this conversion for you, and the resulting data files are much smaller. If you need a flexible schema, though, stick with JSON.

Re: Ask HN: Good tech talks on how analytics systems are implemented?

#86

Start by adopting https://github.com/snowplow/snowplow then grow as and where you feel restricted.

Seconded! We're implementing it at GitLab and while the documentation could use some work, it's been pretty great. Coupled with some off the shelf modeling packages[0] you can get good analytics pretty quick. We even started on CloudSQL (Postgres flavor) before migrating to Snowflake.

[0] https://github.com/fishtown-analytics/snowplow/

Re: Ask HN: Good tech talks on how analytics systems are implemented?

#87
post #61

I would be suspicious of most tech talks on this. If someone is giving a tech talk on their analytics systems, they are either working at enormous scale (Facebook, Google), selling something (Splunk), or over engineering their system (many startups). I second advice elsewhere in this thread. Log it into PostgreSQL. If you start overloading that, look into sampling your data before you look into a fancier system. Make…

That's actually what we do at Rakam. Postgresql fits in many analytics workloads with 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. `it just works` up to ~10M events per month. The SDKs provide ways to send the event data with the following format: rakam.logEvent('pageview', {url: ' https://test.com'} ) The e…

To scale a PG db horizontally, you may want to look at https://www.citusdata.com/ (they were recently bought by Microsoft but I don't expect any change on the Open Source part).
Post reply on HN