MapR Database as a Document Database

MapR Database supports JSON documents as a native data store. A JSON document is a tree of fields. These JSON documents are stored in MapR Database tables.

MapR Database as a document database, implements JSON documents in MapR Database JSON tables.

  • MapR Database JSON tables use the OJAI data model and support the OJAI API.
  • Documents are in JSON format; MapR Database stores them in an efficient binary encoding, rather than plain ASCII text.
  • With JSON tables, each value has a unique key (_id). You identify fields in the document using field paths. For example, address.street:
    {
        "_id": "ID001",
        "name" : "Bob",
        "address": {
            "house" : 123,
            "street": "Main",
            "phones": [
                { "mobile": "555-1234" },
                { "work": "+1-123-456-7890" }]},
        "hobbies": ["badminton", "chess", "beaches"]
    } 
    Note: Each JSON document can have different fields.

With JSON document support, you can:

  • Store data that is hierarchical and nested, and evolves over time.
  • Read and write individual document fields, subsets of fields, or whole documents from and to disk. To update individual fields or subsets of fields, there is no need to read entire documents, modify them, and then write the modified documents to disk.
  • Build applications with the MapR Database JSON API library, which is an implementation of the Open JSON Application Interface (OJAI). This is an API library for easily managing complex, evolving, hierarchical data. You can use more data types than the standard types that JSON supports, create complex queries, and access JSON table documents without connection or configuration objects. This allows large-scale applications to manage JSON documents.
  • Filter query results within MapR Database before results are returned to client applications.
  • Run client applications on Linux, OS X, and Windows systems.
  • Perform complex data analysis on your JSON data with Apache Drill or other analytical tools in real time without having to copy data to another cluster.
  • Scale your data to span thousands of nodes.
  • Control read and write access to single fields and subsets of fields within a JSON table by using access-control expressions (ACEs).
  • Control the disk layout of single fields and subdocuments within JSON tables.
  • Use Secondary Indexes to improve query performance.