Documentation

No results
    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.