1) Переделал домашку в Типы таблиц под ON CLUSTER.
2) Сделал домашку в Типы данных - Задание 1
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
--Типы данных
|
||||
|
||||
--Задача 1
|
||||
CREATE TABLE raw_data
|
||||
ON CLUSTER clickhouse_cluster
|
||||
(
|
||||
user_id String,
|
||||
balance String,
|
||||
created_at String
|
||||
) ENGINE = MergeTree ORDER BY tuple();
|
||||
|
||||
SELECT DISTINCT
|
||||
toDecimal64OrNull(balance, 2) AS balance_decimal,
|
||||
toDateTime64OrNull(created_at, 3) AS created_at_date
|
||||
FROM raw_data
|
||||
WHERE
|
||||
toDecimal64OrNull(balance, 2) IS NOT NULL
|
||||
AND toDateTime64OrNull(created_at, 3) IS NOT NULL
|
||||
|
||||
/*
|
||||
CAST(balance AS Decimal(10, 2)) - этом случае будет ошибка, так как данный метод не поддеживает NULL
|
||||
|
||||
Следующие два метода по сути своей преобразование типа данных с условием ИЛИ, то есть:
|
||||
toDecimal64OrNull(balance, 2) - в этом методе на выходе будут корректные данные, в противном случае NULL
|
||||
toDecimal64OrZero(balance, 2) - аналогично с NULL, только будет ноль.
|
||||
*/
|
||||
@@ -1,6 +1,9 @@
|
||||
--Задача 1: Создай таблицу page_views
|
||||
DROP TABLE page_views;
|
||||
|
||||
CREATE TABLE page_views (
|
||||
CREATE TABLE page_views
|
||||
ON CLUSTER clickhouse_cluster
|
||||
(
|
||||
user_id UInt64,
|
||||
url String,
|
||||
view_time DateTime
|
||||
@@ -11,7 +14,9 @@ ORDER BY (user_id, view_time);
|
||||
|
||||
--Задача 2: Создай таблицу users
|
||||
|
||||
CREATE TABLE users (
|
||||
CREATE TABLE users
|
||||
ON CLUSTER clickhouse_cluster
|
||||
(
|
||||
id UInt64,
|
||||
name String,
|
||||
updated_at DateTime
|
||||
@@ -21,7 +26,9 @@ ORDER BY id;
|
||||
|
||||
-- Задача 3: Создай таблицу region_sales
|
||||
|
||||
CREATE TABLE region_sales (
|
||||
CREATE TABLE region_sales
|
||||
ON CLUSTER clickhouse_cluster
|
||||
(
|
||||
region String,
|
||||
date Date,
|
||||
sales UInt64
|
||||
@@ -30,17 +37,19 @@ ENGINE = SummingMergeTree()
|
||||
PARTITION BY toYYYYMM(date)
|
||||
ORDER BY (region, date);
|
||||
|
||||
--Задача 4.1: Создай таблицу user_metrics
|
||||
--Задача 4: Создай таблицу user_metrics
|
||||
|
||||
CREATE TABLE user_metrics (
|
||||
CREATE TABLE user_metrics
|
||||
ON CLUSTER clickhouse_cluster
|
||||
(
|
||||
region String,
|
||||
avg_age_state AggregateFunction(avg, UInt8),
|
||||
active_users_state AggregateFunction(uniq, UInt64)
|
||||
)
|
||||
ENGINE = AggregatingMergeTree()
|
||||
ORDER BY region;
|
||||
ENGINE = AggregatingMergeTree() --Подзадача 4.2
|
||||
ORDER BY region; --Подзадача 4.3
|
||||
|
||||
--Задача 4.3: - Вставь данные и Читай их через `avgMerge()` и `uniqMerge()`
|
||||
--Подзадача 4.4: - Вставь данные и Читай их через `avgMerge()` и `uniqMerge()`
|
||||
|
||||
INSERT INTO user_metrics
|
||||
SELECT
|
||||
@@ -61,7 +70,7 @@ FROM
|
||||
)
|
||||
GROUP BY region;
|
||||
|
||||
--Задача 4.4: - Читай их через `avgMerge()` и `uniqMerge()`
|
||||
--Подзадача 4.5: - Читай их через `avgMerge()` и `uniqMerge()`
|
||||
|
||||
SELECT
|
||||
region,
|
||||
|
||||
Reference in New Issue
Block a user