Doris数据模型

news2024/11/28 10:45:16

Doris支持三种数据模型,分别是:

  • Aggregate Model(聚合模型)

  • Unique Model(唯一模型)

  • Duplicate Model(冗余模型)

Aggregate Model(聚合模型)

key相同的数据,Value会按照指定的聚合方式聚合到一起。(replace、sum、min、max)

  • replace:替换
  • sum:求和
  • min:求最小
  • max:求最大

演示案例(数据被聚合)

--创建表
CREATE TABLE IF NOT EXISTS test_db.example_site_visit
(
    `user_id` LARGEINT NOT NULL COMMENT "用户id",
    `date` DATE NOT NULL COMMENT "数据灌入日期时间",
    `city` VARCHAR(20) COMMENT "用户所在城市",
    `age` SMALLINT COMMENT "用户年龄",
    `sex` TINYINT COMMENT "用户性别",
    `last_visit_date` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "用户最后一次访问时间",
    `cost` BIGINT SUM DEFAULT "0" COMMENT "用户总消费",
    `max_dwell_time` INT MAX DEFAULT "0" COMMENT "用户最大停留时间",
    `min_dwell_time` INT MIN DEFAULT "99999" COMMENT "用户最小停留时间"
)
AGGREGATE KEY(`user_id`, `date`, `city`, `age`, `sex`)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 10
PROPERTIES("replication_num" = "1");

--往表中插入数据
insert into test_db.example_site_visit values(10000,'2017-10-01','北京',20,0,'2017-10-01 06:00:00',20,10,2);
insert into test_db.example_site_visit values(10000,'2017-10-01','北京',20,0,'2017-10-01 07:00:00',15,8,5);
insert into test_db.example_site_visit values(10001,'2017-10-01','北京',30,1,'2017-10-01 17:05:45',2,22,22);
insert into test_db.example_site_visit values(10002,'2017-10-02','上海',20,1,'2017-10-02 12:59:12',200,5,5);
insert into test_db.example_site_visit values(10003,'2017-10-02','广州',32,0,'2017-10-02 11:20:00',30,11,11);
insert into test_db.example_site_visit values(10004,'2017-10-01','深圳',35,0,'2017-10-01 10:00:15',100,3,3);
insert into test_db.example_site_visit values(10004,'2017-10-03','深圳',35,0,'2017-10-03 10:20:22',11,6,6);

--查询表结果
select * from example_site_visit;

Unique Model(唯一模型)

唯一模型,保证key的唯一性。换句话说,只要key相同,则Doris会用最新的数据替换之前的数据。

案例演示

--创建表
CREATE TABLE IF NOT EXISTS test_db.user
(
    `user_id` LARGEINT NOT NULL COMMENT "用户id",
    `username` VARCHAR(50) NOT NULL COMMENT "用户昵称",
    `city` VARCHAR(20) COMMENT "用户所在城市",
    `age` SMALLINT COMMENT "用户年龄",
    `sex` TINYINT COMMENT "用户性别",
    `phone` LARGEINT COMMENT "用户电话",
    `address` VARCHAR(500) COMMENT "用户地址",
    `register_time` DATETIME COMMENT "用户注册时间"
)
UNIQUE KEY(`user_id`, `username`)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 10
PROPERTIES("replication_num" = "1");

--插入数据
insert into test_db.user values(10000,'zhangsan','北京',20,0,13112345312,'北京西城区','2020-10-01 07:00:00');
insert into test_db.user values(10000,'zhangsan','深圳',20,0,13112345312,'深圳市宝安区','2020-11-15 06:10:20');

--查看表数据
select * from user;

Duplicate Model(冗余模型)

冗余模型,允许数据存在重复(冗余)。可以存储原始数据,不会做任何的聚合操作。也不在保证数据的唯一性。

案例演示

--创建表
CREATE TABLE IF NOT EXISTS test_db.example_log
(
    `timestamp` DATETIME NOT NULL COMMENT "日志时间",
    `type` INT NOT NULL COMMENT "日志类型",
    `error_code` INT COMMENT "错误码",
    `error_msg` VARCHAR(1024) COMMENT "错误详细信息",
    `op_id` BIGINT COMMENT "负责人id",
    `op_time` DATETIME COMMENT "处理时间"
)
DUPLICATE KEY(`timestamp`, `type`)
DISTRIBUTED BY HASH(`timestamp`) BUCKETS 10
PROPERTIES("replication_num" = "1");

