Columnar data stores values from the same column next to one another in memory or on disk, improving query performance. They suit analytical workloads such as observability, where large historical datasets support interactive queries. section 5.5
Choose storage layout according to the dominant workload:
- Row-oriented databases keep each record together, making them a good fit for online transaction processing with frequent individual inserts or updates. section 5.5
- Column-oriented stores suit online analytical processing: relatively few writes, high query volume, time-range analysis, and datasets reaching billions of rows or petabytes. section 5.5
- Columnar stores help address cardinality explosion in high-cardinality telemetry, but backend selection must account for ingestion, storage, query, and data-movement costs. section 5.4.3 section 5.7
Telemetry in ClickHouse
A Docker Compose setup routes Fluentd logs through an OpenTelemetry Collector into ClickHouse. The collector batches records, exports them to ClickHouse, and a SQL query extracts timestamps, payloads, trace IDs, and recent messages matching a pattern. section 5.5
Compare how row-oriented storage groups complete records while column-oriented storage groups values by field. section 5.5
Persistent columnar storage also supports continuous profiling across longer time ranges and service versions; FrostDB uses Apache Parquet for storage and Apache Arrow for querying. section 9.3.2



