Giter Site home page Giter Site logo

java-mod-10-nosql-systems's Introduction

NoSQL Systems

Learning Goals

  • Gain understanding of different NoSQL types

Introduction

Database systems traditionally were synonymous with Relational Database systems. Predominately over the last 10-15 year timeframe, there has been a shift towards NoSQL systems being developed and utilized alongside or in place of Relational systems. A driving factor in this have been attempts to solve the scaling problems we've seen in the previous sections, as well as rethinking data structures to be more optimized for given tasks. In addition, the rise of DevOps practices and tooling has greatly reduced the initial up front cost of setting up and maintaining a new Database environment. What traditionally would have required separate DBA specialists, and SysAdmins knowledgable in the intrinsicities of a novel system, this can now be more easily deployed and managed.

The term 'NoSQL' doesn't really deliminate any specific given type of data store system or structure. It colloquially is understood to stand for "non-SQL", "not only SQL", and "non-relational". Beyond these systems breaking away from using the traditional Relational data store type, there isn't necessarily much in common between types of NoSQL systems. In fact, the development of a new system probably indicates there was a missing need with all of the previous designs, leading to a good chance that each system is a complete new technology stack to understand and work with. This is unlike most Relational systems that have been mostly standardized over the decades, and where skills from one vendor implementation are mostly transferable to another.

Different NoSQL Types

There are however general categories that most systems fall under. Read through the following documentation for a good overview of this

We will be experimenting with a few of the more commonly used systems in the next section

Key Value

One of the most commonly used Key Value type NoSQL systems is Redis. It is commonly used for simple queuing systems, fast in-memory caching, or any other situations where simple datatypes need to be stored in an independent server or service.

Document

A very common Document type NoSQL system heavily used is Elasticsearch. Elasticsearch is commonly used in the logging aggregation space, and text based search, where arbitrary fields and json fields may be ingested based on application specific needs and designs. Very fast text search is a main design feature here.

Graph

Graph Database systems tend to be delegated to more specific use cases. While you could feasibly use any of the other types in a general purpose way, Graph based systems are really only useful for working with graphs with their objects and relations.

One of the more visible projects in this space would be Neo4j

Column

Colume store NoSQL types best mimic the layout of what a traditional Database table looks like. However, actual usage and queries are simplified compared to what Relational systems can do. Apache Cassandra is the system we will be covering in more depth.

Here is a quick overview.

java-mod-10-nosql-systems's People

Contributors

brianmurphyfis avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

crives

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.