--插入数据
insert into test_db.example_log values('2020-10-01 08:00:05',1,404,'not found page', 101, '2020-10-01 08:00:05');
insert into test_db.example_log values('2020-10-01 08:00:05',1,404,'not found page', 101, '2020-10-01 08:00:05');
insert into test_db.example_log values('2020-10-01 08:00:05',2,404,'not found page', 101, '2020-10-01 08:00:06');
insert into test_db.example_log values('2020-10-01 08:00:06',2,404,'not found page', 101, '2020-10-01 08:00:07');

--查询表数据
select * from example_log;

三种数据模型的对比&应用场景

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/423295.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

影子账户——权限维持

文章目录定义创建定义 拥有管理员权限,但除了注册表外均查不到的账户。 创建 1、以管理员身份打开命令提示符 2、创建隐藏用户 3、将隐藏用户添加到管理员组 查看一下,没有显示匿名用户 4、查看《本地用户和组》,我是家庭版Windows&#x…

MySQL的学习

文章目录一、MySQL 插入数据二、MySQL 查询数据三、MySQL WHERE 子句四、MySQL UPDATE 更新五、MySQL DELETE 语句总结一、MySQL 插入数据 MySQL 表中使用 INSERT INTO SQL语句来插入数据。 你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚…

Linux学习笔记——网络基础一

文章目录计算机网络发展过程独立模式网络互联局域网LAN广域网WAN计算机网络协议的概念网络协议协议分层OSI七层模型TCP/IP五层(或四层)模型网络传输基本流程数据包封装和分用各层间通信IP地址MAC地址计算机网络发展过程 独立模式 计算机之间相互独立; 网络互联 多台计算机连…

rc.local脚本延时启动

rc.local脚本延时启动1、问题描述2、解决方法3、rc.local脚本依赖关系的处理3.1、对脚本进行分类,分别设置延时启动策略4、测试重启rc-local.service5、rc.local脚本执行特点5.1、rc.local脚本在操作系统启动时只执行一次。5.2、在rc.local脚本中执行程序时是没有环…

人工智能专题-知识表示

文章目录人工智能专题-知识表示大纲2.1 知识表示的概念2.1.1 知识表示观点2.1.2 知识表示的要求2.2 一阶谓词逻辑表示法2.2.1 一阶谓词概念2.2.2 谓词逻辑表示方法2.3 产生式表示法2.4 语义网络表示法2.5 框架表示法人工智能专题-知识表示 大纲 大纲:掌握知识表示方…

jenkins——环境变量、节点配置以及节点环境变量的使用

这里写目录标题一、Jenkins 环境变量1、环境变量分类a、系统内置环境变量b、用户自定义环境变量2、环境变量的使用3、控制台输出二、Jenkins 节点配置1、Jenkins的常用节点2、准备工作3、SSH类节点配置4、Java web节点配置5、Java web节点配置详细步骤三、Jenkins 节点环境变量…

“三箭齐发”,诸葛智能三大产品全新升级,助力企业迈向数字化经营 | 爱分析调研

调研:文鸿伟 撰写:文鸿伟 诸葛智能,是容联云旗下敏捷开放的场景化数据智能服务商,累积服务全国1000企业,覆盖泛互联网、泛电商、金融、汽车、产业科技、企服等数十个垂直领域。 自2015年成立至今,诸葛智…

HTML5 <li> 标签、HTML5 <legend> 标签

HTML5 <li> 标签 实例 HTML5 <li>标签用于表示文档中列表的项目&#xff0c;在下述例子中&#xff0c;我们分别在有序列表和无序列表中使用了<li>标签。 HTML 两个列表实例&#xff1a; 一个有序列表 (<ol>) 和 一个无序列表 (<ul>) : <ol…

机器学习入门实例-加州房价预测-2(数据整理)

计算相关性 使用corr()计算standard correlation coefficient&#xff08;Pearson’s r&#xff09;。矩阵不是很方便观察&#xff0c;可以直接排序median_house_value列&#xff0c;可以看出median_house_value与median_income的相关性挺大的。 corr_matrix visual_data.cor…

pdf 批量翻译-批量翻译照片

实现英语批量翻译通常需要使用机器翻译技术和程序编程知识。 下面是一些主要步骤&#xff1a; 选择机器翻译API&#xff1a;选择一种适合你的需求的机器翻译API&#xff0c;比如Google Translate API、Microsoft Translate API或者百度翻译API等。 注册API服务&#xff1a; 注…

