JSON Database
Open source JSON database, all with SQL
Hyper-fast. Queries in milliseconds.
INSERT INTO quotes (
title, quotation, protagonist
) VALUES (
'Alice in Wonderland',
{
"words": "Curiouser and curiouser!",
"length": 3
},
{
"surname": "Pleasance Liddell",
"first_name": "Alice",
"details": {
"age": 7,
"birthday": '1852-05-04T00:00Z'::TIMESTAMPTZ
}
}
);
SELECT
title AS title,
protagonist['first_name'] AS name,
date_format(
'%D %b %Y',
'GMT',
protagonist['details']['birthday']
) AS born,
quotation['words'] AS quote
FROM quotes limit 100;
SELECT
title AS title,
protagonist['first_name'] AS name,
date_format(
'%D %b %Y',
'GMT',
protagonist['details']['birthday']
) AS born,
quotation['words'] AS quote
FROM quotes limit 100;
INSERT INTO quotes (
title,
quotation,
protagonist
) VALUES
(
'Slaughterhouse-Five',
{
"words": "Everything was beautiful, and nothing hurt."
},
{
"surname": "Pilgrim",
"first_name": "Billy",
"details": {
"birthday": '1922-07-04T00:00Z'
}
}
),
(
'The Complete Tales of Winnie-the-Pooh',
{
"words": "How lucky I am to have something that makes saying goodbye so hard."
},
{
"first_name": "Winnie-the-Pooh",
"details": {
"birthday": '1926-10-14T00:00Z'
}
}
),
(
'The Complete Tales of Winnie-the-Pooh',
{
"words": "I am short, fat, and proud of that."
},
{
"first_name": "Winnie-the-Pooh",
"details": {
"birthday": '1926-10-14T00:00Z'
}
}
);
SELECT title, name, born, quote
FROM "doc"."general_information"
LIMIT 100;
+------------+------------+--------+--------+--------+
| period | host_group | min | avg | max |
+------------+------------+--------+--------+--------+
| 1621515050 | Demo Hosts | 0.125 | 0.125 | 0.125 |
| 1621515040 | Demo Hosts | 0.1753 | 0.1753 | 0.1753 |
| 1621515030 | Demo Hosts | 0.2251 | 0.2251 | 0.2251 |
| 1621515020 | Demo Hosts | 0.2251 | 0.2251 | 0.2251 |
| 1621515010 | Demo Hosts | 0.1251 | 0.1251 | 0.1251 |
| 1621515000 | Demo Hosts | 0.2501 | 0.2501 | 0.2501 |
| 1621514990 | Demo Hosts | 0.1501 | 0.1501 | 0.1501 |
| 1621514980 | Demo Hosts | 0.075 | 0.075 | 0.075 |
| 1621514970 | Demo Hosts | 0.2503 | 0.2503 | 0.2503 |
| 1621514960 | Demo Hosts | 0.2 | 0.2 | 0.2 |
| 1621514950 | Demo Hosts | 0.1001 | 0.1001 | 0.1001 |
| 1621514940 | Demo Hosts | 0.175 | 0.175 | 0.175 |
| 1621514930 | Demo Hosts | 0.25 | 0.25 | 0.25 |
| 1621514920 | Demo Hosts | 0.1 | 0.1 | 0.1 |
+------------+------------+--------+--------+--------+
Simple JSON data storage
CrateDB effortlessly handles JSON objects, allowing storage in OBJECT
columns. These columns can contain diverse attributes, nesting levels, and arrays of objects, providing the flexibility required for complex multi-model data structures.

Automatic indexing
CrateDB's indexing strategy, based on a Lucene index, automatically generates indexes for all attributes regardless of their depth, enabling rapid search capabilities for stored objects and facilitating efficient updates.

Simple SQL access to JSON

Dynamic schema and multi-model approach
CrateDB's multi-model approach accommodates diverse data types seamlessly, allowing for the smooth integration of various data structures within the database. As JSON objects evolve and new attributes are added dynamically, CrateDB adjusts the schema automatically. This ensures that all attributes become accessible in SQL queries via the object.attribute
syntax.

Powerful full-text search
Alongside JSON support, CrateDB empowers users with robust text search capabilities. This combination of features enables users to perform SQL-based searches within JSON objects efficiently.

Fast NoSQL performance

Tutorial - Unleashing the Power of Nested Data: Ingesting and Querying JSON Documents with SQL in CrateDB
Watch the tutorial by Georg Traar, Director of Product Management Cloud Organisation, as he shows how to unleash the power of nested data with CrateDB.