首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据仓库专题(11)-可以作为维度使用事实

KDT#13 可以作为维度使用事实 事实从粒度角度分为三种,分别是交易粒度事实、周期快照事实和累计快照事实。 交易粒度事实能提供某个确切时刻描述信息。...这是一个典型记录度量事实都是文本型描述信息事实。这样事实和维度之间区别并不明显。 这个事实中有三个是关联到普通维度外键,分别是变更日期、代理和交易类型。...帐户号(NK)是帐户自然键,是帐户唯一标识。帐户号(SK)是帐户代理键,也是这个事实主键,它标识了这个事实每一次变化。...我们可以将该事实帐户号代理键做TYPE 2型缓慢变化处理,并将它关联到其他事实作为外键。...) 对后一个事实进行分析,其中一条记录可以准确对应到前一张事实中相应时点帐号信息上,即我们可以得到每一次交易时点时帐户对应客户信息。

94120

详解flink中Look up使用

背景 LookupableTableSource 实例讲解 源码解析 JdbcTableSource JdbcLookupFunction 背景 在流式计算中,是一个很常见概念,一般用于sqljoin...价格等等其他信息,这种问题我们可以在进行流处理时候通过查询方式对数据进行数据补全。...一般存储在外部存储中,比如mysql、hbase、redis等等,今天我们以mysql为例,讲讲flink中使用。...lookupOptions是一些有关参数,主要是缓存大小、超时时间等。 lookupKeys也就是要去关联查询字段。...默认情况下是不开启缓存,每来一个查询,都会给发送一个请求去查询,如果数据量比较大的话,势必会给存储系统造成一定压力,所以flink提供了一个LRU缓存,查询时候,先查询缓存,缓存没有再去查询外部系统

5.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

《深入浅出SQL》问答录

第三范式(3NF) 符合2NF 没有传递函数依赖性 ---- 我为什么需要交叉联接? A:知道交叉联接存在,有助于我们找出修正联接正确方式。...还有,交叉联接有时可用于RDBMS软件及其配置运行速度。运行交叉联接所需时间可以轻易检测与比较出速度慢查询。 内联接交叉联接有什么区别吗? A:交叉联接属于内联接一种。...联接 交叉联接(笛卡尔积) 假设你有一个存储男孩姓名以及一个记录男孩们都有哪些玩具,现在我们要试着找出每个男孩拥有的玩具。 ?...内联接 INNER JOIN利用条件判断中比较运算符结合两张记录。只有联接记录符合记录条件时才会返回列。...据说使用子查询能解决事情,用联接也可以?是这样吗? A:不然呢? ---- 左外联接 LEFT OUTER JOIN 会匹配左每一行及右符合条件行。

2.9K50

深入理解SQL四种连接-左外连接、右外连接、内连接、全连接

转载自 http://www.jb51.net/article/39432.htm 1、内联接(典型联接运算,使用像 =  或 之类比较运算符)。包括相等联接和自然联接。     ...内联接使用比较运算符根据每个共有的列值匹配两个行。例如,检索 students和courses中学生标识号相同所有行。    2、外联接。...3、交叉联接    交叉联接返回左所有行,左每一行与右所有行组合。交叉联接也称作笛卡尔积。    ...FROM 子句中或视图可通过内联接或完整外部联接按任意顺序指定;但是,用左或右向外联接指定或视图时,或视图顺序很重要。有关使用左或右向外联接排列表更多信息,请参见使用联接。     ...右外连接还返回右中不符合连接条件单符合查询条件数据行。 全外连接还返回左中不符合连接条件单符合查询条件数据行,并且还返回右中不符合连接条件单符合查询条件数据行。

5.6K10

《深入浅出SQL》问答录(七)

还有,交叉联接有时可用于RDBMS软件及其配置运行速度。运行交叉联接所需时间可以轻易检测与比较出速度慢查询。 ---- Q:内联接交叉联接有什么区别吗?...A:交叉联接属于内联接一种。内联接就是通过查询中条件移除了某些结果交叉联接。 ---- Q:可以联接多于两张吗? A:可以,后续章节再说,有点饿了。...创建别名真的很简单,在查询软件中首次使用原始列名地方后接一个AS并设定要采用别名,告诉软件现在开始要以另一个名称引用my_contacsprofession列,这样可以让查询更容易被我们理解。...联接 交叉联接(笛卡尔积) 假设你有一个存储男孩姓名以及一个记录男孩们都有哪些玩具,现在我们要试着找出每个男孩拥有的玩具。...内联接 INNER JOIN利用条件判断中比较运算符结合两张记录。只有联接记录符合记录条件时才会返回列。

80520

【22】进大厂必须掌握面试题-30个Informatica面试

