Live data from Hacker News

Apache iceberg the Hadoop of the modern-data-stack?

blog.det.life

41–50 of 67 posts

Re: Apache iceberg the Hadoop of the modern-data-stack?

#41
post #8

Earlier quoted context omitted.

If you want to keep them in S3, consolidate into sorted parquet files. You get random access to row groups, and only the columns you need are read so it’s very efficient. DuckDB can both build and access these files efficiently. You could compact files hourly/nightly/weekly whatever Of course you could also use Aurora for a clean scalable Postgres that can survive zone failures for a simpler solution

The problem is that the initial writing is already so expensive, I guess we'd have to write multiple sensors into the same file instead of having one file per sensor per interval. I'll look into parquet access options, if we could write 10k sensors into one file but still read a single sensor from that file that could work.

You may be able to get close with sufficiently small row groups, but you will have to do some tests. You can do this in a few hours of work, by taking some sensor data, sorting it by the identifier and then writing it to parquet with one row group per sensor. You can do this with the ParquetWriter class in PyArrow, or something else that allows you fine grained control of how the file is written. I just checked and saw that you can have around 7 million row groups per file, so you should be fine.

Then spin up duckdb and do some performance tests. I’m not sure this will work, there is some overheard with reading parquet, which is why it is discouraged to have small files and row groups.

Re: Apache iceberg the Hadoop of the modern-data-stack?

#42

This is a bit overblown. Is Iceberg "easy" to set up? No. Can you get set up in a week? Yes. If you really need a datalake, spending a week setting it up is not so bad. We have a guide[0] here that will get you started in under an hour. For smaller (e.g. under 10tb) data where you don't need real-time, DuckDB is becoming a really solid option. Here's on setup[1] we've played around with using Arrow Flight. If you don…

If you're already in AWS, why wouldn't you use AWS Glue Catalog + AWS SDK for pandas + Athena?

You can setup a data lake, save data and start doing queries in like 10 minutes with this setup.

Re: Apache iceberg the Hadoop of the modern-data-stack?

#43
post #42

This is a bit overblown. Is Iceberg "easy" to set up? No. Can you get set up in a week? Yes. If you really need a datalake, spending a week setting it up is not so bad. We have a guide[0] here that will get you started in under an hour. For smaller (e.g. under 10tb) data where you don't need real-time, DuckDB is becoming a really solid option. Here's on setup[1] we've played around with using Arrow Flight. If you don…

If you're already in AWS, why wouldn't you use AWS Glue Catalog + AWS SDK for pandas + Athena? You can setup a data lake, save data and start doing queries in like 10 minutes with this setup.

These days you can 'just' create an S3 tables bucket. https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tab...

Re: Apache iceberg the Hadoop of the modern-data-stack?

#44
post #42

This is a bit overblown. Is Iceberg "easy" to set up? No. Can you get set up in a week? Yes. If you really need a datalake, spending a week setting it up is not so bad. We have a guide[0] here that will get you started in under an hour. For smaller (e.g. under 10tb) data where you don't need real-time, DuckDB is becoming a really solid option. Here's on setup[1] we've played around with using Arrow Flight. If you don…

If you're already in AWS, why wouldn't you use AWS Glue Catalog + AWS SDK for pandas + Athena? You can setup a data lake, save data and start doing queries in like 10 minutes with this setup.

Agreed.

A lot of people worry would worry about "vendor lock-in" here, but it's certainly convenient.

Re: Apache iceberg the Hadoop of the modern-data-stack?

#45

This is a bit overblown. Is Iceberg "easy" to set up? No. Can you get set up in a week? Yes. If you really need a datalake, spending a week setting it up is not so bad. We have a guide[0] here that will get you started in under an hour. For smaller (e.g. under 10tb) data where you don't need real-time, DuckDB is becoming a really solid option. Here's on setup[1] we've played around with using Arrow Flight. If you don…

heads up the logo on your site needs to be 2x'd in pixel density it comes across as blurry on hidpi displays. or convert it to an svg/vector.

Re: Apache iceberg the Hadoop of the modern-data-stack?

#46
post #4

Does anyone have a good alternative for storing large amounts of very small files that need to be individually queriable? We are dealing with a large amount of sensor readings that we need to be able to query on a per sensor basis and a timespan, and we are dealing with the problem mentioned in the article, that storing millions of small files in S3 is expensive.

I've only played with it a bit but Nvidia AIStore project seems underappreciated: "lightweight, built-from-scratch storage stack tailored for AI applications" + S3 compatible

https://github.com/NVIDIA/aistore

Re: Apache iceberg the Hadoop of the modern-data-stack?

#47
post #39
post #35

Earlier quoted context omitted.

I’ve felt the same way. It’s so inefficient to have two patterns - OLAP and OLTP - both using SQL interfaces but requiring syncing between systems. There are some physical limits at play though. OLAP will always take less processing and disk usage if the data it needs is all right next to each other (columnar storage) where as OLTP’s need for fast writes usually means row based storage is more efficient. I think the…

In a sense, OLAP is just a series of indexing strategies that takes OLTP data and formats it for particular use cases (sometimes with eventual consistency). Some of these indexing strategies in enterprises today involve building out entire bespoke platforms to extract and transform the data. Incremental view maintenance is a step in the right direction - tools like Materialize give you good performance to keep calcul…

Completely agree. All of the pieces are there and it's just waiting to be acted upon. I haven't seen any of the major players really doubling down on this, but would be so compelling.

Re: Apache iceberg the Hadoop of the modern-data-stack?

#48
The only datastack iceberg (or lakehouse) will never replace is OLTP systems, for high-concurrency updates optimistic concurrency control & object store is simply a no go.

Iceberg out-of-the-box is "NOT" good at streaming use cases, unlike formats like Hudi or Paimon, the table format does not have the concept of merge/ index. However, the beauty of iceberg is it is very unopinionated, so it is indeed possible to design an engine to stream write to iceberg. As far as I know this is how engines like Upsolver was implemented: 1. Have in-memory buffer to track incoming rows before flushing a version to iceberg (every 10s to a few minutes). 2. Build Indexing structure to write position deletes/ deletion vector instead of equality deletes. 3. The writer will all try to merge small files and optimize the table.

And stay tuned, we at https://www.mooncake.dev/ are working on a solution to mirror a postgres table to iceberg, and keep them always up-to-date.

Re: Apache iceberg the Hadoop of the modern-data-stack?

#49
This article is just shameless advertising for Estuary Flow, a company that the author is working for. "Operational Maturity", as if Iceberg, Delta or Hudi are not mature. These are battle-tested frameworks that have been in production for years. The "small files problem" is not really a problem because every framework supports some way of compacting smaller files. Just run a nightly job that compacts the small files and you're good 2 go.

Re: Apache iceberg the Hadoop of the modern-data-stack?

#50
post #10
post #4

Does anyone have a good alternative for storing large amounts of very small files that need to be individually queriable? We are dealing with a large amount of sensor readings that we need to be able to query on a per sensor basis and a timespan, and we are dealing with the problem mentioned in the article, that storing millions of small files in S3 is expensive.

SeaweedFS? https://news.ycombinator.com/item?id=39235593

I guess we need more requirements from OP, such if it should be self-hosted or a cloud service
Post reply on HN