Пет-проект: Витринный слой. Задание 2: Подготовь структуру витрины lesson_popularity_summary.
This commit is contained in:
-59
@@ -1,59 +0,0 @@
|
|||||||
"user_id","lesson_id","course_id","viewed_at"
|
|
||||||
1,2,1,2023-01-16 10:15:00.000 +0300
|
|
||||||
1,3,1,2023-01-17 09:00:00.000 +0300
|
|
||||||
1,4,1,2023-01-17 09:30:00.000 +0300
|
|
||||||
1,4,1,2023-01-18 10:00:00.000 +0300
|
|
||||||
1,6,2,2023-02-02 14:00:00.000 +0300
|
|
||||||
1,13,4,2023-02-15 10:30:00.000 +0300
|
|
||||||
5,16,5,2023-03-22 11:00:00.000 +0300
|
|
||||||
12,2,1,2023-01-17 10:20:00.000 +0300
|
|
||||||
12,3,1,2023-04-10 11:30:00.000 +0300
|
|
||||||
14,2,1,2023-01-09 08:15:00.000 +0300
|
|
||||||
14,4,1,2023-01-10 10:30:00.000 +0300
|
|
||||||
14,6,2,2023-01-10 14:00:00.000 +0300
|
|
||||||
14,9,3,2023-01-10 08:00:00.000 +0300
|
|
||||||
1,4,1,2023-01-17 11:00:00.000 +0300
|
|
||||||
12,9,3,2023-03-12 10:00:00.000 +0300
|
|
||||||
14,3,1,2023-01-10 10:00:00.000 +0300
|
|
||||||
14,7,2,2023-01-11 10:00:00.000 +0300
|
|
||||||
14,8,2,2023-01-12 11:00:00.000 +0300
|
|
||||||
1,12,4,2023-02-15 10:00:00.000 +0300
|
|
||||||
12,1,1,2023-01-17 10:00:00.000 +0300
|
|
||||||
14,5,1,2023-01-11 09:00:00.000 +0300
|
|
||||||
1,1,1,2023-01-16 10:00:00.000 +0300
|
|
||||||
5,15,5,2023-03-21 10:00:00.000 +0300
|
|
||||||
12,1,1,2023-04-10 11:00:00.000 +0300
|
|
||||||
14,1,1,2023-01-09 08:00:00.000 +0300
|
|
||||||
3,6,2,2023-03-06 12:00:00.000 +0300
|
|
||||||
4,9,3,2023-04-02 10:00:00.000 +0300
|
|
||||||
4,6,2,2023-03-12 14:00:00.000 +0300
|
|
||||||
4,7,2,2023-03-13 09:00:00.000 +0300
|
|
||||||
6,3,1,2023-01-08 09:00:00.000 +0300
|
|
||||||
6,6,2,2023-01-11 14:00:00.000 +0300
|
|
||||||
6,7,2,2023-01-12 10:00:00.000 +0300
|
|
||||||
6,8,2,2023-01-13 11:00:00.000 +0300
|
|
||||||
6,9,3,2023-03-09 11:00:00.000 +0300
|
|
||||||
7,9,3,2023-03-11 14:00:00.000 +0300
|
|
||||||
2,9,3,2023-03-16 10:00:00.000 +0300
|
|
||||||
2,10,3,2023-03-16 10:30:00.000 +0300
|
|
||||||
3,2,1,2023-02-26 11:20:00.000 +0300
|
|
||||||
4,10,3,2023-04-03 10:00:00.000 +0300
|
|
||||||
6,2,1,2023-01-07 10:15:00.000 +0300
|
|
||||||
6,4,1,2023-01-08 09:30:00.000 +0300
|
|
||||||
6,13,4,2023-02-06 09:30:00.000 +0300
|
|
||||||
7,2,1,2023-01-14 10:20:00.000 +0300
|
|
||||||
7,3,1,2023-01-15 09:00:00.000 +0300
|
|
||||||
7,10,3,2023-03-11 14:30:00.000 +0300
|
|
||||||
9,13,4,2023-02-13 10:30:00.000 +0300
|
|
||||||
13,6,2,2023-01-20 14:00:00.000 +0300
|
|
||||||
13,7,2,2023-01-21 10:00:00.000 +0300
|
|
||||||
2,1,1,2023-01-21 09:00:00.000 +0300
|
|
||||||
6,1,1,2023-01-07 10:00:00.000 +0300
|
|
||||||
6,14,4,2023-02-07 10:00:00.000 +0300
|
|
||||||
7,1,1,2023-01-14 10:00:00.000 +0300
|
|
||||||
9,12,4,2023-02-13 10:00:00.000 +0300
|
|
||||||
9,1,1,2023-02-16 11:00:00.000 +0300
|
|
||||||
3,1,1,2023-02-26 11:00:00.000 +0300
|
|
||||||
6,5,1,2023-01-09 10:00:00.000 +0300
|
|
||||||
6,12,4,2023-02-06 09:00:00.000 +0300
|
|
||||||
13,12,4,2023-02-21 09:00:00.000 +0300
|
|
||||||
|
+59
@@ -0,0 +1,59 @@
|
|||||||
|
"user_id","lesson_id","course_id","viewed_at"
|
||||||
|
3,6,2,2023-03-06 12:00:00.000
|
||||||
|
4,9,3,2023-04-02 10:00:00.000
|
||||||
|
4,6,2,2023-03-12 14:00:00.000
|
||||||
|
4,7,2,2023-03-13 09:00:00.000
|
||||||
|
6,3,1,2023-01-08 09:00:00.000
|
||||||
|
6,6,2,2023-01-11 14:00:00.000
|
||||||
|
6,7,2,2023-01-12 10:00:00.000
|
||||||
|
6,8,2,2023-01-13 11:00:00.000
|
||||||
|
6,9,3,2023-03-09 11:00:00.000
|
||||||
|
7,9,3,2023-03-11 14:00:00.000
|
||||||
|
2,9,3,2023-03-16 10:00:00.000
|
||||||
|
2,10,3,2023-03-16 10:30:00.000
|
||||||
|
3,2,1,2023-02-26 11:20:00.000
|
||||||
|
4,10,3,2023-04-03 10:00:00.000
|
||||||
|
6,2,1,2023-01-07 10:15:00.000
|
||||||
|
6,4,1,2023-01-08 09:30:00.000
|
||||||
|
6,13,4,2023-02-06 09:30:00.000
|
||||||
|
7,2,1,2023-01-14 10:20:00.000
|
||||||
|
7,3,1,2023-01-15 09:00:00.000
|
||||||
|
7,10,3,2023-03-11 14:30:00.000
|
||||||
|
9,13,4,2023-02-13 10:30:00.000
|
||||||
|
13,6,2,2023-01-20 14:00:00.000
|
||||||
|
13,7,2,2023-01-21 10:00:00.000
|
||||||
|
2,1,1,2023-01-21 09:00:00.000
|
||||||
|
6,1,1,2023-01-07 10:00:00.000
|
||||||
|
6,14,4,2023-02-07 10:00:00.000
|
||||||
|
7,1,1,2023-01-14 10:00:00.000
|
||||||
|
9,12,4,2023-02-13 10:00:00.000
|
||||||
|
9,1,1,2023-02-16 11:00:00.000
|
||||||
|
3,1,1,2023-02-26 11:00:00.000
|
||||||
|
6,5,1,2023-01-09 10:00:00.000
|
||||||
|
6,12,4,2023-02-06 09:00:00.000
|
||||||
|
13,12,4,2023-02-21 09:00:00.000
|
||||||
|
1,2,1,2023-01-16 10:15:00.000
|
||||||
|
1,3,1,2023-01-17 09:00:00.000
|
||||||
|
1,4,1,2023-01-17 09:30:00.000
|
||||||
|
1,4,1,2023-01-18 10:00:00.000
|
||||||
|
1,6,2,2023-02-02 14:00:00.000
|
||||||
|
1,13,4,2023-02-15 10:30:00.000
|
||||||
|
5,16,5,2023-03-22 11:00:00.000
|
||||||
|
12,2,1,2023-01-17 10:20:00.000
|
||||||
|
12,3,1,2023-04-10 11:30:00.000
|
||||||
|
14,2,1,2023-01-09 08:15:00.000
|
||||||
|
14,4,1,2023-01-10 10:30:00.000
|
||||||
|
14,6,2,2023-01-10 14:00:00.000
|
||||||
|
14,9,3,2023-01-10 08:00:00.000
|
||||||
|
1,4,1,2023-01-17 11:00:00.000
|
||||||
|
12,9,3,2023-03-12 10:00:00.000
|
||||||
|
14,3,1,2023-01-10 10:00:00.000
|
||||||
|
14,7,2,2023-01-11 10:00:00.000
|
||||||
|
14,8,2,2023-01-12 11:00:00.000
|
||||||
|
1,12,4,2023-02-15 10:00:00.000
|
||||||
|
12,1,1,2023-01-17 10:00:00.000
|
||||||
|
14,5,1,2023-01-11 09:00:00.000
|
||||||
|
1,1,1,2023-01-16 10:00:00.000
|
||||||
|
5,15,5,2023-03-21 10:00:00.000
|
||||||
|
12,1,1,2023-04-10 11:00:00.000
|
||||||
|
14,1,1,2023-01-09 08:00:00.000
|
||||||
|
+99
@@ -0,0 +1,99 @@
|
|||||||
|
-- Вариант 1(не работает):
|
||||||
|
CREATE TABLE mnoskov.lesson_popularity_summary
|
||||||
|
ON CLUSTER clickhouse_cluster
|
||||||
|
(
|
||||||
|
lesson_id UInt64,
|
||||||
|
lesson_title String,
|
||||||
|
course_id UInt64,
|
||||||
|
course_title String,
|
||||||
|
total_views UInt64,
|
||||||
|
unique_users UInt64,
|
||||||
|
first_view DateTime,
|
||||||
|
last_view DateTime
|
||||||
|
)
|
||||||
|
ENGINE = ReplicatedMergeTree(
|
||||||
|
'/clickhouse/tables/{shard}/mnoskov/lesson_popularity_summary',
|
||||||
|
'{replica}'
|
||||||
|
)
|
||||||
|
ORDER BY lesson_id;
|
||||||
|
|
||||||
|
CREATE MATERIALIZED VIEW mnoskov.mv_lesson_popularity_summary
|
||||||
|
ON CLUSTER clickhouse_cluster
|
||||||
|
TO mnoskov.lesson_popularity_summary
|
||||||
|
AS
|
||||||
|
WITH result_flv AS (
|
||||||
|
SELECT
|
||||||
|
lesson_id,
|
||||||
|
count() AS total_views,
|
||||||
|
uniq(user_id) AS unique_users,
|
||||||
|
min(viewed_at) AS first_view,
|
||||||
|
max(viewed_at) AS last_view
|
||||||
|
FROM
|
||||||
|
mnoskov.core_fact_lesson_views flv
|
||||||
|
GROUP BY
|
||||||
|
lesson_id
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
cdl.lesson_id AS lesson_id,
|
||||||
|
cdl.title AS lesson_title,
|
||||||
|
cdc.course_id AS course_id,
|
||||||
|
cdc.title AS course_title,
|
||||||
|
rflv.total_views AS total_views,
|
||||||
|
rflv.unique_users AS unique_users,
|
||||||
|
rflv.first_view AS first_view,
|
||||||
|
rflv.last_view AS last_view
|
||||||
|
FROM
|
||||||
|
mnoskov.core_dim_lesson cdl
|
||||||
|
JOIN
|
||||||
|
mnoskov.core_dim_course cdc ON cdl.course_id = cdc.course_id
|
||||||
|
JOIN
|
||||||
|
result_flv rflv ON cdl.lesson_id = rflv.lesson_id;
|
||||||
|
|
||||||
|
|
||||||
|
-- Вариант 2(не работает):
|
||||||
|
CREATE TABLE mnoskov.lesson_popularity_summary
|
||||||
|
ON CLUSTER clickhouse_cluster
|
||||||
|
(
|
||||||
|
lesson_id UInt64,
|
||||||
|
lesson_title String,
|
||||||
|
course_id UInt64,
|
||||||
|
course_title String,
|
||||||
|
total_views AggregateFunction(count),
|
||||||
|
unique_users AggregateFunction(uniq, UInt64),
|
||||||
|
first_view AggregateFunction(min, DateTime),
|
||||||
|
last_view AggregateFunction(max, DateTime)
|
||||||
|
)
|
||||||
|
ENGINE AggregatingMergeTree
|
||||||
|
ORDER BY lesson_id;
|
||||||
|
|
||||||
|
CREATE MATERIALIZED VIEW mnoskov.mv_lesson_popularity_summary
|
||||||
|
ON CLUSTER clickhouse_cluster
|
||||||
|
TO mnoskov.lesson_popularity_summary
|
||||||
|
AS
|
||||||
|
WITH result_flv AS (
|
||||||
|
SELECT
|
||||||
|
lesson_id,
|
||||||
|
countState() AS total_views,
|
||||||
|
uniqState(user_id) AS unique_users,
|
||||||
|
minState(viewed_at) AS first_view,
|
||||||
|
maxState(viewed_at) AS last_view
|
||||||
|
FROM
|
||||||
|
mnoskov.core_fact_lesson_views flv
|
||||||
|
GROUP BY
|
||||||
|
lesson_id
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
cdl.lesson_id AS lesson_id,
|
||||||
|
cdl.title AS lesson_title,
|
||||||
|
cdc.course_id AS course_id,
|
||||||
|
cdc.title AS course_title,
|
||||||
|
rflv.total_views AS total_views,
|
||||||
|
rflv.unique_users AS unique_users,
|
||||||
|
rflv.first_view AS first_view,
|
||||||
|
rflv.last_view AS last_view
|
||||||
|
FROM
|
||||||
|
mnoskov.core_dim_lesson cdl
|
||||||
|
JOIN
|
||||||
|
mnoskov.core_dim_course cdc ON cdl.course_id = cdc.course_id
|
||||||
|
JOIN
|
||||||
|
result_flv rflv ON cdl.lesson_id = rflv.lesson_id;
|
||||||
Reference in New Issue
Block a user