通常,事实相比包含更多行,因为事实包含所有主键采取自己措施。 雪花模式 ? 在雪花中,事实包围,也被规范化以形成层次结构。...因此,在此示例中,诸如位置,项目之类被进一步规范化为形成层次结构较小事实星座 ? 实际上星座中,有许多事实共享相同。...在事实中,我们需要维护两个引用这些维度键。取而代之是创建一个包含性别和婚姻状况所有组合垃圾维度(交叉联接性别和婚姻状况并创建一个垃圾)。现在,我们只能在事实中维护一个键。...退化: 退化是从事实派生,没有自己。 例如:事实交易代码。 角色扮演维度: 在同一数据库中经常用于多个目的维度称为角色扮演维度。...24.什么是事实?解释各种事实。 星型模式中集中表称为事实事实通常包含两种类型列。包含度量列称为事实和列,它们是外键。事实主键通常是由外键组成组合键。

6.5K40

Apache-Flink深度解析-JOIN 算子

段子+干货二码.png 什么是JOIN 在《Apache Flink 漫谈系列 - SQL概览》中我对JOIN算子有过简单介绍,这里我们以具体实例方式让大家对JOIN算子加深印象。...CROSS JOIN 交叉连接会对两个进行笛卡尔积,也就是LEFT每一行和RIGHT所有行进行联接,因此生成结果行数是两个行数乘积,如student和courseCROSS JOIN...交叉联接一般会消耗较大资源,也被很多用户质疑交叉联接存在意义?(任何时候我们都有质疑权利,同时也建议我们养成自己质疑自己“质疑”习惯,就像小时候不理解父母“废话”一样)。...我们以开篇示例说明交叉联接巧妙之一,开篇中我们查询需求是:在学生(学号,姓名,性别),课程(课程号,课程名,学分)和成绩(学号,课程号,分数)中查询所有学生姓名,课程名和考试分数。...交叉联接可以帮助我们: 第一步 student和course 进行交叉联接: mysql> SELECT     ->   stu.no, c.no, stu.name, c.name

5.4K31

SQL JOIN

Join是关系型数据库系统重要操作之一,SQL Server中包含常用Join:内联接、外联接交叉联接等,Join用于根据两个或者多个列之间关系,从这些中查询数据。 ?...2、怎么使用JOIN?  新建两张作为例子,如下 ? ?...运行结果是得到两个之间交集。用右边图可以看出,Inner join符合交换律:“A inner join B”,“B inner join A”一样。...从运行结果一眼就可以看出来,该联接产生B完全集,而A中匹配则有值,没有匹配则以null值取代。  ...由运行结果可知:交叉联接运行结果就是咱们在数据库系统原理中学笛卡尔积(Cartesian Product),产生一个6*6=36行记录结果集。

75610

leetcode 新题型----SQL,shell,system design

