As part of its support for JSON tables, MapR Database implements the OJAI API. The OJAI API provides methods for creating, reading, updating, and deleting JSON documents
in MapR Database JSON tables. It is available in Java, and starting in MEP 6.0, Node.js, and Python. MapR Database also provides a MapR Database JSON Client API for managing JSON tables and a MapR Database JSON REST API for performing basic operations using HTTP calls.

This section describes how to create, list, and delete JSON tables, alter JSON table attributes, set permissions, and
manage column families. You can perform these operations using either the MapR Database JSON Client API library or MapR Database Shell commands.

Before you start developing applications on MapR’s Converged Data Platform, consider how you will get the data onto the
platform, the format it will be stored in, the type of processing or modeling that is required, and how the data will
be accessed.

The mapr-client package must be installed on each node where you will be building and running your applications. This package installs
all of the MapR Libraries needed for application development regardless of programming language or type of MapR Database table (binary or JSON).

This topic describes the methods for passing a MapR Database table name. Binary table names can be passed by either specifying the table path in the API or by setting the table
path in the core-site.xml file. JSON table names are passed by specifying the table path in the API.

As part of its support for JSON tables, MapR Database implements the OJAI API. The OJAI API provides methods for creating, reading, updating, and deleting JSON documents
in MapR Database JSON tables. It is available in Java, and starting in MEP 6.0, Node.js, and Python. MapR Database also provides a MapR Database JSON Client API for managing JSON tables and a MapR Database JSON REST API for performing basic operations using HTTP calls.

This section describes how to create, list, and delete JSON tables, alter JSON table attributes, set permissions, and
manage column families. You can perform these operations using either the MapR Database JSON Client API library or MapR Database Shell commands.

This section describes how to query JSON documents in MapR Database JSON tables using the OJAI API library and MapR Database Shell. It includes sample programs using the OJAI API library and shows how to run the same queries in MapR Database Shell.

This section describes how to query JSON documents using either the find or findbyid command in MapR Database Shell (dbshell). It introduces the functionality the find command supports and describes the two ways to specify your queries. It also provides links to reference pages and
examples.

This section provides query examples using the OJAI API. The examples include querying by document ID, retrieving all
documents in a store, selecting individual fields, specifying query conditions, and ordering your query result. For reference,
the examples also include the equivalent MapR Database Shell (dbshell) commands.

This topic describes MapR Database functionality that is applicable to only the Java OJAI client. This includes instructions on how to compile your Java
OJAI application, enable buffered writes, use the read your own writes feature, and enable available query options.

Starting with MEP 6.0, you can use the Node.js OJAI client to write MapR Database JSON applications. The client provides you with a lightweight library that supports the OJAI API. You can connect
to MapR Database JSON from middleware components, and add, update, and query documents in a MapR Database JSON table.

Starting with MEP 6.0, you can use the Python OJAI client to write MapR Database JSON applications. The client provides you with a lightweight library that supports the OJAI API. You can connect
to MapR Database JSON, and add, update, and query documents in a MapR Database JSON table.

Starting with MEP 6.1.0, you can use the C# OJAI client to write MapR Database JSON applications. The client provides you with a lightweight library that supports the OJAI API. You can connect to
MapR Database JSON, and add, update, and query documents in a MapR Database JSON table.

Starting with MEP 6.0.0, you can use the Go OJAI client to write MapR Database JSON applications. The client provides you with a lightweight library that supports the OJAI API. You can connect to
MapR Database JSON, and add, update, and query documents in a MapR Database JSON table.

MapR supports public APIs for MapR Filesystem, MapR Database, and MapR Event Store For Apache Kafka. These APIs are available for application development purposes.

Deleting Column Families

You can delete a column family (except for the default column family) in a JSON table with the
Admin.deleteFamily() Java method.

Important: Starting in the 6.0 release, you cannot delete a column family from a
JSON table.

Permissions Required

The readAce and writeAce permissions on the volumes where
the JSON tables are located. For information about how to set
permissions on volumes, see Setting Whole Volume ACEs.

Behavior

The data that is in the specified column family is deleted. If the column family
is followed by one or more column families in a hierarchy, the other column families in the
hierarchy are unaffected and still accessible. For example, if column family
CF1 at path a.c is followed by column family
CF2 at path a.c.f, CF2 remains
accessible and only the data in CF1 is deleted.