👋 Hi everyone! I'm new to signoz and decided to poke around the source code and clickhouse db schema.
I have a question about database choice and database schema alignment. Clickhouse is a column-oriented database, so I'm somewhat surprised when I look at things like
signoz_traces.signoz_index_v2::tagMap
,
signoz_traces.signoz_index_v2::stringTagMap
and
signoz_traces.signoz_spans::model
that contain json-encoded string values in them. I'm sure these were deliberate choices, it would be helpful if somebody can share insights about these decisions.
Thank you in advance!
s
Srikanth Chekuri
08/02/2024, 6:44 AM
The telemetry data often contains attributes that you don't know beforehand. There are handful of way to store the arbitrary key-values pairs in ClickHouse. they are maps, pariwise-array and json string. This the reason map is used.
a
Alexei Sokolov
08/02/2024, 4:38 PM
@Srikanth Chekuri thank you for your response. I see that columns in signoz_index_v2 are of type Map. However, signoz_spans::model has type String. Do I need to run some migration to convert it to Map?
SigNoz is an open-source APM. It helps developers monitor their applications & troubleshoot problems, an open-source alternative to DataDog, NewRelic, etc.