macOS通过docker 安装clickhouse过程


brew install --cask docker

// 修改镜像
{
  "builder": {
    "gc": {
      "enabled": true,
      "defaultKeepStorage": "20GB"
    }
  },
  "features": {
    "buildkit": true
  },
  "experimental": false,
  "debug": true,
  "registry-mirrors": [
    "https://4cupt54x.mirror.aliyuncs.com"
  ]
}

//下载ck
docker pull yandex/clickhouse-client
docker pull yandex/clickhouse-server


# 默认直接启动即可
docker run -d \
--name clickhouse-server \
-p 9000:9000 \
-p 8123:8123 \
-p 9009:9009 \
--ulimit nofile=262144:262144 \
yandex/clickhouse-server


docker run -it --rm --link clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server

CREATE DATABASE  test


CREATE TABLE t_order
(
    OrderID UInt32,
    UserID UInt64,
    EventDate Date
)
ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (OrderID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity=8192


INSERT INTO t_order VALUES (11111, 11111, now()), (22222, 22222, now())

CREATE TABLE t_order
(
    OrderID UInt32,
    UserID UInt64,
    driverIds Array(String),
    Driver Nested
    (
        ID String,
        DriverName String
    ),
    EventDate DateTime
)
ENGINE MergeTree() PARTITION BY toYYYYMMDD(EventDate) ORDER BY (OrderID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity=8192

INSERT INTO t_order VALUES (11111, 11111,['33','44','55'], ['33','44','55'],['n33','n44','n55'],now()), (22222, 22222,['201','202','203'],['201','202','203'],['n201','n202','n203'], now())

Select * from t_order where has(driverIds,'33')


INSERT INTO t_order VALUES (33333, 33333,['33','44','55'], ['33','44','55'],['n33','n44','n55'],now())

Select * from (Select OrderID, Driver.DriverID as driverId, Driver.DriverName as driverName from t_order_d ARRAY JOIN Driver) where driverId  = '33'

CREATE TABLE t_order1
(
    OrderID UInt32,
    UserID UInt64,
    driverIds Array(String),
    Driver Nested
    (
        ID String,
        DriverName String
    ),
    EventDate DateTime,
 INDEX driverId_idx Driver.ID TYPE minmax GRANULARITY 5
)
ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (OrderID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity=8192

INSERT INTO t_order1 VALUES (11111, 11111,['33','44','55'], ['33','44','55'],['n33','n44','n55'],now()), (22222, 22222,['201','202','203'],['201','202','203'],['n201','n202','n203'], now())


CREATE TABLE t_order3
(
    OrderID UInt32,
    UserID UInt64,
    driverIds Array(String),
    Driver Nested
    (
        ID String,
        DriverName String
    ),
    EventDate DateTime
)
ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate)

INSERT INTO t_order2 VALUES (11111, 11111,['33','44','55'], ['33','44','55'],['n33','n44','n55'],now()), (22222, 22222,['201','202','203'],['201','202','203'],['n201','n202','n203'], now())

查看执行计划
1、设置日志级别
set send_logs_level='trace'
2、执行sql
select * from t_order1 where OrderID=11111

CREATE TABLE t_1
(
    OrderID UInt32,
    UserID UInt64,
    driverIds Array(String),
    Driver Nested
    (
        ID String,
        DriverName String
    ),
    EventDate DateTime
)
ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (OrderID) SAMPLE BY OrderID SETTINGS index_granularity=8192

INSERT INTO t_1 VALUES (11111, 11111,['33','44','55'], ['33','44','55'],['n33','n44','n55'],now()), (22222, 22222,['201','202','203'],['201','202','203'],['n201','n202','n203'], now())

Select * from t_1 where UserID = 11111

CREATE TABLE t_2
(
    OrderID UInt32,
    UserID UInt64,
    driverIds Array(String),
    Driver Nested
    (
        ID String,
        DriverName String
    ),
    EventDate DateTime,
 INDEX UserID_idx UserID TYPE minmax GRANULARITY 5
)
ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (OrderID) SAMPLE BY OrderID SETTINGS index_granularity=8192


INSERT INTO t_2 VALUES (11111, 11111,['33','44','55'], ['33','44','55'],['n33','n44','n55'],now()), (22222, 22222,['201','202','203'],['201','202','203'],['n201','n202','n203'], now())

Select * from t_2 where UserID = 11111


CREATE TABLE t_order
(
    traceId String,
    appid String,
    requestId String,
    createTime DateTime64,
 createTime DateTime64,
 sendTime DateTime64,
 eventTime DateTime64,
    scene String,
)
ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (OrderID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity=8192

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值