diff --git a/ee/scripts/schema/db/init_dbs/clickhouse/1.23.0/1.23.0.sql b/ee/scripts/schema/db/init_dbs/clickhouse/1.23.0/1.23.0.sql index 121237e4f..5227bff5d 100644 --- a/ee/scripts/schema/db/init_dbs/clickhouse/1.23.0/1.23.0.sql +++ b/ee/scripts/schema/db/init_dbs/clickhouse/1.23.0/1.23.0.sql @@ -54,24 +54,27 @@ CREATE TABLE IF NOT EXISTS product_analytics.event_properties event_name String, property_name String, value_type String, + auto_captured BOOL, _timestamp DateTime DEFAULT now() ) ENGINE = ReplacingMergeTree(_timestamp) - ORDER BY (project_id, event_name, property_name, value_type); + ORDER BY (project_id, event_name, property_name, value_type, auto_captured); CREATE MATERIALIZED VIEW IF NOT EXISTS product_analytics.event_properties_extractor_mv TO product_analytics.event_properties AS SELECT project_id, `$event_name` AS event_name, property_name, - toString(JSONType(JSONExtractRaw(toString(`$properties`), property_name))) AS value_type + toString(JSONType(JSONExtractRaw(toString(`$properties`), property_name))) AS value_type, + `$auto_captured` AS auto_captured FROM product_analytics.events ARRAY JOIN JSONExtractKeys(toString(`$properties`)) as property_name UNION DISTINCT SELECT project_id, `$event_name` AS event_name, property_name, - toString(JSONType(JSONExtractRaw(toString(`properties`), property_name))) AS value_type + toString(JSONType(JSONExtractRaw(toString(`properties`), property_name))) AS value_type, + `$auto_captured` AS auto_captured FROM product_analytics.events ARRAY JOIN JSONExtractKeys(toString(`properties`)) as property_name; diff --git a/ee/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql b/ee/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql index a5e39f8ce..8ccf94fda 100644 --- a/ee/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql +++ b/ee/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql @@ -676,10 +676,11 @@ CREATE TABLE IF NOT EXISTS product_analytics.event_properties event_name String, property_name String, value_type String, + auto_captured BOOL, _timestamp DateTime DEFAULT now() ) ENGINE = ReplacingMergeTree(_timestamp) - ORDER BY (project_id, event_name, property_name, value_type); + ORDER BY (project_id, event_name, property_name, value_type, auto_captured); -- ----------------- This is experimental, if it doesn't work, we need to do it in db worker ------------- -- Incremental materialized view to fill event_properties using $properties & properties @@ -688,14 +689,16 @@ CREATE MATERIALIZED VIEW IF NOT EXISTS product_analytics.event_properties_extrac SELECT project_id, `$event_name` AS event_name, property_name, - toString(JSONType(JSONExtractRaw(toString(`$properties`), property_name))) AS value_type + toString(JSONType(JSONExtractRaw(toString(`$properties`), property_name))) AS value_type, + `$auto_captured` AS auto_captured FROM product_analytics.events ARRAY JOIN JSONExtractKeys(toString(`$properties`)) as property_name UNION DISTINCT SELECT project_id, `$event_name` AS event_name, property_name, - toString(JSONType(JSONExtractRaw(toString(`properties`), property_name))) AS value_type + toString(JSONType(JSONExtractRaw(toString(`properties`), property_name))) AS value_type, + `$auto_captured` AS auto_captured FROM product_analytics.events ARRAY JOIN JSONExtractKeys(toString(`properties`)) as property_name; -- -------- END --------- diff --git a/scripts/schema/db/init_dbs/clickhouse/1.23.0/1.23.0.sql b/scripts/schema/db/init_dbs/clickhouse/1.23.0/1.23.0.sql index 8c3c6475b..02e75fd53 100644 --- a/scripts/schema/db/init_dbs/clickhouse/1.23.0/1.23.0.sql +++ b/scripts/schema/db/init_dbs/clickhouse/1.23.0/1.23.0.sql @@ -65,24 +65,27 @@ CREATE TABLE IF NOT EXISTS product_analytics.event_properties event_name String, property_name String, value_type String, + auto_captured BOOL, _timestamp DateTime DEFAULT now() ) ENGINE = ReplacingMergeTree(_timestamp) - ORDER BY (project_id, event_name, property_name, value_type); + ORDER BY (project_id, event_name, property_name, value_type, auto_captured); CREATE MATERIALIZED VIEW IF NOT EXISTS product_analytics.event_properties_extractor_mv TO product_analytics.event_properties AS SELECT project_id, `$event_name` AS event_name, property_name, - toString(JSONType(JSONExtractRaw(toString(`$properties`), property_name))) AS value_type + toString(JSONType(JSONExtractRaw(toString(`$properties`), property_name))) AS value_type, + `$auto_captured` AS auto_captured FROM product_analytics.events ARRAY JOIN JSONExtractKeys(toString(`$properties`)) as property_name UNION DISTINCT SELECT project_id, `$event_name` AS event_name, property_name, - toString(JSONType(JSONExtractRaw(toString(`properties`), property_name))) AS value_type + toString(JSONType(JSONExtractRaw(toString(`properties`), property_name))) AS value_type, + `$auto_captured` AS auto_captured FROM product_analytics.events ARRAY JOIN JSONExtractKeys(toString(`properties`)) as property_name; diff --git a/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql b/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql index a9d19e6a4..fb55b5805 100644 --- a/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql +++ b/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql @@ -573,10 +573,11 @@ CREATE TABLE IF NOT EXISTS product_analytics.event_properties event_name String, property_name String, value_type String, + auto_captured BOOL, _timestamp DateTime DEFAULT now() ) ENGINE = ReplacingMergeTree(_timestamp) - ORDER BY (project_id, event_name, property_name, value_type); + ORDER BY (project_id, event_name, property_name, value_type, auto_captured); -- ----------------- This is experimental, if it doesn't work, we need to do it in db worker ------------- -- Incremental materialized view to fill event_properties using $properties & properties @@ -585,14 +586,16 @@ CREATE MATERIALIZED VIEW IF NOT EXISTS product_analytics.event_properties_extrac SELECT project_id, `$event_name` AS event_name, property_name, - toString(JSONType(JSONExtractRaw(toString(`$properties`), property_name))) AS value_type + toString(JSONType(JSONExtractRaw(toString(`$properties`), property_name))) AS value_type, + `$auto_captured` AS auto_captured FROM product_analytics.events ARRAY JOIN JSONExtractKeys(toString(`$properties`)) as property_name UNION DISTINCT SELECT project_id, `$event_name` AS event_name, property_name, - toString(JSONType(JSONExtractRaw(toString(`properties`), property_name))) AS value_type + toString(JSONType(JSONExtractRaw(toString(`properties`), property_name))) AS value_type, + `$auto_captured` AS auto_captured FROM product_analytics.events ARRAY JOIN JSONExtractKeys(toString(`properties`)) as property_name; -- -------- END ---------