这是学习笔记的第 2085 篇文章 对于周期表的生命周期管理,一直以来是一个不被重视的环节,听起来有些拗口,所谓的周期表就是类似日表分区表那样的数据表,在MySQL中我们和业务方算是达成了共识,把需求引导过来后...建表需求是一种第风险操作,而删除则是高风险操作,所以在处理方式上两者的方式就有很大的差别,比如创建周期表,我们可以提前一两周就预创建1个月~3个月的周期表。...创建的工作相对可控,但是删除的操作就麻烦了,我们需要谨慎处理,为了保证drop操作的可控和可回溯,我们设置了回收站的处理方式,即一个数据库会对应一个arch命名的归档库,当我们要删除周期表时,可以把要删除的表...第二阶段是清理,做drop操作,在arch归档库开始删除操作,删除的频率不宜过于频繁。 ? 在开始阶段,我们需要做的就是根据逻辑去提取过期的周期表。...一般来说在清理的过程中,我们需要增加一系列的校验规则,比如对周期表的属性进行检查,确保操作完全可靠,可控。
这是学习笔记的第 2038 篇文章 关于MySQL周期表管理,近期做了初步的设计,总体上是希望把周期表的管理和业务同学对接起来,实现流程化的管理。...对于周期表的数据管理,能够实现数据的批量管理,也可以对接到大数据中实现数据分析,并通过巡检任务对接,让整个流程动起来。 ?...对于整体的设计方面,需要开发后端的API,API列表如下: 周期表列表 周期表创建 周期表属性变更 周期表批量变更接口 周期表数据清理接口 巡检任务 大数据提取接口 即时通讯提醒接口 对于模型的设计是重中之重...,也能够决定我们的周期表管理的存储设计优劣。...模型方面考虑了如下的一些表: Mysql_dailytable 周期表 Mysql_cycle_table_manage_log 周期表维护日志(包含配置创建,属性修改) Mysql_cycle_table_ddl_log
这是学习笔记的第 2065 篇文章 今天做了下周期表清理的设计,从实践的效果来看还不错。现在线上环境有差不多50多个周期表要统一管理,随着这个管理的规模扩大,对于生命周期的管理也迫在眉睫。...有一套环境有6000多张表,其实按照保留周期需要的表只有800多个,剩下的过期周期表都应该删除。...整个周期表的清理逻辑做了下面的设计: 1.以API的方式设计 参数设计: ip_addr db_port Start_time End_time Table_schema Table_name Code...: cycle_table_list 2.根据配置中的保留信息得到过期的列表 存在不连续的周期表,如果是20190101,20190103这样不连续的周期表,需要保证程序的健壮性 更早的周期表,如果我们扫描的周期是近...2个月,2个月之前的过期周期表也应该被覆盖 3.检查归档数据库是否存在 归档数据库是整个设计的核心,即数据不是直接drop,而是做了转储。
搜索“DevOps”,出来的是茫茫多的信息,最奇怪的现象是明明2009年才提出的名词,却有人号称有十年以上DevOps经验。那小编只好来扒一扒关于DevOps的那些事。...DevOps Engineer(DevOps工程师)根据开发人员的需求构建各种工具,提高开发的速度与品质,解决开发人员的后顾之忧。...在DevOps 2015研讨会上,有人鉴于数量繁多的DevOps工具,仿照元素周期表制作出了一张DevOps周期表。划分了数据库、CI、日志、安全、监控、配置管理、云服务等15个大类,120个工具。...DevOps 2015研讨会上的DevOps周期表 掌握了以上图片里的这些工具,或许你就是一名合格的全栈工程师。...但个人认为,不要沉迷于工具带来的便利,大多数DevOps工具都是自动化的工具,用任意script语言一样能写出同样的效果,重要的是完全理解了这些工具背后的设计理念和使用时机。
我在会上看到了一些有趣的东西,逐渐分享给大家,比如接下来要说到的CISO元素周期表,里面提到了诸多CISO需要关注的重点。笔者将其翻译了过来,再加上自己的理解,写成这篇文章,供大家娱乐和拍砖。...大会厂商将CISO需要考虑的安全要素汇总提炼,总结成为下面的CISO元素周期表,在下面的篇幅中,我将对逐个要素做以解释。...Cm (Configuration Management) 配置管理 随着软件系统的日益复杂化和用户需求、软件更新的频繁化,配置管理逐渐成为软件生命周期中的重要控制过程,在软件开发过程中扮演着越来越来重要的角色...Dso (DevSecOps) “DevSecOps”,一种全新的安全理念与模式,从DecOps的概念延伸和演变而来,其核心理念为安全是整个IT团队(包括开发、运维及安全团队)每个人的责任,需要贯穿从开发到运营整个业务生命周期的每一个环节...St (Stuffing) 员工:没人啥事都落不了地 Te (Technology) 技术:技术是工具 Oz (Optimization) 优化:好好优化,天天向上 以上是我们对安全总监元素周期表的翻译和粗浅理解
NATURALINNERJOIN这个函数可以通过内部联接,返回两个表共有列的重合部分,也就是交集,但是不同之处在于会将两个表中的其他列也添加到新的表中。 微软将其划分到”表函数“中。...语法 DAX=NATURALINNERJOIN(, ) 参数 左右表:可以是表的表达式,也可以是物理表。 返回结果 左右表共有列的重合部分,以及其他列组成的新表。...注意 1、@高飞老师在论坛上曾说,这个函数的使用分为有模型关系和无模型关系两种情况。 无关系的情况下,两个表的共有列需要同样的列名; 有关系的情况下,两个表的共有列的列名不能重复。...,可以看到表A和表C有很明显的格式区别。...) 结果如下: [ed222a9af4688e0bf38c21b0d2f9764e.png] 返回两个表重合的列以及其他列组成的新表。
INTERSECT函数 INTERSECT的英文含义是“相交、交叉”。 因此从名称就能看出来这个函数的用途:取两个表的交叉部分,即交集。 这个函数与白茶之前说的EXCEPT函数的作用正好相反。...此函数被微软划分为“表函数”中。 用途:取两个表的交集。 语法 DAX=INTERSECT(, ) 参数 表:物理表,也可以是表的表达式。 返回结果 整张表。表1在表2中出现过的行。...注意 1.表1和表2的顺序,表顺序不同返回的结果也不同; 2.两个表必须具有相同的列数; 3.返回的列名与第一参数相匹配; 4.若重复行表1表2都出现,则不删除重复项。...例子 模拟数据: 这是白茶随机模拟的数据,比较简单,一共是三张表。 例子1: 例子1 = INTERSECT ( 'A表', 'B表' ) 结果: 返回B表中存在的A、C、D,列名承袭表A。...例子2: 例子2 = INTERSECT ( 'B表', 'A表' ) 结果: 返回A表中存在的A、C、D,列名承袭表B。
因此从名称就能看出来这个函数的用途:返回不在一个表中的另一个表的数据。 此函数被微软划分为“表函数”中。 用途:可以用来排查两个表交集之外的数据。...应用案例传送门:《新增客户》 语法 DAX=EXCEPT(, ) 参数 表:物理表,也可以是表的表达式。 返回结果 整张表。内容为第一参数中表的行,去掉第二参数表的行所剩余的行。...注意 1.表1和表2的顺序,表顺序不同返回的结果也不同; 2.两个表必须具有相同的列数; 3.返回的列名与第一参数相匹配。...例子1: 例子1 = EXCEPT ( 'A表', 'B表' ) 结果: [b3091c08c551739886524d37912357f5.png] 返回结果为B表中不存在的E、F、G三行,注意看名称...例子2: 例子2 = EXCEPT ( 'B表', 'A表' ) 结果: [5af9ab366bd209f75bdee283fefd435a.png] 返回结果为A表中不存在的甲、乙、丙、丁四行,列名承袭第一参数表
[1240] CALENDAR函数 语法= CALENDAR(,) CALENDAR函数,属于常用的“表函数”之一,一般用于生成日期维度。也可以用来构建虚拟的日期表进行计算。...返回结果 一个具有单个“日期列”表,这个日期列包含开始与结束日期。并且是连续不间断的,比如一月份实际销售是27天,利用这个函数生成的日期列是31天。连续、不间断、不挂挡。...应用例子 例子1:下面这个代码返回一个从2019年12月1日到2019年12月15日,连续15天的表函数,日期列有15行,连续不间断的15天。...白茶之前生成的两个表,一个是12月1日到15日,一个是11月1日到15日,取最小值最大值,CALENDAR函数生成一个从11月1日到12月15日连续45天的日期列。...白茶会不定期的分享一些函数的基本用法。 (文件在PowerBI丨需求圈的知识星球) [1240] 这里是白茶,一个PowerBI的初学者。[1240]
[1240] ALLSELECTED函数 ALLSELECTED函数,被微软划分为“筛选”类函数,隶属于“表函数”。其用途,常常是用来计算或者显示明面上的筛选影响,而忽略其行上下文的影响。...语法 DAX= ALLSELECTED([ | [, [, [,…]]]] ) 参数 表:(可选项)不能是表达式,现有表的名称。...列:(可选项可重复)不能是表达式,现有列的名称。 注意:要么是表,要么是列;如果是多列,必须在同一表中。返回结果 不带任何列或行上下文的上下文。...例子3,没有关系维度筛选生效: 维度表 = DATESBETWEEN ( '例子'[坐标轴], DATE ( 2020, 1, 4 ), DATE ( 2020, 1, 8 ) ) 随机生成一个维度表,...ALLSELECTED例子3 = CALCULATE ( SUM ( '例子'[数据] ), FILTER ( '例子', '例子'[坐标轴] IN ALLSELECTED ( '维度表'
也可以指被添加索引的表。...索引列名:为即将添加的索引列命名。 参照表:与主表有关系的参考表,通常指的是维度表。 参照表[列]:与主表所共有的列,通常是模型关系中的一端。 排序:调整索引列的排序方式。DESC/ASC。...现在假定事实表没有相关索引的列,但是我们做出来的维度要索引,该怎么进行呢?...INDEX虚拟表中,提取BA表中的一列,去掉重复项,作为维度参考。 最后,利用SUBSTITUTEWITHINDEX函数,替换掉了两个虚拟表中的共有列[商品],输出结果为[品名列]和[索引列]。...这样的话我们就绕过PQ,不需要去PQ编辑界面添加索引,仅在DAX中完成了维度提取,添加索引的操作。 例子2: 将我们刚才生成的维度表与事实表建立联系。
DATATABLE函数 DATATABLE函数属于“其他”函数,隶属于表函数。 可能从名称上看,小伙伴差不多能猜到这个函数的用途,其作用有点类似于其他编程语言中的创建语法,可以添加新的数据。...原因: 1.直接利用EXCEL添加数据源的方式操作简单; 2.也可以直接利用界面上的新表功能直接添加; 3.会M语言的小伙伴可以在PQ中直接处理数据。...参数 列名:顾名思义,这一列的名称。 类型: 对应列的数据格式。有这几种选项:INTEGER、DOUBLE、STRING、BOOLEAN、CURRENCY、DATETIME。...值:每一列所对应的数据。 返回结果 新的表。...白茶会不定期的分享一些函数卡片 (文件在知识星球[PowerBI丨需求圈]) 这里是白茶,一个PowerBI的初学者。
可能白茶对这一部分的函数整理的比较慢,希望小伙伴们多多体谅。 ADDMISSGITEMS函数被微软划分到“筛选器”这一大类之中,隶属于“表函数”。...语法 DAX= ADDMISSINGITEMS([,…],,[,…], [筛选条件]) 参数 展示列:(可选,可重复)需要展示出来的列。 汇总表:经过筛选处理之后的表。...筛选条件:(可选,可重复)定义筛选条件的表函数表达式。 返回结果 经过分组处理的表,一部分为筛选计算之后的“可见项”; 一部分为不符合条件的“缺失项”。...,是一张经过筛选之后的表,销售数据小于等于115,且与日期列搭配显示的表。...函数能更直接一些,可以通过筛选和计算直接显示可见项,但是结果上不太灵活; 3、FILTER函数偏向于筛选类,可以直接筛选表,可以与CALCULATE函数搭配计算,但是又比较复杂。
语法 DAX= ALLNOBLANKROW( { | [, [, [,…]]]} ) 参数 表:已经删除上下文筛选的表。 列:(可重复)已经删除上下文筛选的列。...注意:此函数参数类型只能存在一种,要么是表,要么是列。 返回结果 去除重复值的表或列。...ALL函数基本上差不多,返回一个完整的数据表。...: [5b9b84faa9a411c844127b33ea922855.png] 可以看得出来,这种情况下,父表对于子表的筛选条件不造成影响,二者的结果是一致的。...这是因为,子表中存在父表中不存在的维度数据。 ALL函数会直接为父表添加一行“空行”,这一行ALL函数计算在内。ALLNOBLANKROW则会忽略这一空行,只计算父表中存在的数据。
[1240] ALL函数 ALL函数隶属于“表函数”,被微软划分为“筛选”类函数之中。...其实白茶觉得部分函数微软划分的有点模糊,比如本期的ALL函数,虽然可以单独使用,但是其更主要的作用是作为中间函数使用。 主要用途:用来清除外部筛选器。...语法 DAX= ALL( [ | [, [, [,…]]]] ) 参数 参数:可以是一个表;可以是表的一列或者多列。 返回结果 表或列。...例子 模拟数据: [1240] 这是白茶随机模拟的一份数据。 例子1: ALL例子1 = ALL ( '例子' ) 结果: [1240] 单纯的ALL整个表,不与其他函数搭配使用,相当于整体的复制。...ALL函数的使用方式还有很多,比如白茶之前写过的组内占比,各类排名等等。 白茶会不定期的分享一些函数卡片哦。
[1240] CALENDARAUTO函数 语法= CALENDARAUTO([参数]) CALENDARAUTO函数,属于常用“表函数”之一。一般用于生成日期表维度,用途与CALENDAR差不多。...返回结果 一个具有日期列的表,并且是连续不断的。相对于CALENDAR函数,它返回的范围比较广。...如果数据包含多个日期维度,推荐使用这个函数,它会检测所有的数据模型,生成一个涵盖所有日期范围的日期表。 应用例子 例子1:数据如下。 [1240] 导入到PowerBI中。...比如输入参数2,那么开始日期就是3月1日,不要2月份之前以及2月份的数据。通常情况下,参数我们使用的很少,一般默认不填就可以了。 那我要是有多个表呢? 例子4:数据如下。...生成一个涵盖所有日期范围的日期表。 最后一个问题,这个函数可以没有数据的情况下使用么? 例子5:输入代码。
[1240] CALCULATETABLE函数 CALCULATETABLE函数属于“筛选”类函数,隶属于“表函数”。...某种意义上来说,CALCULATETABLE函数其实就是CALCULATE函数的表函数模式。 其核心点都是一致的,根据上下文生成新的上下文。 二者的区别是一个返回的是值,一个返回的是表。...感兴趣的小伙伴可以看看白茶之前写的文章《精品丨CALCULATE函数进价知识》,里面有系统的介绍。 用途:构建新的上下文环境,生成一个符合我们需求的表。...语法 DAX= CALCULATETABLE(,,,…) 参数 表达式:必须项,可以是一个表,也可以是表的表达式。 筛选器:可选项可重复,用来过滤条件使用。...返回结果 根据筛选器生成的上下文对表达式进行计算,返回一张表。 例子 模拟数据: [1240] 这是白茶随机模拟的数据。
当参数为列时,返回结果会去除重复值,保留空项;当参数为表时,结果不会进行去重复操作。 用途:适用于度量值计算。...语法 DAX= VALUES(表or列) 参数 VALUES函数的参数可以是列,也可以是表,但不能是表达式。 返回结果 去除重复值的列或者返回一个完整的表。当表为单列单行时,可以作为值使用。...,在表函数模式下,都会进行去重复操作。...= SUMX ( ALL ( '维度'[类别] ), CALCULATE ( COUNTROWS ( '例子' ) ) ) 结果: [1240] 在例子和维度上下文中,DISTINCT函数排除掉因扩展表原因导致的空值项目...ALL函数在例子上下文中的计算,没有屏蔽掉例子的筛选效果,其计算结果包含空值项目;而在维度上下文中,清除了维度表的筛选效果,计算结果包含空值项目,每个返回值均为总计行数37。
[1240] FILTER函数 FILTER函数属于“筛选”类函数,隶属于“表”函数,其使用频率可以算得上最高的几个函数之一。 用途:用来筛选表或者作为计算的筛选条件。...语法 DAX= FILTER(,) 参数 表:可以是固定的表,也可以是表的表达式。 条件:过滤条件。 返回结果 由符合筛选条件的行组成的表。...代码: 双层FILTER = FILTER ( FILTER ( '例子', MONTH ( '例子'[日期] ) < 2 ), '例子'[类别] = "白" ) 结果: [1240] 从结果上看,三者的结果是一模一样的...1、从性能上看,双层FILTER的性能优于前两者; 2、从执行顺序上看,多层FILTER时,通常是从内往外计算。...白茶会不定期的分享一些函数卡片 (文件在知识星球PowerBI丨需求圈) [1240] 这里是白茶,一个PowerBI的初学者。 [1240]
[1240] ALLEXCEPT函数 ALLEXCEPT函数属于“筛选”类函数,隶属于“表函数”,在ALL函数系列家族中,其地位是不可或缺的。 EXCEPT翻译成中文是什么意思?表示:除了的意思。...因此,这个函数所表达的意思顾名思义,“除了...剩下的都....”。联想起ALL函数的特性,这个函数表示除了某一项受到筛选之外,其他的项目全部清除筛选。 用途:特别适用于组内占比的计算。...语法 DAX= ALLEXCEPT(,[,[,…]]) 参数 表:要清除筛选器的表。 列:(可重复)位于第一参数表中,需要保留筛选的列。除了这一列之外,其他列全部不受筛选影响。...注意:不能使用表的表达式和列的表达式。 返回结果 除了保留筛选器的那一列,清除了其他筛选条件的一个表。 例子 模拟数据: [1240] 这是白茶随机模拟的一份数据。...例子1: ALLEXCEPT例子1 = ALLEXCEPT ( '例子', '例子'[类别] ) 结果: [1240] 因为当前上下文环境为行上下文,默认筛选条件为空,结果返回为剔除了保留筛选的列一个表
领取专属 10元无门槛券
手把手带您无忧上云