Documentation

gitHub

NoSQL databases, storage formats, REST APIs

Hackolade's main added value is in providing the ability to perform the data modeling for JSON-based databases, mainly nested objects (sub-documents and arrays, a.k.a. maps and lists.)  Hackolade even has a pending patent on its "Method and Process to graphically model schemas for NoSQL and multimodel databases and REST APIs".

 

Whereas most relational database adhere to a SQL standard which ensures a common approach (even though some nuances are possible), NoSQL databases have sometimes fundamentally different approaches for storage and architecture, and often use different terminology for similar concepts:

 

Generic terminologySQLMongoDBDynamoDBCouchbaseAzure Cosmos DBElasticsearchDatastax CassandraApache HBase
ContainerUser schemaDatabaseRegionBucketCollectionIndexKeyspaceNamespace
EntityTableCollectionTableDocument kindDocument typeTypeTableTable
RecordRecordDocumentItemDocumentDocumentDocumentRowRow
AttributeColumnFieldAttributeFieldFieldFieldColumnColumn
Primary KeyPrimary KeyObjectIDHash (& range)Document IDididPartition Key+ Clustering Key Row Key
IndexIndexIndexIndexIndexIndexIndexIndexIndex
PartitionPartitionShardPartitionvBucketPartitionShardPartitionShard
ViewViewViewGlobal Secondary IndexViewn/aFiltered aliasMaterialized ViewView
Objectn/aSub-documentMapObjectObjectObject/NestedMapn/a
ArrayArrayArrayListArrayArrayArrayListn/a

 

Generic terminologyGoogle RealTime FirebaseGoogle Cloud FirestoreMarkLogicApache HiveApache AvroCouchbase AnalyticsGoocle Cloud BigQuery
ContainerUser schemaDatabaseDatabaseDatabaseNamespaceDataverseDataset
EntityTableCollectionCollection/DirectoryTableRecordDatasetTable
RecordRecordDocumentDocumentRown/aDocumentRecord
AttributeColumnFieldFieldColumnFieldFieldField
Primary KeyPrimary KeyObjectIDURIPartition Key+ Clustering Key n/aDocument IDn/a
IndexIndexIndexIndexIndexn/aIndexn/a
PartitionPartitionShardForestPartitionn/an/aPartition
ViewViewViewViewViewn/an/aView
Objectn/aSub-documentObjectMapRecord/mapObjectRecord
ArrayArrayArrayArrayListArray/enumArrayArray

 

Generic terminologyParquetAWS Glue Data CatalogScyllaDB    
ContainerFileDatabaseKeyspace    
EntityMessageTableTable    
RecordRowRowRow    
AttributeColumnColumnColumn    
Primary Keyn/aPartition Key+ Clustering Key Partition Key+ Clustering Key     
Indexn/aIndexIndex    
Partitionn/aPartitionParition    
Viewn/aViewMaterialized view    
ObjectMapMapMap    
ArrayListListList    

 

Each target vendor may also support its own functional features and list of attribute types.

 

To simplify the user's life, Hackolade adapts to the terminology and feature set of each database platform target for the model.  The menu items, contextual menus, toolbar icon tooltips, and documentation all dynamically change depending on the selected target.

 

Isn't it ironic that a technology that bears the label of 'schemaless' is also known for the fact that schema design is one of its toughest challenges?  Each of the NoSQL vendors dedicates a large part of its documentation to data modeling: MongoDB, DynamoDB, Couchbase, Cassandra.

 

The following pages analyze the characteristics of each NoSQL database vendor, from the perspective of a data modeler.  These pages do not cover the technical architecture as it pertains to infrastructure and performance, which would go well beyond the scope of the Hackolade application.