MongoDB 3.2: Now powered by Postgres
linkedin.com
linkedin.com
http://slamdata.com/blog/2015/12/08/nosql-analytics-for-mong...
Warning: It's not pretty.
1) MongoDB Inc have made a "foreign data wrapper" for PostgreSQL which enables MongoDB databases to be accessed from within PostgreSQL.
2) This makes data in MongoDB databases accessible to existing analytics software for SQL databases, which is often made by companies with lots of money.
3) The CTO of SlamData Inc, which makes analytics software for NoSQL databases, thinks that MongoDB Inc shouldn't have done that.
tl;dr 3.0:
A company faces increased competition; isn't happy about it.
Of course, I'm a bit of a Postgres partisan, and a Mongo refugee, but it still seems like a solid engineering decision and most of this guys arguments seem to hinge on "BUT POSTGRES IS TEH ENEMY!".
What that means is virtually any query will end up executing (via PostgreSQL via FDW via Multicorn via MongoDB) by first pulling out all (!) the data from all (!) source collections, relocating it to MongoDB, and then executing the query. Possibly, in fact, these full collection scans might be repeated multiple times, especially for nested data, crosses, and other types of operations.
And then you'd decide that "solid engineering decision" wasn't so solid after all. Then hopefully you'd quit MongoDB and go work on PostgreSQL full time. ;-)
That application is currently being rewritten on top of PostgreSQL.
Having said that, I very biasedly say that there's a much better solution to this connector, which doesn't flatten out the MongoDB data: it's called ToroDB (https://github.com/torodb/torodb).
ToroDB, open source, speaks the MongoDB protocol, transforms documents to relational tables (without any kind of flattening, and without having to define any schema) and stores data in a RDBMS. More precisely, PostgreSQL.
Current development version (repl branch) speaks the replication protocol, and hence can replicate live from a MongoDB into PostgreSQL. No connector needed, no flattening, no FDWs, nothing else. Just add a new "slave" (ToroDB) to your replica set and you're good to go.
It goes even further: if you want pure data warehousing, ToroDB will soon support GreenPlum. Some initial benchmarks (http://www.slideshare.net/8kdata/torodb-scaling-postgresql-l..., slide #42) show 25x-75x improvement between doing aggregate queries in MongoDB and their equivalent queries in GreenPlum's distributed SQL.
Now that MongoDB 3.2 ships with PostgreSQL "included", feel free to try ToroDB. It's always better the original :)
Note: I am a ToroDB developer.
That said, PostgreSQL FDW is NOT a great option for MongoDB analytics. Not only is the data model so different that you lose the ability to answer many types of questions, but Multicorn supports only basic pushdown (conjunctions of simple relational operators on original columns).
What this means is that analytics via PostgreSQL via FDW via Multicorn via MongoDB suffers from (a) very poor expressive power, and (b) ridiculously slow performance, since nearly any type of query will require at least one full table scan on all the source tables (in some cases, especially with arrays, many more full table scans may be required for a single query!).
Better off just using ToroDB. Am I right? :)
I cannot be objective saying that you should better of using ToroDB, but I definitely think so.
I also want to congratulate you. I think Quasar and SlamData have gone very far, and I'd encourage you to keep on pushing it. While this connector may or may not adversely affect SlamData, there's always room for differentiation and improvement. Good luck!
1. Claim a must-have set of requirements that ... 2. ... happen to match its product's feature set ... 3. ... but not its competitors.'
http://slamdata.com/whitepapers/characteristics-of-nosql-ana... is presumably the core of the argument.
I tend not to pay attention to such claims until the company rephrases them more honestly.
That said, a brief discussion of what is really happening is in http://www.dbms2.com/2015/09/10/mongodb-update/ Would more be better? Sure.
Mongo could refuse this by demonstrating collaboration efforts and solutions with a solution marketplace similar Atlasssian and VMware. On the partner side, cross-selling, cross promotions and collaborative sales/product strategies can reduce conflict and wasted/duplicated/unaligned effort that can lead to sour partner experiences.
makes me wonder if snapchat uses mongo; i can't think of one more suited to snapchat's unique selling point.
EDIT I'm not sure what Pulse is, but it looks like aggregated content. Anyways, here's an article from the LinkedIn engineering team that's well worth a read https://engineering.linkedin.com/distributed-systems/log-wha...