Uploaded by Nick Ladias

IoT databases research

advertisement
1. Time-series Databases
Use time-series databases when dealing with data generated over time, such as sensor data, logs,
and historical records.
Pros:




Efficient storage and retrieval of time-stamped data.
Optimized for time-series data analysis.
Scalability to handle a high volume of data points.
Real-time data processing and analytics.
Cons:
 Limited support for complex queries compared to general purpose databases
 May not be suitable for non-time series data.
Use cases:
 Sensor data storage and analysis.
 Monitoring and predictive maintenance.
 Environment monitoring.
 Financial data analysis.
Example Databases: InfluxDB, TimescaleDB, OpenTSDB (integrated analytics or custom
functions can be used as well)
2. NoSQL Databases:
NoSQL databases are a diverse group of databases designed to store and retrieve data in ways that
differ from traditional relational databases. They are often used for handling large volumes of
unstructured or semi-structured data and are suitable for various use cases.
Pros:
 Flexible schema design.




Scalability to handle large datasets.
High availability and fault tolerance.
High perfomance, optimized for specific data models
Support for semi-structured and unstructured data.
Cons:
 May lack ACID compliance.
 Complex queries might be slower than in traditional databases.
Use Cases:




Large-scale data storage.
Real-time analytics.
Edge computing.
Distributed IoT systems.
Example Databases: MongoDB, Cassandra, Amazon DynamoDB.
3. SQL Databases:
SQL databases, also known as relational databases, are widely used in a variety of applications for
their structured data storage and powerful querying capabilities.
Pros:




ACID compliance for data consistency.
Support for complex queries and transactions.
Data integrity and security features.
Mature and well-established technology.
Cons:
 May have limitations in handling scalability and high write loads.
 Not ideal for time-series data.
Use Cases:
 IoT applications with strong data consistency requirements.
 Data warehousing.
 Regulatory compliance in IoT deployments.
Example databases: MariaDB, Oracle Database, MySQL
4. NewSQL Databases:
NewSQL databases are a class of relational databases that aim to combine the benefits of traditional
SQL databases (ACID compliance, structured data) with the scalability and performance required
for modern, distributed, and cloud-based applications.
Pros:
 Combines the scalability of NoSQL with ACID compliance of SQL databases.
 Distributed architecture for high availability.
 Suitable for handling IoT data at scale.
Cons:
 Relatively new technology.
 Limited options compared to NoSQL and SQL databases.
Use Cases:
 High-performance IoT applications.
 Complex data processing with ACID requirements.
 IoT data consolidation and analysis.
Example Databases: CockroachDB, NuoDB, Google Spanner
5. In-Memory Databases (NoSQL type):
In-memory databases are databases that store data primarily in the main memory (RAM) of a
computer, rather than on disk. This allows for extremely fast data access and retrieval, making them
suitable for real-time and high-performance applications.
Pros:
 Extremely fast data retrieval and processing.
 Suitable for real-time analytics and decision-making.
 Better performance through specialization
Cons:
 Limited storage capacity, Ram is more expensive
 More complex architecture, permanent form of storage still needed
Use Cases:
 Edge AI/ML
 High-frequency trading.
 IoT applications requiring low latency.
Example databases: Redis, Memcached, Aerospike, TimescaleDB
6. Distributed Databases:
Distributed databases are designed to operate across multiple nodes or servers, often in different
geographical locations, to provide high availability, fault tolerance, and scalability.
Pros:
 Scalability for large-scale IoT deployments.
 High availability through distributed architecture.
 Load balancing and fault tolerance.
Cons:
 Complex setup and configuration.
 May require special hardware or cloud infrastructure.
Use Cases:
 Large-scale IoT platforms. ( manufacturing control system )
 Data consolidation from multiple sources. ( multimedia applications )
 Global or multi-region IoT solutions. ( Military’s control system, Hotel chains etc. )
Example databases: Amazon Aurora, HBase, CrateDB, TiDB, YugabyteDB
6. DuckDB-An in-process SQL OLAP database:
DuckDB is an open-source, in-memory analytical database management system (DBMS) designed
for efficient querying and processing of data for analytical and business intelligence (BI) workloads.
Pros:





Cons:
High Perfomance Paralellism, optimization techniques
compatible with multiple platforms
community and open source
In memory database than can also handle larger datasets by spilling excess data to disk
ACID compliance
 It may not be the ideal choice for centralized enterprise data warehousing due to the
complexity and scale of such systems.
 DuckDB is not optimized for high-concurrency write operations
 when multiple concurrent processes need to read data from a single writable database, there
may be contention and potential performance issues.
Use Cases:
 Processing and storing tabular datasets, e.g., from CSV or Parquet files
 Interactive data analysis, e.g., join & aggregate multiple large tables
 Concurrent large changes, to multiple large tables, e.g., appending rows,
adding/removing/updating columns
 Large result set transfer to client
Resources:
https://www.techtarget.com/iotagenda/tip/How-to-select-the-right-IoT-database-architecture
https://www.intuz.com/guide-on-top-iot-databases
https://en.wikipedia.org
https://www.influxdata.com
https://www.geeksforgeeks.org/distributed-database-system
https://aws.amazon.com/nosql/#:~:text=NoSQL%20databases%20are%20designed%20for,compose
d%20of%20rows%20and%20columns
https://duckdb.org/
Download