大家好,欢迎来到IT知识分享网。
资料
安装部署
测试环境可以准备三台机器,安装1个fe,3个be。两种方式手动编译指定版本的doris,也可以下载编译好的包,要求不高只是测试用一用可以用资料中的1。
如果机器上有docker ip,be和fe都需要增加priority_networks参数。
三种表和场景
每种表有各自适用的场景,而且建表的字段顺序也有讲究,例如排序列必须在指标里前面,因此我们需要根据表的查询需求来确定表结构。不适合通过一个模型设计解决所有场景的大一统思想。
日志表
CREATE TABLE IF NOT EXISTS table_log (
event_time DATETIME NOT NULL COMMENT “datetime of event”,
event_type INT NOT NULL COMMENT “type of event”,
user_id INT COMMENT “id of user”,
device_code INT COMMENT “device of “,
channel INT COMMENT “”
)
DUPLICATE KEY(event_time, event_type,user_id)
DISTRIBUTED BY HASH(user_id) BUCKETS 3
使用场景和特点:
1. 保留原始数据,数据不更新,日志数据,时序数据
2. 传统的规则比较过滤,不适合聚合
聚合表
CREATE TABLE IF NOT EXISTS table_agg (
site_id LARGEINT NOT NULL COMMENT “id of site”,
date DATE NOT NULL COMMENT “time of event”,
city_code VARCHAR(20) COMMENT “city_code of user”,
pv BIGINT SUM DEFAULT “0” COMMENT “total page views”
)
AGGREGATE KEY(`site_id`, `date`, `city_code`)
DISTRIBUTED BY HASH(site_id) BUCKETS 8;
使用场景和特点:
1. 汇总类业务,例如sum、count、max,例如流量分析pv uv、电商中按消费者或者商品的小时、天、星期、月统计。
2. 更新不频繁
主键表
主键表是聚合表的一个特例,除了主键列外,其他字段全是replace聚合。
CREATE TABLE IF NOT EXISTS table_uniq (
create_time DATE NOT NULL COMMENT “create time of an order”,
order_id BIGINT NOT NULL COMMENT “id of an order”,
order_state INT COMMENT “state of an order”,
total_price BIGINT COMMENT “price of an order”
)
UNIQUE KEY(create_time, order_id)
DISTRIBUTED BY HASH(order_id) BUCKETS 8
使用场景和特点:
1. 大量更新,例如电商中的订单表
2. 需要进行实时分析
Doris外部表和场景
1. doris on mysql,可以使用insert select语句来做历史数据导数。
2. doris on es,规则过滤,表join,count会比纯doris表快很多。
3. doris on hdsf hive,常用于导数。
数据导入
只说几种常用的方式:
1. stream Load,一般线上使用这种方式导入增量数据,如果实时性要求高,建议分钟级一个批次,尽量每个批次数据量大些。
2. insert select,外部表导入,常用于历史数据。
3. insert 单条,测试使用。
4. Routine load,启动常驻进程,消费kafka数据落库,不建议线上使用,不好维护,不好做异常处理。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/87038.html