721 Chapter3 MVCC(设计trade-off)

MVCC核心概念 1.读写互相不阻塞对方 2.读事务可以读一致性快照 3.支持时间旅行&#xff0c;也就是读过去的快照 但是存在写倾斜的问题。Write Skew Anomaly. 所以就MVCC到达不了serizable MVCC实现 MVCC time order 就靠原子操作CAS来check是否有人在写入&#xff0c;同时…

【Docker】通过dockerfile构建Nginx镜像部署多Web应用

【Docker】Docker安装 docker打包镜像Dockerfile构建镜像编写Dockerfile脚本构建镜像前的准备执行Dockerfile脚本 构建镜像镜像导入配置nginx.conf文件Docker操作查询index.html的路径修改web1下ProjectConfig-72e0c4f7dd.json配置文件修改nginx配置文件nginx.confDockerfile构…

GIS空间数据格式简介

Gis数据存储零、前言一、基础概念二、矢量数据1、定义2、基础3、WBT/WKB4、坐标系5、Geometry6、要素 / 要素集7、存储格式8、图层三、栅格数据1、定义2、基础3、存储格式零、前言 1、首先该篇文档主要是针对刚入坑的朋友&#xff0c;如果你对gis的存储结构谙熟于心&#xff0…

【python】计算机视觉~舌象图片中舌体倾斜判别(四)

返回至系列文章导航博客 1 简介 在智能舌诊时&#xff0c;需要判断舌头的胖瘦&#xff0c;这需要舌头在图片中处于近似垂直的位置才方便判断&#xff0c;不能过于倾斜。那么如何让计算机智能地知道舌体是否倾斜呢&#xff1f;这是这篇文章讨论的重点&#xff01; 首先也是最重…

一种轻量的“虚拟机”——Windows 沙盒模式

Windows 沙盒模式Windows沙盒的好处操作步骤Windows沙盒的好处 相比虚拟机和第三方的沙盒软件&#xff0c;Windows Sandbox启用后仅占用100MB硬盘空间&#xff0c;还能与物理机安全地共享部分内存空间。简单来说就是易用、免费、不卡机&#xff01; 由于要保证沙盒内的数据不…

表面弛豫、重构以及覆盖效应

目录 1表面弛豫 2表面能的计算 3对称和非对称板块模型 4 表面重构 5表面上的吸附质 6表面覆盖效应 1表面弛豫 在上述例子中,为了建立五层原子的板块模型,将原子放置在了板块模型中。原子的位置是理想的,是 材料中的体相原子位置。在体相的 金属中,任何两个相邻原子的间…

burpsuite 插件编写基础

文章目录一、什么是扩展 / 插件&#xff1f;二、burp 的扩展三、开发步骤一、什么是扩展 / 插件&#xff1f; 关于这个话题&#xff0c;知乎有一个回答题不错&#xff0c;主要也是引用了wikipedia 插件/扩展&#xff0c;是向现有的计算机程序添加特定功能的软件组件。 主程序…

3.2.2队列的顺序存储实现

队列是一种操作受限的顺序表&#xff08;只能在队头删除&#xff0c;在队尾插入&#xff09;。 所以依旧使用静态数组的形式去存储队列。 &#xff08;1&#xff09;创建&#xff08;初始化&#xff09; 现定于&#xff08;顺序队列&#xff09;的结构体 初始化队列时&#x…

CentOS7---Nginx安装并配置虚拟主机

1、源码安装nginx&#xff0c;并提供服务脚本 源码包的获取&#xff1a;官网下载 实验环境&#xff1a;和企业环境类似&#xff0c;关闭防火墙&#xff0c;禁用selinux&#xff0c;使用静态IP地址 安装步骤&#xff1a; 步骤一&#xff1a;安装Nginx所需的pcre库 [rootnode01 ~…

openvpn (用户名密码模式)

目录 一、介绍 1、定义 2、原理 3、加密和身份验证 二、在centos 7.5上搭建openvpn 1、安装openvpn 和easy-rsa&#xff08;该包用来制作ca证书&#xff09; 2、配置/etc/openvpn/ 目录 3、创建服务端证书及key 4、创建客户端证书 5、把服务器端必要文件放到etc/openvpn/ 目录下…