StarRocks簡單使用

從clickhouse遷移到StarRocks,研究討論後,決定使用flink進行kafka同步到StarRocks

1、數據模型

StarRocks 的數據模型主要分爲3類:

  • Aggregate,聚合模型
  • Unique,主鍵模型
  • Duplicate,明細模型

因數據都是日誌類數據,幫選擇了Duplicate

2、分區

StarRocks可以選擇固定分區和動態分區,考慮到數據增長,故選按天進行動態分區

3、建表

CREATE TABLE IF NOT EXISTS monitor_log (
	`monitor_date` VARCHAR(100) COMMENT "日期",
	`employee_code` VARCHAR(100) COMMENT "員工工號",
	`host_name` VARCHAR(100) COMMENT "主機名稱",
	`id` BIGINT(20) NOT NULL COMMENT "",
	`computer_model` VARCHAR(200) COMMENT "電腦類型",
	`cpu_num` INT,
	`create_time` DATETIME COMMENT "日誌時間"
)
DUPLICATE KEY(`monitor_date`, `employee_code`, `host_name`)
PARTITION BY RANGE(`create_time`) ( )
DISTRIBUTED BY HASH(`create_time`) BUCKETS 8
PROPERTIES (
    "dynamic_partition.enable" = "true",
    "dynamic_partition.time_unit" = "DAY",
    "dynamic_partition.end" = "3",
    "dynamic_partition.prefix" = "ml",
    "dynamic_partition.buckets" = "8",
    "dynamic_partition.history_partition_num" = "0"
)

4、使用mybatis的多數據源框架,配置多數據源進行查詢

引包:

 <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.5.1</version>
</dependency>

配置:

spring.datasource.dynamic.datasource.starrocks.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.starrocks.url=jdbc:mysql://127.0.0.1:9030/test?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai&autoReconnect=true&allowMultiQueries=true&useSSL=false
spring.datasource.dynamic.datasource.starrocks.username=root
spring.datasource.dynamic.datasource.starrocks.password=1234

在查詢的方法前配置註解

@DS("starrocks")

4、寫同步數據的flink sql,配置source和sink

連接StarRocks可視化工具:SQLyog

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章