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 5a7a6afed..dcd616e5f 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 @@ -1,5 +1,64 @@ CREATE OR REPLACE FUNCTION openreplay_version AS() -> 'v1.23.0-ee'; +SET allow_experimental_json_type = 1; +SET enable_json_type = 1; +ALTER TABLE product_analytics.events + MODIFY COLUMN `$properties` JSON( +max_dynamic_paths=0, +label String , +hesitation_time UInt32 , +name String , +payload String , +level Enum8 ('info'=0, 'error'=1), +source Enum8 ('js_exception'=0, 'bugsnag'=1, 'cloudwatch'=2, 'datadog'=3, 'elasticsearch'=4, 'newrelic'=5, 'rollbar'=6, 'sentry'=7, 'stackdriver'=8, 'sumologic'=9), +message String , +error_id String , +duration UInt16, +context Enum8('unknown'=0, 'self'=1, 'same-origin-ancestor'=2, 'same-origin-descendant'=3, 'same-origin'=4, 'cross-origin-ancestor'=5, 'cross-origin-descendant'=6, 'cross-origin-unreachable'=7, 'multiple-contexts'=8), +url_host String , +url_path String , +url_hostpath String , +request_start UInt16 , +response_start UInt16 , +response_end UInt16 , +dom_content_loaded_event_start UInt16 , +dom_content_loaded_event_end UInt16 , +load_event_start UInt16 , +load_event_end UInt16 , +first_paint UInt16 , +first_contentful_paint_time UInt16 , +speed_index UInt16 , +visually_complete UInt16 , +time_to_interactive UInt16, +ttfb UInt16, +ttlb UInt16, +response_time UInt16, +dom_building_time UInt16, +dom_content_loaded_event_time UInt16, +load_event_time UInt16, +min_fps UInt8, +avg_fps UInt8, +max_fps UInt8, +min_cpu UInt8, +avg_cpu UInt8, +max_cpu UInt8, +min_total_js_heap_size UInt64, +avg_total_js_heap_size UInt64, +max_total_js_heap_size UInt64, +min_used_js_heap_size UInt64, +avg_used_js_heap_size UInt64, +max_used_js_heap_size UInt64, +method Enum8('GET' = 0, 'HEAD' = 1, 'POST' = 2, 'PUT' = 3, 'DELETE' = 4, 'CONNECT' = 5, 'OPTIONS' = 6, 'TRACE' = 7, 'PATCH' = 8), +status UInt16, +success UInt8, +request_body String, +response_body String, +transfer_size UInt32, +selector String, +normalized_x Float32, +normalized_y Float32, +message_id UInt64 +) DEFAULT '{}' COMMENT 'these properties belongs to the auto-captured events'; DROP TABLE IF EXISTS product_analytics.all_events; CREATE TABLE IF NOT EXISTS product_analytics.all_events 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 761e2ca76..7bab7f7a1 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 @@ -12,6 +12,66 @@ CREATE TABLE IF NOT EXISTS experimental.user_viewed_sessions ORDER BY (project_id, user_id, session_id) TTL _timestamp + INTERVAL 3 MONTH; +SET allow_experimental_json_type = 1; +SET enable_json_type = 1; +ALTER TABLE product_analytics.events + MODIFY COLUMN `$properties` JSON( +max_dynamic_paths=0, +label String , +hesitation_time UInt32 , +name String , +payload String , +level Enum8 ('info'=0, 'error'=1), +source Enum8 ('js_exception'=0, 'bugsnag'=1, 'cloudwatch'=2, 'datadog'=3, 'elasticsearch'=4, 'newrelic'=5, 'rollbar'=6, 'sentry'=7, 'stackdriver'=8, 'sumologic'=9), +message String , +error_id String , +duration UInt16, +context Enum8('unknown'=0, 'self'=1, 'same-origin-ancestor'=2, 'same-origin-descendant'=3, 'same-origin'=4, 'cross-origin-ancestor'=5, 'cross-origin-descendant'=6, 'cross-origin-unreachable'=7, 'multiple-contexts'=8), +url_host String , +url_path String , +url_hostpath String , +request_start UInt16 , +response_start UInt16 , +response_end UInt16 , +dom_content_loaded_event_start UInt16 , +dom_content_loaded_event_end UInt16 , +load_event_start UInt16 , +load_event_end UInt16 , +first_paint UInt16 , +first_contentful_paint_time UInt16 , +speed_index UInt16 , +visually_complete UInt16 , +time_to_interactive UInt16, +ttfb UInt16, +ttlb UInt16, +response_time UInt16, +dom_building_time UInt16, +dom_content_loaded_event_time UInt16, +load_event_time UInt16, +min_fps UInt8, +avg_fps UInt8, +max_fps UInt8, +min_cpu UInt8, +avg_cpu UInt8, +max_cpu UInt8, +min_total_js_heap_size UInt64, +avg_total_js_heap_size UInt64, +max_total_js_heap_size UInt64, +min_used_js_heap_size UInt64, +avg_used_js_heap_size UInt64, +max_used_js_heap_size UInt64, +method Enum8('GET' = 0, 'HEAD' = 1, 'POST' = 2, 'PUT' = 3, 'DELETE' = 4, 'CONNECT' = 5, 'OPTIONS' = 6, 'TRACE' = 7, 'PATCH' = 8), +status UInt16, +success UInt8, +request_body String, +response_body String, +transfer_size UInt32, +selector String, +normalized_x Float32, +normalized_y Float32, +message_id UInt64 +) DEFAULT '{}' COMMENT 'these properties belongs to the auto-captured events'; + DROP TABLE IF EXISTS product_analytics.all_events; CREATE TABLE IF NOT EXISTS product_analytics.all_events ( @@ -156,8 +216,7 @@ CREATE TABLE IF NOT EXISTS product_analytics.property_values_samples ENGINE = ReplacingMergeTree(_timestamp) ORDER BY (project_id, property_name, is_event_property); -CREATE MATERIALIZED VIEW IF NOT EXISTS product_analytics.property_values_sampler_mv - REFRESH EVERY 30 HOUR TO product_analytics.property_values_samples AS +CREATE MATERIALIZED VIEW IF NOT EXISTS product_analytics.property_values_sampler_mvREFRESHEVERY30HOURTOproduct_analytics.property_values_samples AS SELECT project_id, property_name, TRUE AS is_event_property, 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 8a0db7215..272ffd782 100644 --- a/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql +++ b/scripts/schema/db/init_dbs/clickhouse/create/init_schema.sql @@ -335,7 +335,62 @@ CREATE TABLE IF NOT EXISTS product_analytics.events "$source" LowCardinality(String) DEFAULT '' COMMENT 'the name of the integration that sent the event', "$duration_s" UInt16 DEFAULT 0 COMMENT 'the duration from session-start in seconds', properties JSON DEFAULT '{}', - "$properties" JSON DEFAULT '{}' COMMENT 'these properties belongs to the auto-captured events', + "$properties" JSON( +max_dynamic_paths=0, +label String , +hesitation_time UInt32 , +name String , +payload String , +level Enum8 ('info'=0, 'error'=1), +source Enum8 ('js_exception'=0, 'bugsnag'=1, 'cloudwatch'=2, 'datadog'=3, 'elasticsearch'=4, 'newrelic'=5, 'rollbar'=6, 'sentry'=7, 'stackdriver'=8, 'sumologic'=9), +message String , +error_id String , +duration UInt16, +context Enum8('unknown'=0, 'self'=1, 'same-origin-ancestor'=2, 'same-origin-descendant'=3, 'same-origin'=4, 'cross-origin-ancestor'=5, 'cross-origin-descendant'=6, 'cross-origin-unreachable'=7, 'multiple-contexts'=8), +url_host String , +url_path String , +url_hostpath String , +request_start UInt16 , +response_start UInt16 , +response_end UInt16 , +dom_content_loaded_event_start UInt16 , +dom_content_loaded_event_end UInt16 , +load_event_start UInt16 , +load_event_end UInt16 , +first_paint UInt16 , +first_contentful_paint_time UInt16 , +speed_index UInt16 , +visually_complete UInt16 , +time_to_interactive UInt16, +ttfb UInt16, +ttlb UInt16, +response_time UInt16, +dom_building_time UInt16, +dom_content_loaded_event_time UInt16, +load_event_time UInt16, +min_fps UInt8, +avg_fps UInt8, +max_fps UInt8, +min_cpu UInt8, +avg_cpu UInt8, +max_cpu UInt8, +min_total_js_heap_size UInt64, +avg_total_js_heap_size UInt64, +max_total_js_heap_size UInt64, +min_used_js_heap_size UInt64, +avg_used_js_heap_size UInt64, +max_used_js_heap_size UInt64, +method Enum8('GET' = 0, 'HEAD' = 1, 'POST' = 2, 'PUT' = 3, 'DELETE' = 4, 'CONNECT' = 5, 'OPTIONS' = 6, 'TRACE' = 7, 'PATCH' = 8), +status UInt16, +success UInt8, +request_body String, +response_body String, +transfer_size UInt32, +selector String, +normalized_x Float32, +normalized_y Float32, +message_id UInt64 +) DEFAULT '{}' COMMENT 'these properties belongs to the auto-captured events', description String DEFAULT '', group_id1 Array(String) DEFAULT [], group_id2 Array(String) DEFAULT [],