clojure: All content tagged as clojure in NoSQL databases and polyglot persistence
Monday, 14 June 2010
NoSQL Ecosystem News & Links 2010-06-14
- Juan Maiz: Connecting to MongoHq with Haskell ¶
-
Looks like today we’ll have some geeky stuff:
This connects, logs in, inserts and then retrieves a document in a collection.
- ksankar: A path through a NOSQLSummer Reading ¶
-
In case you have troubles picking up the first NOSQL summer paper, you mind find this classification useful. As a side note, Bucharest was the first city organizing the event and we had quite some fun discussing freely about the CAP Theorem.
- vonconrad: Which of CouchDB or MongoDB suits my needs? ¶
-
Anyone willing to help him out? The presented scenario is quite interesting and definitely a good fit for document databases.
- MongoDB driver for Delphi: pebongo ¶
-
I don’t think I know anyone doing Delphi programming, but why not posting about it since I’ve already covered other “geeky” stuff like Smalltalk and CouchDB or Using Google V8 with MongoDB
- Terrastore Clojure client API: terrastore-cloj ¶
-
A Clojure client for Terrastore document store coming in two flavors: chainable and bookmarkable.
Wednesday, 26 May 2010
Presentations on Hadoop, HBase, PIG and Cascalog from Hadoop Meet-Up
The Yahoo! Developer Network Blog has ☞ posted the materials presented at Hadoop’s monthly user group meeting. I’ve embedded these below for your convenience:
What’s New With Pig: Alan Gates
Pig is one of the solutions used for data processing/analysis in the NoSQL world. For example Pig is heavily used at Twitter.
Recently Pig has released ☞ two new versions (0.6.0 and 0.7.0) and this talk focuses on the new features included with these versions and a compatibility plan with Hadoop[1]
Cascalog: Powerful and easy-to-use data analysis tool for Hadoop: Nathan Marz
Cascalog is a Clojure-based query language solution for Hadoop-stored data analysis. Nathan Marz (BackType) is demoing this cool tool:
HBase and Pig: The Hadoop ecosystem at Twitter: Dmitriy Ryaboy
As already mentioned Twitter is extensively using HBase, Pig and Hadoop — in their words Cassandra is OLTP and HBase is OLAP — and Dmitriy provides an overview of their Hadoop-based ecosystem:
References
- [1] Yahoo! Developer Network Blog has an article on this topic ☞ Towards Enterprise-Class Compatibility for Apache Hadoop. Considering that after the last release HBase has become a top-level Apache project and that there’s a very strong userbase for HBase and Hadoop, ensuring a healthy ecosystem for all these projects is extremely important. (↩)
Tuesday, 18 May 2010
Schemaless data modeling with Bigtable and Groovy's Gaelyk or Clojure
A short intro to NoSQL data modeling, an important topic for the NoSQL space, by ☞ Andrew Glover:
When developers talk about non-relational or NoSQL databases, the first thing often said is that they require a change in mindset. In my opinion, that actually depends upon your initial approach to data modeling. If you are accustomed to designing applications by modeling the database structure first (that is, you figure out tables and their associated relationships first), then data modeling with a schemaless datastore like Bigtable will require rethinking how you do things. If, however, you design your applications starting with the domain model, then Bigtable’s schemaless structure will feel more natural.
Somehow related you may also find interesting the Clojure DSL for Google App Engine by ☞ Stefan Richter:
Modeling your data structures for a distributed key-value store for large-scale internet applications differs in several key aspects from ER-modeling: Forget normalization, optimizing for read-access, etc. As a result, we believe that using object-oriented persistence mapping can cause a developer to incorrectly abstract object relationships: You should not have complex object relationships in your datastore. In addition, since Clojure is a functional programming language, it makes less sense to use a persistence mechanism rooted in object oriented practices. In Clojure you are using structs (maps) and not “objects” to hold your data, which means that you already have simple key-value structured data at hand. There’s no need to use object persistence mapping anyway. The most natural way is to use the low-level API to the datastore directly.
via: http://nosql.mypopescu.com/post/507962068/the-role-of-data-modeling-with-key-value-stores
Thursday, 6 May 2010
Cascalog: Clojure-based Query Language for Hadoop
I’ve already made the point that storing the data is just the start of the “adventure” and sooner than later you’ll have to put your NoSQL stored data to work.
Cascalog, introduced in the linked article, is a query language for Hadoop featuring:
- Simple – Functions, filters, and aggregators all use the same syntax. Joins are implicit and natural.
- Expressive – Logical composition is very powerful, and you can run arbitrary Clojure code in your query with little effort.
- Interactive – Run queries from the Clojure REPL.
- Scalable – Cascalog queries run as a series of MapReduce jobs.
- Query anything – Query HDFS data, database data, and/or local data by making use of Cascading’s “Tap” abstraction
- Careful handling of null values – Null values can make life difficult. Cascalog has a feature called “non-nullable variables” that makes dealing with nulls painless.
- First class interoperability with Cascading – Operations defined for Cascalog can be used in a Cascading flow and vice-versa
- First class interoperability with Clojure - Can use regular Clojure functions as operations or filters, and since Cascalog is a Clojure DSL, you can use it in other Clojure code.
While I do really like Clojure[1] and its conciseness, I kind of agree with the point Kevin Weil from Twitter made during the nosql:eu conference:
I need less Java in my life, not more
in the sense that higher level tools are more productive. And that’s the reason Twitter is using PIG (nb: I’d strongly recommend checking Kevin Weil’s slides) and Cloudera Hadoop distribution will include PIG and Hive.
References
- [1] Disclaimer: I’m a Clojure absolute beginner though. (↩)
Tuesday, 23 February 2010
More NoSQL-based Twitter apps
If you thought we’re running out of NoSQL Twitter apps, you were definitely wrong because I’ve just got a few more.
Twidoop ☞
A Clojure-based solution to write the Twitter stream to Hadoop (by @ieure)
simple-messaging-service ☞
A simple Twitter clone in Python and using MongoDB by Michael Dirolf (@mdirolf). Michael has been featured on MyNoSQL a couple of times already:
Swordfish Twitter Clone ☞
Swordfish — a key-value store built on top of Tokyo Cabinet and offering a RESTful HTTP interface — comes with a Twitter clone based on Django.
tweetarium.com ☞
Another Tokyo Cabinet based Twitter app. There don’t seem to be many details about the project though. (via Matthew Ford)

