搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
2023面试高手
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
混合A*算法
2
unable to access xxxx: Failed to connect to xxxx_unable to access failed to connect to
3
16.系统高可用说明_系统可用性指标
4
Java多线程 - Java创建线程的4种方式_java 创建线程
5
UniApp面试题_uniapp开发面试题
6
(2024,KAN,MLP,可训练激活函数,样条函数,分层函数)Kolmogorov–Arnold 网络_ka定理
7
航空电子网络(ARINC429总线)
8
【渝粤教育】电大中专品牌管理与推广 (2)作业 题库
9
【YOLOv8改进[CONV]】2024的DynamicConv助力YOLOv8目标检测效果 + 含全部代码和详细修改方式 + 手撕结构图
10
CPU速度的计算方法和单位_cpu处理速度
当前位置:
article
> 正文
(50)Kylin Cube 构建优化_cube排除构建csdn
作者:2023面试高手 | 2024-06-10 07:01:24
赞
踩
cube排除构建csdn
.1
使用衍生维度(
derived dimension
)
衍生维度用于在有效维度内将维度表上的非主键维度排除掉,并使用维度表的主键(其
实是事实表上相应的外键)来替代它们。
Kylin
会在底层记录维度表主键与维度表其他维度
之间的映射关系,以便在查询时能够动态地将维度表的主键“翻译”成这些非主键维度,并
进行实时聚合。
虽然衍生维度具有非常大的吸引力,但这也并不是说所有维度表上的维度都得变成衍生
维度,如果从维度表主键到某个维度表维度所需要的聚合工作量非常大,则不建议使用衍生
维度。
2
使用聚合组(
Aggregation group
)
聚合组(
Aggregation Group
)是一种强大的
剪枝工具
。聚合组假设一个
Cube
的所有维
度均可以根据业务需求划分成若干组(当然也可以是一个组),由于同一个组内的维度更可
能同时被同一个查询用到,因此会表现出更加紧密的内在关联。每个分组的维度集合均是
Cube
所有维度的一个子集,不同的分组各自拥有一套维度集合,它们可能与其他分组有相
同的维度,也可能没有相同的维度。每个分组各自独立地根据自身的规则贡献出一批需要被
物化的
Cuboid
,所有分组贡献的
Cuboid
的并集就成为了当前
Cube
中所有需要物化的
Cuboid
的集合。不同的分组有可能会贡献出相同的
Cuboid
,构建引擎会察觉到这点,并且保证每一
个
Cuboid
无论在多少个分组中出现,它都只会被物化一次。
对于每个分组内部的维度,用户可以使用如下三种可选的方式定义,它们之间的关系,
具体如下。
1
)强制维度(
Mandatory
)
,如果一个维度被定义为强制维度,那么这个分组产生的所
有
Cuboid
中每一个
Cuboid
都会包含该维度。每个分组中都可以有
0
个、
1
个或多个强制维
度。如果根据这个分组的业务逻辑,则相关的查询一定会在过滤条件或分组条件中,因此可
以在该分组中把该维度设置为强制维度。
2
)层级维度(
Hierarchy
)
,每个层级包含两个或更多个维度。假设一个层级中包含
D1
,
D2…Dn
这
n
个维度,那么在该分组产生的任何
Cuboid
中,
这
n
个维度只会以(),(
D1
),
(
D1
,
D2
)
…
(
D1
,
D2…Dn
)这
n+1
种形式中的一种出现。每个分组中可以有
0
个、
1
个
或多个层级,不同的层级之间不应当有共享的维度。如果根据这个分组的业务逻辑,则多个
维度直接存在层级关系,因此可以在该分组中把这些维度设置为层级维度。
3
)联合维度(
Joint
)
,每个联合中包含两个或更多个维度,如果某些列形成一个联合,
那么在该分组产生的任何
Cuboid
中,这些联合维度要么一起出现,要么都不出现。每个分
组中可以有
0
个或多个联合,但是不同的联合之间不应当有共享的维度(否则它们可以合并
成一个联合)。如果根据这个分组的业务逻辑,多个维度在查询中总是同时出现,则可以在该分组中把这些维度设置为联合维度。
这些操作可以在
Cube Designer
的
Advanced Setting
中的
Aggregation Groups
区域完成,
如下图所示。
聚合组的设计非常灵活,甚至可以用来描述一些极端的设计。假设我们的业务需求非常
单一,只需要某些特定的
Cuboid
,那么可以创建多个聚合组,每个聚合组代表一个
Cuboid
。
具体的方法是在聚合组中先包含某个
Cuboid
所需的所有维度,然后把这些维度都设置为强
制维度。这样当前的聚合组就只能产生我们想要的那一个
Cuboid
了。
再比如,有的时候我们的
Cube
中有一些
基数非常大的维度
,如果不做特殊处理,它就
会和其他的维度进行各种组合,从而产生一大堆包含它的
Cuboid
。包含高基数维度的
Cuboid
在行数和体积上往往非常庞大,这会导致整个
Cube
的膨胀率变大。如果根据业务需求知道
这个高基数的维度只会与若干个维度(而不是所有维度)同时被查询到,那么就可以通过聚
合组对这个高基数维度做一定的
“
隔离
”
。我们把这个高基数的维度放入一个单独的聚合组,
再把所有可能会与这个高基数维度一起被查询到的其他维度也放进来。这样,这个高基数的
维度就被
“
隔离
”
在一个聚合组中了,所有不会与它一起被查询到的维度都没有和它一起出现
在任何一个分组中,因此也就不会有多余的
Cuboid
产生。这点也大大减少了包含该高基数
维度的
Cuboid
的数量,可以有效地控制
Cube
的膨胀率。
(注:作用是用来,进行分层,防止维度表,无线扩增,通俗讲就是,买了很多的书,用书架进行一个规整,更加有层次,方便查询,去除冗余)
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/2023面试高手/article/detail/697651
推荐阅读
article
mysql
数据库
基本操作_
数据库
csdn
...
timestamp是以时间戳的方式来计算时间的,所谓时间戳就是从1970年1月1日起到现在经过了多少秒,计算机中存储的就...
赞
踩
article
CSDN--
十年
_
csdn
十年
...
从开始在CSDN写博客,到现在获得CSDN的博客专家,
十年
了。从20岁到30岁的
十年
。_
csdn
十年
csdn
十年
...
赞
踩
article
please
_
please
csdn
...
1.请坐
please
sit down! 粗鲁,听起来像命令,一般是让小狗坐下; 正确表达take a sea...
赞
踩
article
「
CSDN
2022
和
2023
」
年度
征文
获奖
名单已公布...
看看你上榜没~「
CSDN
2022
和
2023
」
年度
征文
获奖
名单已公布 官网活动页:https...
赞
踩
article
基于
Hough
变换
的
轨道
区域
检测
及动态目标
预警
_
轨道
线
检测
csdn
...
绪论随着
轨道
交通的快速发展,
轨道
交通所配套的安全
预警
系统也需要很大的提升。
轨道
交通密度的增大势必也会带来更多安全问题,例...
赞
踩
article
Web
自动化
-
Selenium
_
selenium
web
自动化
csdn
...
Selenium
是一套 Web网站 的程序
自动化
操作 解决方案。通过它,我们可以写出
自动化
程序,像人一样在浏览器里操作...
赞
踩
article
红黑树
(Red
Black
Tree
)_
红黑树
csdn
...
红黑树
是一种平衡二叉查找树的变体,它的左右子树高差有可能大于 1,所以
红黑树
不是严格意义上的平衡二叉树(AVL),在进行...
赞
踩
article
强化
学习
——
学习
笔记_
强化
学习
csdn
...
强化
学习
问题通常可以建模为一个马尔可夫决策过程,包括以下几个要素:1、状态集合 (State Set):S;2、动作集合...
赞
踩
article
黑马
---
Redis
入门到
实战
【
实战
篇】_
redis
开发
与
实战
csdn
...
黑马程序员
Redis
项目
实战
---
实战
篇,体验真实场景应用
Redis
~_
redis
开发
与
实战
csdn
redis
开发
与
实...
赞
踩
article
Android
身份证
扫描_
android
拍
身份证
csdn
...
1.第一步我们先接入华为的仓库maven {url 'http://developer.huawei.com/repo/...
赞
踩
article
AI
嵌入式
2——
SIPEED
MaixCube
(Kendryte
K210
)之基础使用篇_
maix
-...
MaixCube
嵌入式
集成了摄像头、TF卡槽、用户按键、TFT显示屏、锂电池、扬声器麦克、扩展接口等, 用户可使用 Ma...
赞
踩
article
数据库
连接
的方式_
数据库
连接
方式
csdn
...
数据库
连接
的几种方法:jdbc.properties:user=rootpassword=088741url=jdbc:...
赞
踩
article
python
实现
人
脸
识别
(
face
_
recognition
)_基于特征
脸
的
人
脸
识别
python
c...
本项目是世界上最强大、简洁的
人
脸
识别
库,你可以使用Python和命令行工具提取、识别、操作人
脸
。本项目的
人
脸
识别
是基于业...
赞
踩
article
【大数据】
HDFS
、
HBase
操作教程(含指令和
JAVA
API
)_
hbase
java
csdn
...
详解
HDFS
和HBASE的指令操作以及
JAVA
API
。_
hbase
java
csdn
hbase
java
csdn
...
赞
踩
article
奖励
CSDN
社区
的
领军人物
_
csdn
的领导力...
设计动机:
CSDN
是中国 IT 人士学习、成长、成功的平台, 这个平台有很多博主, 博主写的很多优秀文章获得了粉丝。 ...
赞
踩
article
CSDN
,不错
的
IT
社区
_
csdn
社区
...
最近在
csdn
社区
上学习,认识几个朋友,也拜了几个老师,相对应我自己来说,我觉得
csdn
给我
的
启发还是很大
的
,我觉得在这...
赞
踩
article
计算机
视觉
入门教程_
计算机
视觉
入门
csdn
...
计算机
视觉
是一个充满挑战和机遇的领域。对于初学者来说,重要的是建立扎实的理论基础,并通过实践不断提升自己的技能。同时,积...
赞
踩
article
Python
编程 —— 实现
滚动
字幕_
python
字符串
切片
滚动
字幕
csdn
...
用
python
实现
滚动
的方法有很多这里用
切片
组合来输出结果代码如下:import timea=f"{'西安欢迎你!':<...
赞
踩
article
Windows
+
VScode
配置与使用
git
,超详细教程,赶紧收藏吧_
vscode
安装
git
csd...
我可以将最近整理的前端面试题分享出来,其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器、数据...
赞
踩
article
Android
电量
采集
机制及第二代
Battery
Historian
分析
工具_手机
电量
的
采集
...
0x00 这是啥?这是一篇讲述应用耗电的文章,围绕
Android
电量
采集
机制及第二代
Battery
Histori...
赞
踩
相关标签
数据库
mysql
oracle
csdn
博客
博客专家
十年
博文
opencv
人工智能
selenium
测试工具
红黑树
Red Black Tree
学习
笔记
java
mybatis
android
gradle
android studio
边缘计算
深度学习
计算机视觉