Skip to main content

What is NoSQL Database?

The name NoSQL itself tells us that it is a "non-SQL" or "non-relational" database. Around 30 years back when the data used to be non-changing and smaller in size, traditional relational databases were more prominent like ORACLE, Postgres and so on which had fixed schemas. But during the last decade, the data has grown exponentially and it is also changing quickly. The traditional databases have failed to handle this BIG DATA effectively. So there was a need to introduce a database that can adapt itself to ever-changing data and that can handle the enormous size of data. And thus NoSQL databases came into the picture.


Nowadays NoSQL databases have been referred to as "Not Only SQL" databases which mean that these databases may support SQL-like query languages and can be a part of polyglot persistent architecture along with other relational databases. The data structures used in the NoSQL database are more efficient than the data structures used by the relational database which makes the operations faster in the NoSQL database. Below are some of the features of NoSQL databases:

1. Flexibility: NoSQL databases offer flexible schema which makes NoSQL databases suitable for structured and unstructured data.

2. Scalability: NoSQL databases are scalable. It scale-out by using distributed clusters of hardware rather than scaling by adding expensive servers.

3. High Functionality: NoSQL provides high functional APIs and data types

4. High Performance: NoSQL databases are designed for specific data models and access patterns that enable high performance

Most of the NoSQL databases offer "eventual consistency" in which database changes are propagated to all the nodes eventually, so queries for data might not get the updated data immediately or might lead to inaccurate data, a problem called stale reads. Some NoSQL database also exhibits data loss. The other disadvantages include transaction management problems, Backup issues, and large document sizes in some of the NoSQL databases like MongoDB.

Types of NoSQL databases:


1. Key-Value: Key-Value stores use an associative array as a data model, the data is represented as key-value pairs where each key appears at most once in the collection. Some of the examples of Key-value stores are Memcached and Redis.

2. Document Store: In the document store, the data is represented as an object or JSON-like document because it is an efficient and intuitive data model. MongoDB is one such example of the document store

3. Graph: This kind of database is suitable for the data which exhibits a relationship between them and can be represented in the form of a graph consisting of elements with finite relationships between them. Popular databases include Neo4j and Giraph.

Comments

Popular posts from this blog

What is KubernetesPodOperator in Airflow

A KubernetesPodOperator is a type of operator in Apache Airflow that allows you to launch a Kubernetes pod as a task in an Airflow workflow. This can be useful if you want to run a containerized workload as part of your pipeline, or if you want to use the power of Kubernetes to manage the resources and scheduling of your tasks. Here is an example of how you might use a KubernetesPodOperator in an Airflow DAG: from airflow import DAG from airflow.operators.kubernetes_pod_operator import KubernetesPodOperator from airflow.utils.dates import days_ago default_args = { 'owner' : 'me' , 'start_date' : days_ago( 2 ), } dag = DAG( 'kubernetes_sample' , default_args = default_args, schedule_interval = timedelta(minutes = 10 ), ) # Define a task using a KubernetesPodOperator task = KubernetesPodOperator( namespace = 'default' , image = "python:3.6-slim" , cmds = [ "python" , "-c"...

Difference between ETL and ELT Pipelines

ETL (Extract, Transform, Load) and ELT (Extract, Load, Transform) are two common architectures for data pipelines. Both involve extracting data from one or more sources, loading the data into a destination system, and possibly transforming the data in some way. The main difference between the two approaches is the order in which the transform and load steps are performed. In an ETL pipeline, the transform step is typically performed before the data is loaded into the destination system. This means that the data is cleaned, transformed, and structured into a form that is optimized for the destination system before it is loaded. The advantage of this approach is that it can be more efficient, since the data is transformed once and then loaded into the destination system, rather than being transformed multiple times as it is queried. However, ETL pipelines can be inflexible, since the data must be transformed in a specific way before it is loaded, and it can be difficult to modify the pip...

What is BigQuery?

BigQuery is a fully-managed, cloud-native data warehouse from Google Cloud that allows organizations to store, query, and analyze large and complex datasets in real-time. It's a popular choice for companies that need to perform fast and accurate analysis of petabyte-scale datasets. One of the key advantages of BigQuery is its speed. It uses a columnar storage format and a Massively Parallel Processing (MPP) architecture, which allows it to process queries much faster than traditional row-based warehouses. It also has a highly optimized query engine that can handle complex queries and aggregations quickly. BigQuery is also fully integrated with other Google Cloud products, making it easy to build end-to-end data pipelines using tools like Google Cloud Storage, Google Cloud Data Fusion, and Google Cloud Dataproc. It can also be used to power dashboards and reports in tools like Google Data Studio. In addition to its speed and integration capabilities, BigQuery has a number of advance...