Last, but not least, don’t forget to check the first series of NoSQL Twitter apps.
Tuesday, 26 January 2010
Statistical Computation with Incanter and MongoDB
Q: Can you explain why is MongoDB a good choice for incanter (as opposed to Clojure more generally?) Everything that I work with (in R) that is not rectangular, is indexed …
A: Do you mean as opposed to SQL databases, or other schema-less databases?
MongoDB can easily persist arbitrarily deeply nested Clojure data structures, which makes it a convenient choice, but that’s not to say there are not many other options, all equally useful.
I’d speculate that for larger data sets, having Incanter to work with HBase or Hadoop (if it doesn’t already) would take it to the next level.
Resources:
Wednesday, 13 January 2010
Clojure + MongoDB = Adia
What you get when you put together Clojure with Compojure and MongoDB with CongoMongo
via: http://zef.me/2600/adia-a-week-with-clojure-and-mongodb
Thursday, 17 December 2009
Most Popular Articles
- Translate SQL to MongoDB MapReduce
- Tutorial: Getting Started With Cassandra
- CouchDB vs MongoDB: An attempt for a More Informed Comparison
- Cassandra @ Twitter: An Interview with Ryan King
- A Couple of Nice GUI Tools for MongoDB
- NoSQL benchmarks and performance evaluations
- Ehcache: Distributed Cache or NoSQL Store?
- Document Databases Compared: CouchDB, MongoDB, RavenDB
- Quick Review of Existing Graph Databases
- NoSQL Data Modeling