1
+ CREATE DATABASE IF NOT EXISTS jaeger;
2
+
3
+ CREATE TABLE IF NOT EXISTS jaeger .otel_traces (
4
+ Timestamp DateTime64(9 ) CODEC(Delta, ZSTD(1 )),
5
+ TraceId String CODEC(ZSTD(1 )),
6
+ SpanId String CODEC(ZSTD(1 )),
7
+ ParentSpanId String CODEC(ZSTD(1 )),
8
+ TraceState String CODEC(ZSTD(1 )),
9
+ SpanName LowCardinality(String) CODEC(ZSTD(1 )),
10
+ SpanKind LowCardinality(String) CODEC(ZSTD(1 )),
11
+ ServiceName LowCardinality(String) CODEC(ZSTD(1 )),
12
+ ResourceAttributes Nested
13
+ (
14
+ keys LowCardinality(String),
15
+ values String
16
+ ) CODEC (ZSTD(1 )),
17
+ ScopeName String CODEC(ZSTD(1 )),
18
+ ScopeVersion String CODEC(ZSTD(1 )),
19
+ SpanAttributes Nested
20
+ (
21
+ keys LowCardinality(String),
22
+ values String
23
+ ) CODEC (ZSTD(1 )),
24
+ Duration UInt64 CODEC(ZSTD(1 )),
25
+ StatusCode LowCardinality(String) CODEC(ZSTD(1 )),
26
+ StatusMessage String CODEC(ZSTD(1 )),
27
+ Events Nested (
28
+ Timestamp DateTime64(9 ),
29
+ Name LowCardinality(String),
30
+ Attributes Map(LowCardinality(String), String)
31
+ ) CODEC(ZSTD(1 )),
32
+ Links Nested (
33
+ TraceId String,
34
+ SpanId String,
35
+ TraceState String,
36
+ Attributes Map(LowCardinality(String), String)
37
+ ) CODEC(ZSTD(1 )),
38
+ INDEX idx_trace_id TraceId TYPE bloom_filter(0 .001 ) GRANULARITY 1 ,
39
+ INDEX idx_res_attr_key ResourceAttributes .keys TYPE bloom_filter(0 .01 ) GRANULARITY 1 ,
40
+ INDEX idx_res_attr_value ResourceAttributes .values TYPE bloom_filter(0 .01 ) GRANULARITY 1 ,
41
+ INDEX idx_span_attr_key SpanAttributes .keys TYPE bloom_filter(0 .01 ) GRANULARITY 1 ,
42
+ INDEX idx_span_attr_value SpanAttributes .values TYPE bloom_filter(0 .01 ) GRANULARITY 1 ,
43
+ INDEX idx_duration Duration TYPE minmax GRANULARITY 1
44
+ ) ENGINE MergeTree()
45
+
46
+ PARTITION BY toDate(Timestamp )
47
+ ORDER BY (ServiceName, SpanName, toUnixTimestamp(Timestamp ), SpanAttributes .keys , SpanAttributes .values , Duration, TraceId)
48
+ SETTINGS index_granularity= 8192 , ttl_only_drop_parts = 1 ;
0 commit comments