Live data from Hacker News

Airbnb open-sources Caravel: data exploration and visualization platform

github.com

51–60 of 95 posts

Re: Airbnb open-sources Caravel: data exploration and visualization platform

#51

I'm wondering - what's the effort required to build such a BI tool (tables, charts, maps) these days assuming reusing open source components and focusing on SQL-speaking datastores? Could a small team of experienced devs accomplish such a feat in a year?

Yes, look at the commit log. https://github.com/airbnb/caravel/graphs/contributors

Re: Airbnb open-sources Caravel: data exploration and visualization platform

#52
post #45

The code is so clean and simple. This is great PR for the company. I want to work there.

I think so too! I have done a fair bit of Ruby a few years ago but I'm new to python CRUD apps and trying to improve my knowledge here. Is defining all models in the same file[1] conventional in python apps? Rails used to have separate files for each model. And most Ruby apps that I have seen advocate the one-class-one-file convention. [1] https://github.com/airbnb/caravel/blob/master/caravel/models...

It depends how many models but usually 1 app models == 1 file (taking the app structure from django) unless they are expected to grow.

For example you have a comment app that could contain several models: Comment, Thread, Report, etc those can be in the same file. To continue on the django example, I would personally prefer having a models folder in the comments app and one file per model as some can get really big.

I also do 1 file / model in Flask, minus some specific cases where it just makes sense to have them in the same file

Re: Airbnb open-sources Caravel: data exploration and visualization platform

#53
post #33

If anyone involved with this is around, I'm curious why Airbnb would build something like this - cost, performance, features, all of the above? Data querying and visualization is a pretty crowded field with a lot of commercial options to choose from[1]. I'm not knocking Caravel (it looks amazing) just curious why build vs buy in this case. [1] Tableau, Looker, Periscope, Chartio, Qlikview, Gooddata are just some that…

Can't speak for Airbnb, but I'm not sure that any of the front-end clients that you mentioned (disclosure: I work at Looker), can talk to Druid. So if Airbnb already had a Druid warehouse in place, they may have decided it was easier to roll their own front-end than migrate to a different backend.

Druid is definitely part of the equation.

Larger, data-driven companies with significant engineering teams prefer not relying on 3rd party, closed-sourced vendors. That can represent a significant risk and a blockage for deeper integration with other internal applications when needed.

Not that building always wins over buying, but the balance shifts relatively to the size of the company.

Also, when using open source on the receiving end of the equation, you want to be a good citizen and contribute back to the ecosystem. It ties to pride, passion, and reflect a strong engineering culture, which can help with recruiting.

Re: Airbnb open-sources Caravel: data exploration and visualization platform

#54
post #50

If anyone involved with this is around, I'm curious why Airbnb would build something like this - cost, performance, features, all of the above? Data querying and visualization is a pretty crowded field with a lot of commercial options to choose from[1]. I'm not knocking Caravel (it looks amazing) just curious why build vs buy in this case. [1] Tableau, Looker, Periscope, Chartio, Qlikview, Gooddata are just some that…

Well none of the solutions mentionned are open source. Free as in beer is one incentive as licenses are not cheap, and vendors know when they have you locked down and tend to milk everything they can. More importantly, software for which we don't have control over the source is a risk. In this day and age anyone that cares enough should be able to push a bugfix/hotfix overnight. What if you'd have to wait for entire…

"Free as in beer is one incentive as licenses are not cheap, and vendors know when they have you locked down and tend to milk everything they can."

Free as in beer is never the answer. A project like this takes multiple engineer-years to build and maintain. That's hundreds of thousands of dollars, at least. How much is a site license? Are you sure? Have you negotiated the rate?

Even for "expensive" services, buying it from someone else is almost always cheaper than paying someone to maintaining it yourself, because expensive services are usually expensive for a good reason: they're niche, and finding someone with the expertise to build it is expensive. And having the source is for a product so that you can customize it is certainly a better answer, but it rarely happens, in practice. It's why we have gobs of open-source Apache-foundation products that nobody in their right mind wants to host in-house, unless they absolutely have to.

Developers have a real, well-documented resistance to paying for things, and it sucks. Because in reality, most development of open-source tools happens when someone gets paid to maintain the tool. If they don't, the tool falls into disrepair. Open-source software isn't free -- it's just paid for by someone else.

Re: Airbnb open-sources Caravel: data exploration and visualization platform

#56

If anyone involved with this is around, I'm curious why Airbnb would build something like this - cost, performance, features, all of the above? Data querying and visualization is a pretty crowded field with a lot of commercial options to choose from[1]. I'm not knocking Caravel (it looks amazing) just curious why build vs buy in this case. [1] Tableau, Looker, Periscope, Chartio, Qlikview, Gooddata are just some that…

It is even crowded than that on the commercial offering [0]. But having such a tool as Open Source benefits us all. Especially when trying to connect to obscure or non standard data sources.

[0] https://en.wikipedia.org/wiki/Online_analytical_processing#M...

Re: Airbnb open-sources Caravel: data exploration and visualization platform

#57
post #34
post #30

Earlier quoted context omitted.

They mention that it was originally paired with Druid. The data volume that Druid excels at (and that AirBnB must have) is orders of magnitude larger than what Tableau&Looker do well with. It's probably just built for bigger-than-SQL OLAP usecases.

Looker scales with plenty of data for us at Snapchat, it's more about the underlying database than the BI tool.

Note that this user used to work at Looker.

Re: Airbnb open-sources Caravel: data exploration and visualization platform

#59
post #34

Earlier quoted context omitted.

Looker scales with plenty of data for us at Snapchat, it's more about the underlying database than the BI tool.

Note that this user used to work at Looker.

yep i did.

Re: Airbnb open-sources Caravel: data exploration and visualization platform

#60
post #45

The code is so clean and simple. This is great PR for the company. I want to work there.

I think so too! I have done a fair bit of Ruby a few years ago but I'm new to python CRUD apps and trying to improve my knowledge here. Is defining all models in the same file[1] conventional in python apps? Rails used to have separate files for each model. And most Ruby apps that I have seen advocate the one-class-one-file convention. [1] https://github.com/airbnb/caravel/blob/master/caravel/models...

All models in one models.py file is common for Flask and Django.

If you use multiple apps within one Django project or the equivalent in Flask (Blueprints), that extends to one models.py per app (where a "project" is a collection of "apps").

Sometimes you'll see one file model per (with a models/__init__.py that imports them for use). While I think it keep dependency imports for each model very cleanly separated, you end up having a lot of redundancy importing the same basic pieces in every model file.

Post reply on HN