| Unified architecture with single engine for all workloads | Unified architecture with single engine for all workloads Single columnar engine (ClickHouse) for logs, metrics, traces, and replays | Unified architecture with single engine for all workloads Multiple backends (Enterprise, Cloud, Observability Cloud) with separate data stores |
|---|
| Single binary deployment | Single binary deployment One binary, homogeneous cluster | Single binary deployment Multiple component types (forwarders, indexers, search heads) |
|---|
| Isolation of inserts and queries | Isolation of inserts and queries Complete separation via compute-compute separation | Isolation of inserts and queries Shared resources on indexers; ingest and search contend for CPU & I/O |
|---|
| Columnar storage engine | Columnar storage engine Fully columnar, vectorized execution | Columnar storage engine Row/event-based index buckets |
|---|
| Schema on write | Schema on write Supported, efficient columnar layout for semi-structured data | Schema on write Not supported; schema defined at query time only |
|---|
| Open source | Open source MIT / Apache 2.0 licensed | Open source Proprietary, closed source |
|---|
| SQL support | SQL support Standard SQL for analytics and joins | |
|---|
| Separation of storage and compute | Separation of storage and compute Fully decoupled; object storage for retention, elastic compute for queries | Intermediate— Separation of storage and compute SmartStore uses object storage for long-term retention, local disks still for hot |
|---|
| Inverted index support (true full-text or JSON path) | Inverted index support (true full-text or JSON path) Optional secondary inverted indexes for text search | Intermediate— Inverted index support (true full-text or JSON path) Proprietary event index; not true full-text inverted index |
|---|
| Vertical scalability (multi-core parallelism within node) | Vertical scalability (multi-core parallelism within node) Native vectorized parallelism; scales vertically | Intermediate— Vertical scalability (multi-core parallelism within node) Limited; vertical scaling possible but constrained by indexer thread model |
|---|
| Natural language search | Natural language search Supported via HyperDX interface | Intermediate— Natural language search Basic keyword search; SPL required for complex queries |
|---|
| Schema on read | | |
|---|
| Horizontal scaling | Horizontal scaling Scales elastically across nodes with distributed queries | Horizontal scaling Scales via additional indexers; recommended approach |
|---|
| Deployment model | Deployment model Self-hosted or ClickHouse Cloud | Deployment model On-prem or cloud offerings |
|---|
| Read and write isolation | Read and write isolation Decoupled storage and compute allow independent scaling of ingest and query nodes. | Read and write isolation Ingest and search share indexer resources. Partial separation only via searchable vs non-searchable replicas. |
|---|
| Dynamic scaling to handle bursts | Dynamic scaling to handle bursts Compute scaled dynamically in Cloud | Dynamic scaling to handle bursts No native support. Scaling manual. |
|---|
| Pre-aggregations | Pre-aggregations Materialized views execute incrementally on inserts. No loss of fidelity, all functions supported. | Intermediate— Pre-aggregations Supports Data Model Acceleration and Report Acceleration. Updates are not incremental per event - there’s a delay before new data appears in summaries. |
|---|
| Query execution model | Query execution model Fully parallelized, vectorized execution across CPU cores and cluster nodes. | Intermediate— Query execution model MapReduce-style search pipeline. The search head distributes subsearches (“map”) to indexers, which process and reduce results before aggregation (“reduce”). Parallelism exists per search pipeline but is not vectorized. |
|---|
| Insert throughput per node | Insert throughput per node ~1TB per core/day uncompressed | Intermediate— Insert throughput per node 300 GB per day per 12 vCPU indexer |
|---|
| Elastic scaling | Elastic scaling Scale query compute up and dynamically independent of storage in Cloud | Intermediate— Elastic scaling Scale by adding or removing indexers. No native separation of storage from compute for hot data. |
|---|
| Vertical scaling | Vertical scaling Efficient use of large multi-core nodes due to vectorization. | Intermediate— Vertical scaling Supported but requires tuning and can be limited by I/O and pipeline configuration. |
|---|
| Storage and compute separation | Storage and compute separation Fully decoupled in ClickHouse Cloud. Object storage for long retention with intelligent caching. | Intermediate— Storage and compute separation SmartStore uses object storage but hot buckets still rely on local disks |
|---|
| Data skipping and secondary indexes | Data skipping and secondary indexes Data skipping indexes on primary keys, plus optional inverted. | Intermediate— Data skipping and secondary indexes Proprietary event index with metadata lookups. |
|---|
| Horizontal scaling | Horizontal scaling Native distributed queries over many shards. | Horizontal scaling Add indexers to distribute ingest and search. |
|---|
| Latency guidance | Latency guidance < 1s for aggregations due to columnar execution and skipping. | Latency guidance Multi-minute long queries common |
|---|
| Data skipping and pruning | Data skipping and pruning Built-in skipping indexes + optional inverted indices reduce scan volumes dramatically. | Data skipping and pruning Must scan relevant time buckets in full; no native range-pruning or skipping indexes. |
|---|
| Insert throughput | Insert throughput Extremely high insert rates - typically tens of MB/sec per core (≈1 TB/day per core uncompressed) | Intermediate— Insert throughput ~300 GB/day per 12 vCPU indexer with search load. Throughput limited by indexing and search contention. |
|---|
| High-concurrency search at scale | High-concurrency search at scale Designed for many concurrent analytical queries on large ranges. | Intermediate— High-concurrency search at scale Concurrency is sensitive to indexer load. |
|---|
| Parallel execution model | Parallel execution model Fully parallelized across cores and nodes | Intermediate— Parallel execution model MapReduce-style search distributes work across indexers but lacks vectorization and fine-grained parallelism. |
|---|
| Pre-aggregation behavior | Pre-aggregation behavior Materialized views and projections allow real-time aggregation without pre-computation delays. | Intermediate— Pre-aggregation behavior Data Model and Report Acceleration rely on scheduled jobs; results delayed until summarization completes. |
|---|
| Compression efficiency for OpenTelemetry data | Compression efficiency for OpenTelemetry data | Intermediate— Compression efficiency for OpenTelemetry data |
|---|
| Join and aggregation performance | Join and aggregation performance Optimized for real-time analytical joins and aggregations with full JOINs supported. | Intermediate— Join and aggregation performance Joins and sub-searches in SPL are slow |
|---|
| Tiered performance | Tiered performance Uniformly high performance across hot, warm, and cold tiers due to intelligent caching. | Intermediate— Tiered performance Hot buckets perform best; warm/cold buckets stored in SmartStore add network latency. |
|---|
| Standard query language | Standard query language Full SQL with hundreds of analytical and statistical functions. | Standard query language Proprietary SPL; limited interoperability with SQL-based tools. |
|---|
| External data querying (“query in place”) | External data querying (“query in place”) Query external data directly using table engines and functions (e.g., s3, url, hdfs, mysql, postgresql). | External data querying (“query in place”) Must ingest and index before search; no native query-in-place capability. |
|---|
| Support for open table formats | Support for open table formats Reads Parquet, Iceberg, and other open formats natively from S3, HDFS, and local storage. | Support for open table formats No native support for Parquet, Iceberg, or ORC as queryable sources. |
|---|
| Third-party catalog integration | Third-party catalog integration Integrates with catalogs such as Unity, Nessie, AWS Glue for open table formats. | Third-party catalog integration |
|---|
| External database connectivity | External database connectivity Native table engines for PostgreSQL, MySQL, MongoDB, and ODBC/JDBC sources. | Intermediate— External database connectivity Limited to Splunk DB Connect app (separate plugin); slower, ETL-style integration. |
|---|
| Batch and streaming ingestion | Batch and streaming ingestion Supports both: streaming via Kafka/HTTP/OTel, batch via S3, Parquet, and bulk inserts. | Intermediate— Batch and streaming ingestion Primarily streaming via forwarders, HEC, or Kafka Connect; lacks native batch ingestion. |
|---|
| Interoperability with analytics & BI tools | Interoperability with analytics & BI tools MySQL SQL + JDBC/ODBC drivers allow direct connection from BI and AI platforms. | Intermediate— Interoperability with analytics & BI tools Limited integration via Splunk SDKs or REST API; not natively accessible via SQL clients. |
|---|
| OpenTelemetry support | OpenTelemetry support OpenTelemetry-native. Accepts OTel traces, logs, and metrics directly. | OpenTelemetry support Strong support via Splunk distribution of OTel Collector and Splunk Observability Cloud integrations. |
|---|
| Kafka ingestion | Kafka ingestion Native Kafka table engine and ClickPipes in Cloud for high-throughput streaming ingest. | Kafka ingestion Supported via Splunk Connect for Kafka (Kafka Connect sink) feeding HEC; external connector required. |
|---|
| Support for open file formats (CSV, JSON, Parquet) | Support for open file formats (CSV, JSON, Parquet) Reads/writes natively without conversion; schema-on-write or schema-on-read both supported. | Support for open file formats (CSV, JSON, Parquet) |
|---|