starrocks

官方文档

StarRocks 是新一代极速全场景 MPP (Massively Parallel Processing) 数据库。StarRocks 的愿景是能够让用户的数据分析变得更加简单和敏捷。用户无需经过复杂的预处理,就可以用 StarRocks 来支持多种数据分析场景的极速分析。

StarRocks 架构简洁,采用了全面向量化引擎,并配备全新设计的 CBO (Cost Based Optimizer) 优化器,查询速度(尤其是多表关联查询)远超同类产品。

StarRocks 能很好地支持实时数据分析,并能实现对实时更新数据的高效查询。StarRocks 还支持现代化物化视图,进一步加速查询。

启动

存算一题

Tip

starrocks默认没有密码,需要启动实例后连接修改密码

SET PASSWORD = PASSWORD('password');
ubuntu
debian
apt update
apt install openjdk-17-jdk mysql-client -y
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
wget https://releases.starrocks.io/starrocks/StarRocks-4.0.6-ubuntu-amd64.tar.gz
tar -zxvf StarRocks-4.0.6-ubuntu-amd64.tar.gz
cd StarRocks-4.0.6-ubuntu-amd64
./fe/bin/start_fe.sh --daemon
./be/bin/start_be.sh --daemon

前端中添加后端

# 连接数据库
mysql -h 192.168.1.1 -P9030  -uroot
# 查看前端
SHOW PROC '/frontends'\G
# 增加后端
ALTER SYSTEM ADD BACKEND "192.168.1.1:9050";
# 查看后端(需要等待连接)
SHOW PROC '/backends'\G

建表

-- 优化:设置并行执行实例数(建议设为 CPU 核心数)
SET GLOBAL parallel_fragment_exec_instance_num = 4;

-- 优化:开启查询缓存(重复查询秒回)
SET GLOBAL enable_query_cache = true;

CREATE TABLE action.local_cloud_browser (
    `kafka_create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'kafka 时间',
    `create_time`       DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据入库时间',
    `kafka_offset`      BIGINT COMMENT 'kafka 位置',
    `kafka_partition`   TINYINT COMMENT 'kafka 分区',
    `kafka_topic`       VARCHAR(255) COMMENT 'kafka topic',
    `message`           JSON COMMENT '日志'
)
DUPLICATE KEY(`kafka_create_time`) -- 核心排序列
PARTITION BY RANGE(`kafka_create_time`) () -- 以 kafka 时间分区
DISTRIBUTED BY HASH(`kafka_create_time`) BUCKETS 10 -- 以 kafka 时间打散
PROPERTIES (
    "replication_num" = "1", -- 既然你升级了单机/单节点环境,请务必设为 1
    "dynamic_partition.enable" = "true",
    "dynamic_partition.time_unit" = "DAY",
    "dynamic_partition.start" = "-30", -- 自动维护过去 30 天分区
    "dynamic_partition.end" = "3",      -- 预建未来 3 天分区
    "dynamic_partition.prefix" = "p",
    "dynamic_partition.buckets" = "10"
);