Doris

news2024/10/6 4:09:29

Aggregate 模型

相同key的数据进行自动聚合的表模型。表中的列按照是否设置了 AggregationType,分为 Key(维度列)和 Value(指标列),没有设置 AggregationType 的称为 Key,设置了 AggregationType 的称为 Value。当我们导入数据时,对于 Key 列相同的行会聚合成一行,而 Value 列会按照设置的AggregationType 进行聚合。AggregationType 目前有以下四种聚合方式:

SUM:求和,多行的 Value 进行累加。

REPLACE:替代,下一批数据中的 Value 会替换之前导入过的行中的 Value。

REPLACE_IF_NOT_NULL :当遇到 null 值则不更新。

MAX:保留最大值。

MIN:保留最小值。

有如下场景:需要创建一个表,来记录公司每个用户的每一次消费行为信息,有如下字段

 

而且,公司对这份数据,特别关心一个报表 

每一个用户最后一次访问我们页面的时间,用户消费的总金额,用户停留在我们页面上的最大最小时长

 

SQL
Select
    user_id,data,city,age,gender,
    max(visit_data) as last_visit_data,
    sum(cost) as cost,
    max(dwell_time) as max_dwell_time,
    min(dwell_time) as min_dwell_time
From  t
Group by  user_id,data,city,age,gender  --
对应的是聚合模型型key

聚合模型

