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

一篇文章搞懂数据仓库:数据仓库规范设计

例如:  dwd_xxx_xxx_da di :每日增量 da:每日全量 mi:每月增量 ma:每月全量 3.2 中间 中间一般出现在Job中,是Job中临时存储的中间数据的...规范:mid_table_name_[0~9|dim] table_name是我们任务中目标的名字,通常来说一个任务只有一个目标。...中间创建时,请加上 ,如果要保留历史的中间,可以加上日期或者时间戳 3.3 临时 临时临时测试的,是临时使用一次的,就是暂时保存下数据看看,后续一般不再使用的,是可以随时删除的。...维度可以自动从底层抽象出来,也可以手工来维护。 规范:dim_xxx 维度,统一以dim开头,后面加上,对指标的描述,可以自由发挥。...,例如在左连接的where语句存在右的过滤条件5关联小,是否使用/*+ map join * / hint6不允许引用别的计算任务临时7原则上不允许存在一个任务更新多个目标8是否存在笞、迪卡尔积

67420

用Obsidian打造自己的Workflow

创建日记模板,并在日历插件中配置模板路径 创建好模板后,以后的每一天你都只需要点击左侧工具栏中的日历图标就能够创建一份【今日笔记】,然后你就可以开始做今日的计划了并记录想法了 我现在每个工作日到公司的第一件事儿就是打开...,之所以有这个模块是为了时刻提醒自己最重要的任务,很多时候我们不能顺利的完成计划,不是因为自己懒惰,而仅仅是因为我们单纯的忘记了这个计划,所以,时刻提醒自己目标是什么是很重要的 每日任务模块下主要就是列出今日的...习惯养成模块则外联了一张(这张实际上就是通过块引入嵌入到每日笔记中的),这张每日计划的checklist,它主要是用来做长期习惯养成的,里面的事项都是一些需要每天或者周期性完成的事情。...我每个月都会创建这么一张,一年就是12张,而这12张都被我统一放在一个文件里,例如2021年的,我就存放在名为2021-todo-list文件里: 我只需要在daily notes的模板中引入对应月份的...同样的,我还是创建一个模板,模板存放在【文献笔记】文件下,内容如下: 我简单解释下这个模板 【创建日期】和【出处】使用了templater插件的语法,你可以把它们理解为两个变量,它们会根据上下文自动填充上对应的值

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

【干货】Oracel存储过程写报表实战

解决思路 首先根据客户要求的报表我们先创建一个临时的中间,用于处理横向数据问题。 根据客户输入的一个日期参数,我们计算出输入日期所对应的周的开始日期和结束日期。...计算中间中的数据,坪效,合计,租售比等。 输出显示游标。 代码实现 1.首先根据客户要求的报表我们先创建一个临时的中间,用于处理横向数据问题。...中间的用法可以看《Oracle的临时的使用》这一篇中有详细讲解。 ? ? 上面为临时创建,列都说的比较清楚了。...---- 然后开始写存储过程,我们的存储过程名定义为sRpt_shpWeekXsRent,其中输入参数只有一个日期,输出参数为游标 ?...---- 3.临时中第一行插入我们所要查询的日期,用于判识,因为报表的列不能动态修改日期,我们只能用周一周二等方式显示,所以这样就不容易判断出报表查询的对应日期。 ?

1.4K41

8种ETL算法归纳总结,看完这些你就全明白了

全删全插模型 即Delete/Insert实现逻辑; > 应用场景 主要应用在维、参数表、主档加载上,即适合源是全量数据数据业务逻辑只需保存当前最新全量数据,不需跟踪过往历史信息。...流水表、快照表、统计分析等均是通过逻辑实现。...闭链日期可以快速提取对应日期有效数据; 对于跟踪源系统非事件流水类数据,拉链算法发挥越大作用,源业务系统通常每日变化数据有限,通过拉链加工可以大大降低每日打快照带来的空间开销,且不损失数据变化历史;...提取当前有效记录 Insert into (不含开闭链字段***) Select 不含开闭链字段*** From Where 结束日期 =date'';...,并不局限于传统算法,即涉及到更多适应业务的自定义的ETL算法。

1.4K20

打工人打工魂!销售分析案例来啦!

销售记录如下: 要求输出格式如下: 【解题思路】 此题主要考察 case when 行列的转换问题,即如下图所示: 通过case when 的转换,把列的项目转换成行字段,有两种方法供参考,其中第一个方法较为简洁...2)、对销售员按照“月份”汇总,在case when 筛选的基础上再用sum求和,得到每个销售员每个月总的销售金额。...group by date_format(日期,'%Y %m'); 得到查询结果: 二、临时查询 1、利用cese when语句先分别对销售员判断,得到每个销售员每日的销售金额,销售员原来为列里的一项...2、把第一步的查询作为一个临时a,然后对表a的查询结果按月份进行汇总查询。...a group by date_format(a.日期, '%Y %m'); 上面的结果与题意要求的还有些差距,因“小李”1月份没有销售额,值为NULL,因题意要求为0,利用case when 把

12230

《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

再来看一个栗子,假设我们要实现两个数的交换怎么做?我们可能迫不及待的说出临时变量。然而,在SQL中所有赋值表达式好像都是同时计算的,解决这个问题就不需要临时变量了。...(1)局部临时:只对创建它的会话在创建级和对调用对战的内部级(内部的过程、函数、触发器等)是可见的,当创建会话从SQL Server实例断开时才会自动删除它。   ...创建临时局部,只需要在命名时以单个#号作为前缀: IF OBJECT_ID('tempdb.dbo....下面的示例创建一个用户定义函数dbo.fn_age,对于给定出生日期和事件日期,这个函数可以返回某个人在时间日期当时的年龄: IF OBJECT_ID('dbo.fn_age') IS NOT NULL...下面的示例创建一个存储过程usp_GetCustomerOrders,它接受一个客户ID和日期范围作为输入参数,返回Orders中由指定客户在指定日期范围内所下的订单组成的结果集,同时也将受查询影响的行为作为输出参数

8.9K20

BJ-PFD - BJ 使用指南

预算管理# 在 Bullet Journal 模版中,每个月都有一个主页,汇总了当月的目标、复盘、财务等内容,其中就包括本月的 预算。...; 日期:选择当月任意一个日期。...在每个月的主页中,都有一个到账本数据库的链接,根据日期筛选出本月的账目,也可以根据自己的需要建立多个视图,方便使用。 记账时,选择时间、账户、预算账户并填入金额即可。...投资基金管理# 在记录您的投资状况时,首先需要在投资账户数据库记录您的各条基金信息,并关联一个账户,今后基金的买入卖出都会从账户中扣除。...:::info 每日的记录都是存在一个总的数据库中,在每个月的看板中筛选出当月的记录。 ::: 每日复盘(每日精进)# 继续之前的快速日记,条目属性包含每日快速的记录信息,其内容可以包含更多细节。

15620

带你认识 flask 粉丝

由于这是自引用关系,所以我不得不在两侧都使用同一个实体。 secondary 指定了用于关系的关联,就是使用我在上面定义的followers。...最后将所有用户的动态按照日期时间倒序合并到一个列表中。听起来不错?其实不然。 这种方法有几个问题。如果一个用户关注了一千人,会发生什么?我需要执行一千个数据库查询来收集所有的用户动态。...第一个参数是followers关联,第二个参数是join条件。我的这个调用表达的含义是我希望数据库创建一个临时,它将用户动态和关注者中的数据结合在一起。数据将根据参数传递的条件进行合并。...请记住,查询是从Post类中发出的,所以尽管我曾经得到了由数据库创建一个临时来作为查询的一部分,但结果将是包含在此临时中的用户动态, 而不会存在由于执行join操作添加的其他列。...第二种方法是通过创建第二个查询返回用户自己的动态,然后使用“union”操作将两个查询合并为一个查询。 深思熟虑之后,我选择了第二个方案。

91110

原 收集SQL语句统计每天、每月、每年的数

as day, sum(Total) as sum_total from 订单 group by year(ordertime), month(ordertime), day(ordertime) 另外每日也可以这样...,现在要求求一年中每个月的统计数据(一条sql) SELECT   MONTH (  那个日期的字段  ),   SUM(  需要统计的字段, 比如销售额什么的 ) FROM    WHERE   YEAR...********************************************************* 用GROUP BY子句对记录分类统计汇总 格式:    GROUP BY 分组字段名列表...************************* 说明:     Select 指定的字段必须包含且只含GROUP BY子句中指定的分组字段(可以为它指定别名),     其他必须是由集合函数组成的一个或多个计算列...GROUP BY子句指定表达式时,select指定的字段中可以不包括表达式.

3.7K20

GreenPlum中的数据库对象

Greenplum使用创建定义的分区标准来创建一个分区及其上一个可区分的CHECK约束,这个约束限制了能含有的数据。...创建分区的 在使用CREATE TABLE创建时就可以对它们分区。这个主题提供了用于创建带有数个分区的的SQL语法的例子。 要对一个分区: 决定分区设计:日期范围、数字范围或者值的列表。...例如,用户可以按月创建一个日期范围分区,然后对每个月的分区按照销售地区划分子分区。...定义日期范围分区 定义数字范围分区 定义列表表分区 定义多级分区 对一个现有的进行分区 定义日期范围分区 一个日期范围分区的使用单个date或者timestamp列作为分区键列。...例如,对于一个日期分区的,用户可以按日分区并且得到365个每日的分区,而不是先按年分区然后按月建子分区再然后按日建子分区。一种多级设计可能会减少查询规划时间,但是一种平面的分区设计运行得更快。

50720

每天一道大厂SQL题【Day15】微众银行真题实战(五)

相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题,以每日1题的形式,带你过一遍热门SQL题并给出恰如其分的解答。...每日语录 第15题:逾期率统计 需求列表 基于附录2《借据》统计下述指标,请提供Vintage统计SQL(mobX指的是发放后第X月末的不良余额/发放月金额) 发放月份 发放金额 MOB1 MOB2...需要一个中间普通过度。...1关联临时2,用临时2的每个值除以临时的总金额。...字段名 字段意义 字段类型 ds 日期分区,样例格式为20200101增量表部分流水记录可能有更新 string sno 流水号,主键 string create time 创建日期样例格式为2020-

51520

一篇带你了解如何使用纯前端类Excel表格构建现金流量表

此日历将广泛使用以下强大功能: 动态数组公式 - 根据一个公式将多个结果返回到一系列单元格。此示例使用 SEQUENCE 和 FILTER 函数。...要创建我们的现金流日历,我们需要创建如下所述的三张: 数据源 模板 现金流日历:渲染 数据源 我们示例的数据源是交易列表。...我们创建一个动态的表格,当我们需要数据而不是单元格范围时,我们可以引用 Table1。...作为第二个参数,它需要一个 OBJECT, OBJECT 从位于数据源的 Table1 中获取数据。...第 3 步:获取每日交易 如果我们想从 DataSource 页面中提取所有交易的列表,我们可以借助 SelectionChanged 事件。

10.8K20

Oracle面试题及答案整理,速速收藏

2、有一个table1有两个字段FID,Fno,字都非空,写一个SQL语句列出一个FID对应多个不同的Fno的纪录。 类如: ? 结果: ?...字段如下 month person income 月份 人员 收入 要求用一个SQL语句(注意是一个)的处所有人(不区分人员)每个月及上月和下月的总收入 要求列表输出为...在Oracle中,可以创建以下两种临时: a、会话特有的临时 CREATE GLOBAL TEMPORARY ( ) ON COMMIT PRESERVE ROWS; b、事务特有的临时...使用分区方式建立的叫分区 范围分区 每个分区都由一个分区键值范围指定(对于一个日期列作为分区键的,“2005 年 1 月”分区包含分区键值为从“2005 年 1 月 1 日” 到“2005...列表分区 每个分区都由一个分区键值列表指定(对于一个地区列作为分区键的,“北美”分区可能包含值“加拿大”“美国”和“墨西哥”)。

3.1K20

数仓拉链表

拉链表 一丶什么是拉链表 拉链表是一种数据模型,主要是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。...另外,补充一下每日的用户更新怎么获取,据笔者的经验,有3种方式拿到或者间接拿到每日的用户增量,因为它比较重要,所以详细说明: 我们可以监听Mysql数据的变化,比如说用Canal,最后合并每日的变化...拉链表制作过程图解 四丶实例讲解 需求:现在需要把一张每天存有全量数据的制作成拉链表 步骤: 1.先把已有的全量分区改造为拉链表① --创建岗位状态,在第一次执行脚本执行,这段...from tmp.ems_base t1 ; 2.通过昨天的全量数据和前天的全量数据比较,获取新增及变化的临时② -----创建每日新增及变化的 drop table if exists tmp.ems_change...②合并获取临时拉链表,用临时拉链表覆盖拉链表,得到新的拉链表 ----拉链表去和每日新增及变化的数据合并 drop table if exists tmp.ems_zipper_tmp; create

75620

HBase 的MOB压缩分区策略介绍

t1有两个两个分区(r1,r2),一个列族f1,并且启用了MOB功能。...startkey的散列值 在MOB区域中,从2016.1.1-2016.1.2,r1分区中每天有两个MOB文件,2016.1.1当天,分区r2中有三个MOB文件 通过MOB压缩后,r1、r2分区中同一日期的文件合并为一个文件...HBASE-16981基本思路是将一周或者一个月的MOB文件压缩合并为更大的文件。...根据ISO8601定义的周(起始为周一结束为周日),若采用周策略进行MOB压缩后,则每个分区每周会产生一个文件,同理,用压缩方法按月压缩,每月会生成一个文件,最终在一个MOB区域目录下的文件数分别为52...用户可通过HBase shell在创建时设置属性。例如: ? 同时也可以改变属性字段值 ? 如果压缩策略从每日改为每周或每月,或从每周改为每月,则下一个MOB压缩将重新压缩之前压缩的MOB文件。

1.5K10

干货!超过500行的Mysql学习笔记

] 每个字段必须有数据类型 最后一个字段后不能有逗号 temporary 临时,会话结束时自动消失 对于字段的定义: 字段名 数据类型 [NOT NULL | NULL] [DEFAULT default_value...-- from型 from后要求是一个,必须给子查询结果取个别名。 - 简化每个查询内的条件。 - from型需将结果生成一个临时表格,可用以原的锁定的释放。 - 子查询返回一个,表型子查询。...同真实的一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的,并且在引用视图时动态生成。...数据定义语言(DDL)语句不能被回滚,比如创建或取消数据库的语句,和创建、取消或更改或存储的子程序的语句。 2....- 注意:在函数内是可以使用全局变量(用户自定义的变量) --// 全局变量 ---------- -- 定义、赋值 set 语句可以定义并为变量赋值。

1.2K60

2020年度总结了这 50 道 MySQL 高频面试题!

HEAP存在于内存中,用于临时高速存储。...ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建时使用。...23、federated是什么? federated,允许访问位于其他服务器数据库上的。 24、如果一个有一列定义为TIMESTAMP,将发生什么?...CONCAT(A, B) - 连接两个字符串值以创建单个字符串输出。通常用于将两个或多个字段合并为一个字段。 FORMAT(X, D)- 格式化数字X到D有效数字。...50、解释访问控制列表 ACL(访问控制列表)是与对象关联的权限列表。这个列表是Mysql服务器安全模型的基础,它有助于排除用户无法连接的问题。 Mysql将ACL(也称为授权)缓存在内存中。

4K20

去 BAT 面试,总结了这 50 道 MySQL 面试题!

ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建时使用。...18、federated是什么? federated,允许访问位于其他服务器数据库上的。 19、如果一个有一列定义为TIMESTAMP,将发生什么?...CONCAT(A, B) - 连接两个字符串值以创建单个字符串输出。通常用于将两个或多个字段合并为一个字段。 FORMAT(X, D)- 格式化数字X到D有效数字。...44、解释访问控制列表 ACL(访问控制列表)是与对象关联的权限列表。这个列表是Mysql服务器安全模型的基础,它有助于排除用户无法连接的问题。 Mysql将ACL(也称为授权)缓存在内存中。...锁力度小,发生锁冲突的概率小,并发度最高 50、Heap是什么? HEAP存在于内存中,用于临时高速存储。

3.1K20
领券