From 73988517db77f588dd09b1aa7c404aa7672b8433 Mon Sep 17 00:00:00 2001 From: dr0zd Date: Sat, 31 Jan 2026 01:16:20 +0700 Subject: [PATCH] stage 1 tables --- mdrozdov/clickhouse/stage1.sql | 96 ++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 mdrozdov/clickhouse/stage1.sql diff --git a/mdrozdov/clickhouse/stage1.sql b/mdrozdov/clickhouse/stage1.sql new file mode 100644 index 0000000..232cbac --- /dev/null +++ b/mdrozdov/clickhouse/stage1.sql @@ -0,0 +1,96 @@ +-- удалить таблицу если раньше создавали +DROP TABLE IF EXISTS mdrozdov.core_fact_lesson_views +ON CLUSTER clickhouse_cluster; + +-- таблицы измерений +-- user dimention +CREATE TABLE mdrozdov.core_dim_user +ON CLUSTER clickhouse_cluster +( + user_id Int32, + name String, + age Int32, + email String, + registration_date Date +) +ENGINE = ReplicatedMergeTree( + '/clickhouse/tables/{shard}/mdrozdov/core_dim_user', + '{replica}' +) +ORDER BY user_id; + +-- course dimention +CREATE TABLE mdrozdov.core_dim_course +ON CLUSTER clickhouse_cluster +( + course_id Int32, + title String, + category String +) +ENGINE = ReplicatedMergeTree( + '/clickhouse/tables/{shard}/mdrozdov/core_dim_course', + '{replica}' +) +ORDER BY course_id; + +-- lesson dimention +CREATE TABLE mdrozdov.core_dim_lesson +ON CLUSTER clickhouse_cluster +( + lesson_id Int32, + title String, + duration_min Int32, + course_id String, +) +ENGINE = ReplicatedMergeTree( + '/clickhouse/tables/{shard}/mdrozdov/core_dim_lesson', + '{replica}' +) +ORDER BY course_id; + +-- date dimention +CREATE TABLE mdrozdov.core_dim_date +ON CLUSTER clickhouse_cluster +( + date DATE, + year Int32, + month Int32, + day Int32, + weekday String +) +ENGINE = ReplicatedMergeTree( + '/clickhouse/tables/{shard}/mdrozdov/core_dim_date', + '{replica}' +) +ORDER BY date; + + +-- таблицы фактов +-- core_enrollments +CREATE TABLE mdrozdov.core_enrollments +ON CLUSTER clickhouse_cluster +( + user_id Int32, + course_id Int32, + enrolled_at DateTime64(3) +) +ENGINE = ReplicatedMergeTree( + '/clickhouse/tables/{shard}/mdrozdov/core_enrollments', + '{replica}' +) +ORDER BY course_id; + +-- core_fact_lesson_views +CREATE TABLE mdrozdov.core_fact_lesson_views +ON CLUSTER clickhouse_cluser +( + user_id Int32, + lesson_id Int32, + course_id Int32, + viewed_at DateTime64(3) +) +ENGINE = ReplicatedMergeTree( + '/clickhouse/tables/{shard}/mdrozdov/core_fact_lesson_views', + '{replica}' +) +ORDER BY course_id;