Urgent.News

What's breaking now, across thousands of outlets.

Tech

Time-Series Storage: How to Evaluate Encoding and Compression for IoT Data

A developer-oriented guide to testing storage efficiency without losing the query and ingestion behavior that makes telemetry useful. When an IoT deployment keeps data for months or years, storage settings become part of the application design. A database may receive millions of measurements, but the important question is what those measurements look like after they are stored: can the system…

How to Choose Encoding and Compression for IoT Time-Series Data

When storing IoT data for extended periods, storage settings influence the application's behavior. Important factors include the ability to retain historical data, accept new data, and provide predictable query responses. Two key techniques for storage efficiency are encoding and compression, which are related but distinct concepts.

Encoding converts raw data values into a representation suitable for storage. Time-series data often exhibits patterns like ordered timestamps, similar neighboring values, and consistent measurement types. Compression reduces redundancy in that encoded representation. The process flow is: timestamped measurements → encoding → compression → stored time-series blocks → decoded/query when read.

Before selecting storage options, understand the specific data profile. Consider device hierarchy, measurements (temperature, pressure, etc.), sampling rates, arrival patterns (steady, batched, bursty, mixed), event-time disorder, data retention windows, and query types (latest values, ranges, aggregations). Different signals require different approaches. A slowly changing temperature series may benefit from one method, while a noisy vibration series needs a different one.

Apache IoTDB V2.0.x offers various encoding methods optimized for specific data types and patterns. For monotonically increasing/decreasing integer sequences, use TS_2DIFF. Consecutive repeating values benefit from RLE. GORILLA is ideal for nearby consecutive numeric values, especially for some floating-point series. Compression operates on the binary stream after encoding and includes options like LZ4, SNAPPY, GZIP, ZSTD, and LZMA2. Treat these as candidates to test rather than a linear ranking.

Design experiments to isolate the effect of each storage variable. Capture key metrics like stored size, write acceptance and availability, CPU and memory usage during writes and reads, behavior of recent-value and time-range queries, aggregation results over longer windows, compaction, recovery, backup, and retention effects. Run representative queries while ingestion continues.

Effective storage may reduce disk usage but could negatively impact routine historical queries. A balanced approach that maintains practical historical query performance is preferable.

The testing process is version-neutral. Generate a fixed sample with known device identifiers, measurement types, timestamps, and values. Include realistic sampling frequencies and controlled late data if applicable. Establish a baseline configuration and record all relevant details. Evaluate storage and query performance separately, then compare changes made one at a time. Avoid combining multiple configuration changes in a single test unless explicitly testing that combination.

Apache IoTDB provides a flexible framework for evaluating encoding and compression choices within its Tree Model, where each time series can have its own data type, encoding, and compression settings. Carefully verify the exact names, defaults, supported data types, and version behavior of the chosen options in the release documentation before implementation.

The best storage configuration balances footprint, ingestion efficiency, resource usage, query behavior, and operational requirements for the representative workload. For more information and to try Apache IoTDB, visit the Apache IoTDB website.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

how i track scroll depth without cookies

i'm om yaduvanshi. i'm 18, an applied ai developer building cloudline , a cookieless google analytics alternative . one script tag, under 2 KB , no cookies, no stored ips.

Day 23 - Domain-Driven Design - কোড যখন Business-এর ভাষায় কথা বলে

আপনার application এখন অনেক বড় হয়েছে। আপনি microservices বা modular monolith নিয়ে কাজ করছেন। সবকিছু ঠিকঠাকই চলছে, কিন্তু নতুন একটা সমস্যা দেখা দিলো। Business team মিটিংয়ে বলছে, "যখন কোনো VIP…

  • Domain-Driven Design (DDD) aligns business language with code to prevent bugs.
  • Bounded Contexts define different models of the same entity (like Customer) across system domains.

What the Business Actually Needs From Your Agent Stack

As the leader of an AI infrastructure company, I talk to teams every week who are already getting real work done with agents. The prototypes work. The value is clear.

  • Businesses need production-ready agent stacks for budget approval.
  • Finance prioritizes predictable costs, durable workflows, and audit-proof records.
  • Framework-agnostic stacks ensure consistent reliability across changes.

More from Monday 28 September →