SQL
-- 这是一个用户消费和行为记录的数据表
CREATE TABLE IF NOT EXISTS test.ex_user
(
 `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 "
用户最小停留时间"
 )
ENGINE=olap
AGGREGATE KEY(`user_id`, `date`, `city`, `age`, `sex`)
--
分区
-- 分桶
DISTRIBUTED BY HASH(`user_id`) BUCKETS 1;

向表中插入部分数据

SQL
insert into test.ex_user values\
(10000,'2017-10-01','
北京',20,0,'2017-10-01 06:00:00',20,10,10),\
(10000,'2017-10-01','
北京',20,0,'2017-10-01 07:00:00',15,2,2),\
(10001,'2017-10-01','
北京',30,1,'2017-10-01 17:05:45',2,22,22),\
(10002,'2017-10-02','
上海',20,1,'2017-10-02 12:59:12',200,5,5),\
(10003,'2017-10-02','
广州',32,0,'2017-10-02 11:20:00',30,11,11),\
(10004,'2017-10-01','
深圳',35,0,'2017-10-01 10:00:15',100,3,3),\
(10004,'2017-10-03','
深圳',35,0,'2017-10-03 10:20:22',11,6,6);

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

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

相关文章

散列表(哈希表)

目录 散列表 散列函数 散列表常用函数 1. 直接定址法 2. 除留余数法 2.1. exmple 3. 数字分析法 4. 平方取中法 5. 折叠法 处理冲突的方法 1. 开放定址法---线性探测 2. 二次探测法 3. 再Hash法 4. 拉链法(链地址法) 散列表(Hash table,也…

Redis缓存击穿及解决问题

缓存击穿的意思是对于设置了过期时间的key,缓存在某个时间点过期的时候,恰好这时间点对这个 Key有大量的并发请求过来,这些请求发现缓存过期- -般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把DB压垮。 解决方案有两种…

第五十四天学习记录:C语言进阶:动态内存管理Ⅱ

常见的动态内存错误 1、对NULL指针的解引用操作 int* p(int*)malloc(4); //p进行相关的判断 *p10;//malloc开辟空间失败,有可能对NULL指针解引用 free(p); pNULL;2、对动态开辟的内存的越界访问 int* p(int*)malloc(40);//10个int if(p!NULL) {int i0;//越界for(…

微服务项目租房网

文章目录 一、租房网项目的介绍1、使用的技术介绍2、使用的组件和开发工具的版本以及作用3、项目模块结构4、项目总体架构 二、环境搭建1、启动前端服务2、CentOS7各个组件的安装2.1 安装Docker2.2 安装JDK2.3 安装Redis(6390)2.4 安装FastDFS(8888)2.5 安装MongoDB(27017)2.6 …

Niagara—— 概述

目录 一,核心组件 Systems Emitters Modules Parameters 二,创建系统或发射器向导 System向导 Emetter向导 三,Niagara VFX工作流程 创建系统 创建或添加发射器 创建或添加模块 Niagara是最新一代VFX系统,无需程序员…

Junit测试框架详解

目录 Junit框架 导入Junit到项目 Junit注解 Test Disabled BeforeAll / AfterAll BeforeEach / AfterEach 参数化 单参数 多参数 CSV获取参数 方法获取参数 断言 assertEquals / assertNotEquals assertNull / assertNotNull 用例执行顺序 测试套件Suite 指定…

使用IIS创建WEB服务

文章目录 前言一、Web服务是什么?1.Web服务概述2.如何获取网页资源3.常见Web服务端软件4.什么是IIS 二、安装IIS1.安装Web服务器角色2.准备网页文件3.配置Web站点4.客户端浏览例:配置IIS站点 三、虚拟主机概述1.虚拟Web主机2.虚拟主机的几种类型3.基于端…

软考信管高级——进度管理

进度管理内容 缩短活动工期方法 赶工,投入更多资源或增加工作时间,以缩短关键活动的工期快速跟进,并行施工,以缩短关键路径长度使用高素质的资源或经验更丰富的人员减小活动范围或降低活动要求改进方法或技术,以提高…

活动回顾|解锁 AIGC 密码,探寻企业发展新商机

5月24日,Google Cloud 与 Cloud Ace 联合主办的线下活动顺利落下帷幕。 本次活动,有近 40 位企业精英到场支持。三位 Google Cloud 演讲嘉宾就本次活动主题,为大家带来了比较深度的演讲内容,干货满满。 (*以下的嘉宾演…

期末复习总结【MySQL】聚合查询 + 多表联合查询(重点)

文章目录 前言一、聚合查询1, 聚合函数2, 聚合函数使用示例3, GROUP BY 子句4, HAVING 子句 二、联合查询(重点)1, 笛卡尔积2, 内连接2.1, 示例12.2, 示例22.3, 示例3 3, 外连接4, 自连接 总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: &#…

存量时代下,互联网玩家如何“自我造血”?

毫无疑问,互联网已经进入存量时代。 在过去高增长的增量时代,许多互联网企业追求规模效应,痴迷于“先规模后盈利”的打法,力图用规模构建护城河。然而,随着行业整体增长速度放缓,规模扩张变得更为艰难&…

面了个字节跳动拿 38K 出来的测试,让我见识到了跳槽的天花板

最近内卷严重,各种跳槽裁员,相信很多小伙伴也在准备金九银十的面试计划。 作为一个入职5年的老人家,目前工资比较乐观,但是我还是会选择跳槽,因为感觉在一个舒适圈待久了,人过得太过安逸,晋升涨…

【JavaSE】Java基础语法(十六):抽象类

文章目录 1. 抽象类的概述2. 抽象类的特点3. 抽象类的实用价值4. 抽象类的案例 1. 抽象类的概述 当我们在做子类共性功能抽取时,有些方法在父类中并没有具体的体现,这个时候就需要抽象类了! 在Java中,一个没有方法体的方法应该定义…

基于TCP、UDP网络编程

文章目录 网络协议分层套接字UDP和TCP差异UDP的APIDatagramSocketDatagramPacket 基于UDP Socket 实现一个回显程序TCP的APISocket的API基于TCP实现回显程序 网络协议分层 应用层: 应用程序拿到数据怎么用传输层: 负责关注传输过程中起点和终点网络层 &…

windows环境下nginx+ftp服务器搭建简易文件服务器

这里写目录标题 1,前言2,FTP服务器搭建3,nginx安装 1,前言 几种文件服务器的对比 1,直接使用ftp服务器,访问图片路径为 ftp://账户:密码192.168.0.106/31275-105.jpg不采用这种方式,不安全容易…

【高效科研工具(二):使用NewbingChat(方法+问题)| Newbing帮你阅读paper、解析paper】

高效科研工具(二):使用NewbingChat(方法问题)| Newbing帮你阅读paper、解析paper 目录 0、前言 1、NewbingChat 介绍 2、NewbingChat 注册方法 3、NewbingChat 遇到的问题 (🇺🇸位置切换问题、…

STM32H7B0VBT6使用Free RTOS配置SD卡+Fatfs文件管理系统

作者:Jack_G 时间:2023.05.26 版本:V1.0 上次修改时间: 环境: \quad \quad \quad \quad STM32Cube MX V6.8.1 \quad \quad \quad \quad STM32CubeH7 Firmware Package V1.11.0 / 04-Nov-2022 \quad \quad \quad \qu…

基于混合蛙跳的路径规划算法

路径规划算法:基于混合蛙跳优化的路径规划算法- 附代码 文章目录 路径规划算法:基于混合蛙跳优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…

改变开发的未来 | 探索无服务器与人工智能的协同效应

近年来,无服务器计算和人工智能深刻改变着应用程序的开发方式。 无服务器计算实现无需管理底层基础架构就能构建和运行应用程序,而人工智能则让应用程序依据数据和算例做出智能决策。借助云计算,开发者打开了一个应用程序开发、构建的全新世…

Linux网络编程——有限状态机

在逻辑单元内部的一种高效的编程方法:有限状态机。 有的应用层协议头部包含数据包类型字段,每种类型可以映射为逻辑单元的一种执行状态,服务器可以根据它来编写相应的处理逻辑,下面代码展示的是状态独立的有限状态机 STATE_MACH…