1、内联接(典型联接运算,使用像 = 或 之类比较运算符)。包括相等联接和自然联接。 内联接使用比较运算符根据每个共有的列值匹配两个行。 2、外联接。...如果左某行在右中没有匹配行,则在相关联结果集行中右所有选择列表列均为空值。 2)RIGHT JOIN 或 RIGHT OUTER JOIN 右向外联接是左向外联接反向联接。...3、交叉联接 交叉联接返回左所有行,左每一行与右所有行组合。交叉联接也称作笛卡尔积。...FROM 子句中或视图可通过内联接或完整外部联接按任意顺序指定;但是,用左或右向外联接指定或视图时,或视图顺序很重要。有关使用左或右向外联接排列表更多信息,请参见使用联接。 ?...(完全) 概念:没有用where子句交叉连接将产生连接所涉及笛卡尔积第一个行数乘以第二个行数等于笛卡尔积和结果集大小 交叉连接: Cross join(不带条件where,如果带返回或显示是匹配行数

1.2K40

T-SQL基础(二)之关联查询

SQL中使用CROSS JOIN语句进行交叉联接查询,在逻辑处理上,交叉联接是最为简单联接类型,它只获取笛卡尔乘积。...内联接逻辑处理分为两步: 生成笛卡尔乘积 根据谓词ON对笛卡尔乘积进行筛选 与交叉联接一样,内联接有两种写法: USE WJChi; -- 使用JOIN,推荐使用这种方式 SELECT *...FROM dbo.UAddress JOIN dbo.UserInfo ON UserInfo.UAddressId = UAddress.Id; -- 不使用JOIN,与交叉联接类似,但比交叉联接多了...换句话说,外联接中ON子句作用是进行之间关联,如果外联接需要对结果集做进一步筛选的话不能使用ON...AND...语句,而要使用WHERE条件。...自联接 同一张多个实例之间相互联接,称为自联接。所有基本联接类型(内联接、外联接交叉联接)支持。

2.2K10

T-SQL基础(二)之关联查询

交叉联接 SQL中使用CROSS JOIN语句进行交叉联接查询,在逻辑处理上,交叉联接是最为简单联接类型,它只获取笛卡尔乘积。...内联接逻辑处理分为两步: 生成笛卡尔乘积 根据谓词ON对笛卡尔乘积进行筛选 与交叉联接一样,内联接有两种写法: USE WJChi; -- 使用JOIN,推荐使用这种方式 SELECT * FROM...dbo.UAddress JOIN dbo.UserInfo ON UserInfo.UAddressId = UAddress.Id; -- 不使用JOIN,与交叉联接类似,但比交叉联接多了WHERE...换句话说,外联接中ON子句作用是进行之间关联,如果外联接需要对结果集做进一步筛选的话不能使用ON...AND...语句,而要使用WHERE条件。...复合联接 复合联接是指谓词涉及中多个字段联接,即,关联条件使用ON...AND...形式。 自联接 同一张多个实例之间相互联接,称为自联接

2K40

Apache-Flink深度解析-JOIN 算子

- 交叉连接,计算笛卡儿积; INNER JOIN - 内连接,返回满足条件记录; OUTER JOIN LEFT - 返回左所有行,右不存在补NULL; RIGHT - 返回右所有行,左边不存在补...CROSS JOIN 交叉连接会对两个进行笛卡尔积,也就是LEFT每一行和RIGHT所有行进行联接,因此生成结果行数是两个行数乘积,如student和courseCROSS JOIN...交叉联接一般会消耗较大资源,也被很多用户质疑交叉联接存在意义?(任何时候我们都有质疑权利,同时也建议我们养成自己质疑自己“质疑”习惯,就像小时候不理解父母“废话”一样)。...我们以开篇示例说明交叉联接巧妙之一,开篇中我们查询需求是:在学生(学号,姓名,性别),课程(课程号,课程名,学分)和成绩(学号,课程号,分数)中查询所有学生姓名,课程名和考试分数。...交叉联接可以帮助我们: 第一步 student和course 进行交叉联接: mysql> SELECT -> stu.no, c.no, stu.name, c.name

1.7K30

mysql left join、right join、inner join用法分析

四种联接 left join(左联接) 返回包括左所有记录和右中联结字段相等记录 right join(右联接) 返回包括右所有记录和左中联结字段相等记录 inner join...(等值联接) 只返回两个中联结字段相等行 cross join(交叉联接) 得到结果是两个乘积,即笛卡尔积 创建 CREATE TABLE `product` (`id` int...) cross join:交叉联接,得到结果是两个乘积,即笛卡尔积。...如果 B 中没有任何一行数据匹配 ON 条件,将会额外生成一行所有列为 NULL 数据,在匹配阶段 WHERE 子句条件都不会被使用。仅在匹配阶段完成以后,WHERE 子句条件才会被使用。...A Left join B On a.id=b.idAnd b.id=2;从B中检索符合所有数据行,如果没有匹配全部为null A Left join B On a.id=b.idWhere

3K70

Mysql 多表联合查询效率分析及优化

,返回连接符合连接条件和查询条件数据行。...MySQL中外连接,分为左外连接和右连接,即除了返回符合连接条件结果之外,还要返回左(左连接)或者右(右连接)中不符合连接条件结果,相对应使用NULL对应。...LEFT [OUTER] JOIN: 除了返回符合连接条件结果之外,还需要显示左中不符合连接条件数据列,相对应使用NULL对应 SELECT column_name FROM table1 LEFT...RIGHT [OUTER] JOIN: RIGHT与LEFT JOIN相似不同仅仅是除了显示符合连接条件结果之外,还需要显示右中不符合连接条件数据列,相应使用NULL对应 SELECT column_name...RIGHT JOIN执行类似LEFT JOIN,只是角色反过来。 联接优化器计算联接顺序。

2.5K30

【T-SQL基础】02.联接查询

一、交叉联接 1.什么是交叉联接 (1)对输入两个进行操作,把它们联接起来,生成二者笛卡儿积。 (2)将一个输入每行与另一个所有行进行匹配。...使用ANSI SQL-92语法,需要在参与联接两个之间使用“Cross JOIN”关键字 (2)ANSI SQL-89语法 在FROM名之间加个逗号 SELECT A.a,C.c FROM A,...3.自交叉联接 对同一个进行联接,就是自联接交叉联接、内联接、外联接都支持自联接。...对于交叉联接来说,也是推荐使用ANSI SQL-92语法。...原因有两点:   a.保持一致,统一使用ANSI SQL-92语法   b.如果开发人员本来是想用ANSI SQL-89语法来写一个内联接查询,却又忘了写WHERE字句中联接条件,则这段SQL联接类型和交叉联接是一样

2.9K90

SQLServer中交叉联接用法介绍

今天给大家介绍SQLServer中交叉联接用法,希望对大家能有所帮助! 1、交叉联接(cross join)概念 交叉联接联接查询第一个阶段,它对两个数据进行笛卡尔积。...即第一张数据每一行与第二张所有行进行联接,生成结果集大小等于T1*T2。 select * from t1 cross join t2 2、交叉联接语法格式 ?...t2 where t1.col1=t2.col2;--等价于内部联接 select * from t1 inner join t2 on t1.col1=t2.col2 3、交叉查询使用场景 3.1...针对一些情况可以采用交叉联接方式替代子查询,通过减少子查询造成多次扫描,从而可以提高优化查询性能。...4、总结 交叉联接虽然支持使用WHERE子句筛选行,由于笛卡儿积占用资源可能会很多,如果不是真正需要笛卡儿积情况下,则应当避免地使用CROSS JOIN。

56020

数据仓库架构

星型模型 当所有都直接连接到事实上时,整个图解就像星星一样,故将该模型称为星型模型。...可根据业务情况进行新增或者修改(只要维度单一值已经存在事实中)。 雪花模型 当有一个或多个没有直接连接到事实上,而是通过其他连接到事实上时,其图解就像多个雪花连接在一起,故称雪花模型。...比较 星型模型因为数据冗余所以很多统计查询不需要做外部连接,因此一般情况下效率比雪花型模型要高。 雪花型模型由于去除了冗余,有些统计就需要通过联接才能产生,所以效率不一定有星型模型高。...需要查询多个数据集市中事实时,一般通过交叉探查(drill across)来实现。为了能在多个数据集市间进行交叉探查,一致性事实主要需要保证两点。...这样,一致性维度将多个数据集市结合在一起,一致性事实保证不同数据集市间事实数据可以交叉探查,一个分布式数据仓库就建成了。

1.9K20

那些年我们写过T-SQL(上篇)

, 一定要实际查看执行计划,一起以事实说话。...其中JOIN操作符对两个输入进行操作,类型包括交叉联接、内部联接和外部联接,它们之间差别在于其逻辑查询处理阶段,这是本节最需要理解概念,是真正理解联接操作基础,通过一个表格来做一个初步了解(...交叉联接:只包含笛卡尔乘积阶段,比如一张A有m行,B有n行,其结果集有m*n行记录。该类型使用场景非常少,但其中有2个场景还是需要知道。...在逻辑处理第二阶段,也就是筛选阶段,将筛选出符合ON谓词行,称之为内部行(由内部联接返回)。...第一个是在一个查询中同时包含内联接和外联接情况,由于运算符处理是有逻辑顺序(其他为同时操作,之前有介绍),因而不同联接顺序可能造成不同结果集,比如在使用LEFT JOIN之后使用INNER

3.1K100

SQL几种连接:内连接、左联接、右连接、全连接、交叉连接

1.3.自然连接:在连接条件中使用等于(=)运算符比较被连接列列值,但它使用选择列表指出查询结果集合中所包括列,并删除连接重复列。...2.外连接 2.1.左联接:是以左为基准,将a.stuid = b.stuid数据进行连接,然后将左没有的对应项显示,右列为NULL select * from book as a left...select * from book as a right join stu as b on a.sutid = b.stuid 2.3.全连接:完整外部联接返回左和右所有行。...select * from book as a full outer join stu as b on a.sutid = b.stuid 3.交叉连接 交叉连接:交叉联接返回左所有行,左每一行与右所有行组合...交叉联接也称作笛卡尔积。

3.2K40

必知必会——关于SQL中NOT IN优化

复杂性源于以下事实:NULL可以理解为“未指定,可能是任何东西”,因此SQL观点是,它无法知道NULL是否等于一个值或“东西”。...我们有一间不带暖气房子A,另一间使用房子B: ?...因为WHERE消除了条件不为TRUE行,所以消除了房屋A。从SQL角度来看,上面两个SELECT结果是正确。现在轮到您决定它们是否符合期望。 如果符合预期,那么一切都很好。...现在,这是重写查询,它们正确地使用了反联接,因此可以从我们新基于哈希联接算法中受益(在版本8.0.18中引入了内联接,并在8.0.20中扩展为半联接,反联接和外部联接): ?...得出结论是:当使用NOT IN时,如果无法避免使用NULL,请确认NULL行为,如果不符合预期,请考虑“不正确或不存在”替代方案。 感谢您使用MySQL!

4.4K40
领券