华为云专家一席谈:开发低代码,上手低门槛,AppCube让人人都是开发者

华为云专家一席谈:开发低代码,上手低门槛,AppCube让人人都是开发者,第1张

企业在数字化转型过程中,面临着软件开发的不确定性。如开发人员间的沟通、业务的灵活多变、软件工程师技能差异、新技术的出现等,导致软件开发实际成果和人力工作量的投入之间产生很大的差距。

让不确定因子变为确定性因子,把复杂留给平台,简单留给开发者, 是软件开发效率改进一直努力的方向,也是低代码理念的来源。

从软件开发的过程来看:从机器语言到汇编语言,到面向对象、面向函数等高级语言,软件开发技术其实攀登的是一棵“复用”树。复用的表现方式,主要体现为:组件化和框架化。而这两种表现形式正是低代码开发平台所带来的特点。

Gartner预测到2024年,低代码应用程序开发将负责超过65%的应用程序开发活动。低代码将成为下一代企业IT系统的主流开发手段。

脱胎于华为内部流程与IT的最佳实践的 低代码开发平台AppCube ,仅需拖拉拽 *** 作就能搭建各种业务流程,真正的帮助到企业快速开发,应对市场发展。

那么,低代码开发平台AppCube都有哪些特征帮助用户进行应用快速开发?平台开放性如何呢?为此,华为云开发者社区邀请到了 华为云AppCube的专家组老师 ,听他们聊一聊华为云的低代码应用之道。

低代码是一个相对的概念。从字面上看,能减少代码量的开发方式就可以看做是低代码。我们认为低代码平台指面向业务开发人员,屏蔽底层技术复杂性,以可视化方式为主,少量代码为辅,用来快速搭建各种应用系统的开发平台。

如果套用自然界的进化论,低代码可以看做是软件开发方式在应对飞速增长的软件业务规模及不断提高的软件业务复杂度这一云计算时代大背景下的进化和演进。它的核心价值就在于帮助大量传统企业以低门槛、低成本的方式构建应用系统,帮助企业充分发挥上云后云计算的算力优势。

AppCube是2015年通过国内外专家联合设计开发出来的,早先是应用在电信行业,减少电信软件的定制人力投入。

AppCube提供四大能力,帮助开发者高效构建应用:第一, 页面编排能力 ,可以把页面的组件、布局、颜色进行编排;第二, 相关数据建模能力 ,用于保存业务数据;第三, 业务逻辑编排能力 ,基于机器自动执行的、不需要人为干涉的流程,可以高效编排;第四, BPM的流程编排的能力 ,用以解决人为干涉和审批类的流程问题。

当然,企业数字化的场景非常复杂。为此,华为云应用魔方AppCube提供了全场景的开发能力: 对于专业软件开发工程师和企业IT人员 ,可以用低代码开发能力快速开发应用; 对于业务人员 ,可以用零代码能力,通过一些拖拽快速构建; 对于面向专业领域的专业问题 ,如复杂业务算法,开发者可以使用Java、Python等语言开发,以微服务的方式发布到AppCube低代码平台进行托管和调用。

AppCube不仅仅只提供应用开发能力,也提供应用运行和运维能力,包括应用托管、部署、升级能力,租户侧的应用运维能力(监控告警、日志等)以及运行时的配置能力。一些市场上的低代码产品仅提供应用启停能力甚至无应用托管能力。

从应用开发能力来说,AppCube带有华为数字化转型基因,更能支撑行业复杂应用场景及核心业务软件开发。 AppCube整体架构是以元数据驱动的,提供服务总入口,Serverless后端支撑 ,完美的解决了数字化转型复杂场景应用构建的问题。

AppCube作为开放能力入口,提供了快速调用华为云能力、WeLink能力、第三方系统能力的方法,让开发者能够更容易地使用到先进的技术和服务。AppCube还支持资产沉淀和复用,过往的经验可以变成开发资产/服务上架共享,让每个AppCube开发者都可以站在别人的肩膀上走的更远。

AppCube为开发者从应用开发到上线运行,提供三大服务:第一, 开发者服务 ,给开发者提供了一个开发环境,让应用可以快速编排和开发,也可以编排相应的服务,或调用微服务。第二, 沙箱测试服务 ,开发的应用可以快速打包到测试环境,进行业务上线前的测试,第三, 运行态服务 ,对于测试完毕的应用可以打包安装到运行环境,使应用上线运行。

例如在开发环境中,AppCube提供丰富的应用模板,实现0到1的开发和沉淀,应用模板可以直接安装使用,对于定制化的诉求可以直接在此模板上修改源代码。比如设备维修的场景,用户会给客服人员打电话,客服接到电话之后马上创建工单,然后派单给工程师进行维修。类似于这种实际应用场景有很多的模板,在华为云AppCube模板市场可直接订阅之后可立即上线,相当于开放了很多基于应用场景的源代码,模板其实就是一些开源代码。

AppCube可以构建如下四类应用创建:第一,构建2B企业复杂的内部流程类、内部管理类、生产管理类应用。第二,构建企业大屏、领导驾驶舱等展示类应用。第三,可以构建手机端的小程序等应用,第四,构建办公、流程类等轻应用。点击体验(>

OLAP工具。提供多维数据管理环境,其典型的应用是对商业问题的建模与商业数据分析。OLAP也被称为多维分析。

数据挖掘(DataMining)软件。使用诸如神经网络、规则归纳等技术,用来发现数据之间的关系,做出基于数据的推断。

数据仓库(DataWarehouse)和数据集市(DataMart)产品。包括数据转换、管理和存取等方面的预配置软件,通常还包括一些业务模型,如财务分析模型。

联机分析处理(OLAP)的概念最早是由关系数据库之父EFCodd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理(OLTP)明显区分开来。

当今的数据处理大致可以分成两大类:联机事务处理OLTP(On-LineTransactionProcessing)、联机分析处理OLAP(On-LineAnalyticalProcessing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析 *** 作,侧重决策支持,并且提供直观易懂的查询结果。

OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是维这个概念。

“维”是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维(dimension),使用户能对不同维上的数据进行比较。因此OLAP也可以说是多维数据分析工具的集合。

OLAP的基本多维分析 *** 作有钻取(rollup和drilldown)、切片(slice)和切块(dice)、以及旋转(pivot)、drillacross、drillthrough等。

钻取是改变维的层次,变换分析的粒度。它包括向上钻取(rollup)和向下钻取(drilldown)。rollup是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而drilldown则相反,它从汇总数据深入到细节数据进行观察或增加新维。

切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切块。

旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。

OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAP、MOLAP、HOLAP。

ROLAP表示基于关系数据库的OLAP实现(RelationalOLAP)。以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成了“星型模式”。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表来描述,这种星型模式的扩展称为“雪花模式”。

MOLAP表示基于多维数据组织的OLAP实现(OLAP)。以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成“立方块(Cube)”的结构,在MOLAP中对“立方块”的“旋转”、“切块”、“切片”是产生多维数据报表的主要技术。

HOLAP表示基于混合数据组织的OLAP实现(HybridOLAP)。如低层是关系型的,高层是多维矩阵型的。这种方式具有更好的灵活性。

还有其他的一些实现OLAP的方法,如提供一个专用的SQLServer,对某些存储模式(如星型、雪片型)提供对SQL查询的特殊支持。

OLAP工具是针对特定问题的联机数据访问与分析。它通过多维的方式对数据进行分析、查询和报表。维是人们观察数据的特定角度。例如,一个企业在考虑产品的销售情况时,通常从时间、地区和产品的不同角度来深入观察产品的销售情况。这里的时间、地区和产品就是维。而这些维的不同组合和所考察的度量指标构成的多维数组则是OLAP分析的基础,可形式化表示为(维1,维2,,维n,度量指标),如(地区、时间、产品、销售额)。多维分析是指对以多维形式组织起来的数据采取切片(Slice)、切块(Dice)、钻取(Drill-down和Roll-up)、旋转(Pivot)等各种分析动作,以求剖析数据,使用户能从多个角度、多侧面地观察数据库中的数据,从而深入理解包含在数据中的信息。

主流的商业智能工具包括Style(思达商业智能)、FineBI商业智能软件、BO、COGNOS、BRIO。一些国内的软件工具平台如KCOM也集成了一些基本的商业智能工具。

根据综合性数据的组织方式的不同,目常见的OLAP主要有基于多维数据库的MOLAP及基于关系数据库的ROLAP两种。MOLAP是以多维的方式组织和存储数据,ROLAP则利用现有的关系数据库技术来模拟多维数据。在数据仓库应用中,OLAP应用一般是数据仓库应用的前端工具,同时OLAP工具还可以同数据挖掘工具、统计分析工具配合使用,增强决策分析功能。

补充定义

商业智能(Business,简称:BI),又称商业智慧或商务智能,指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。

商业智能作为一个工具,是用来处理企业中现有数据,并将其转换成知识、分析和结论,辅助业务或者决策者做出正确且明智的决定。是帮助企业更好地利用数据提高决策质量的技术,包含了从数据仓库到分析型系统等。

最大值(数量或大小)对象SQLServer7

0SQLServer2000批处理大小65,536网络数据包大小165,536网络数据包大小1每个短字符串列的字节数8,0008,000每个text、ntext、或image列的字节数2最大值(数量或大小)对象SQLServer7

0SQLServer2000批处理大小65,536网络数据包大小165,536网络数据包大小1每个短字符串列的字节数8,0008,000每个text、ntext、或image列的字节数2GB-22GB-2每个GROUPBY、ORDERBY的字节数8,060每个索引中的字节数9009002每个外键的字节数900900每个主键的字节数900900每行字节数8,0608,060存储过程源文本中的字节数批处理大小之较小者或者250MB批处理大小之较小者或者250MB每个数据表的聚集索引数11GROUPBY、ORDERBY中的列数只受字节数限制GROUPBYWITHCUBE或WITHROLLUP语句中的列数或表达式数目10每个索引的列数1616每个外键的列数1616每个主键的列数1616每个基础数据表的列数1,0241,024每个SELECT语句的列数4,0964,096每个INSERT语句的列数1,0241,024每个客户端的连接个数已配置连接的最大值已配置连接的最大值数据库大小1,048,516TB31,048,516TB3每个SQLServer实例的数据库个数32,76732,767每个数据库的文件组个数256256每个数据库的文件个数32,76732,767文件大小(数据)32TB32TB文件大小(日志)4TB32TB每个数据表的外键表引用253253标识符长度(以字符计)128128每台计算机的实例数暂缺16包含SQL语句的字符串长度(批处理大小)65,536网络数据包大小165,536网络数据包大小1每个连接的锁数每个服务器的最大锁数每个服务器的最大锁数每个SQLServer实例的锁数2,147,483,647(静态)SQLServer40%的内存(动态)2,147,483,647(静态)SQLServer40%的内存(动态)嵌套存储过程层数3232嵌套子查询3232嵌套触发器层数3232每个数据表的非聚集索引个数249249SQLServer实例中同时打开的对象个数42,147,483,647(或可用内存)2,147,483,647(或可用内存)每个数据库中的对象个数2,147,483,64742,147,483,6474每个存储过程的参数个数1,0241,024每个数据表的REFERENCE个数253253每个数据表的行数受可用存储资源限制受可用存储资源限制每个数据库的数据表个数受数据库中的对象个数限制4受数据库中的对象个数限制4每个SELECT语句的数据表个数256256每个数据表的触发器个数受数据库中的对象个数限制4受数据库中的对象个数限制4每个数据表的UNIQUE索引个数或约束个数249个非聚集索引和1个聚集索引249个非聚集索引和1个聚集索引1

网络数据包大小是表格格式数据方案(TDS)数据包的大小,该数据包用于应用程序和关系数据库引擎之间的通讯

默认的数据包大小为4KB,由networkpacketsize配置选项控制

2

在SQLServer2000中,任何键的最大字节数不能超过900

可以使用可变长度的列来定义键,只要在这种列中不插入数据超过900字节的行,其最大大小就可以在900以上

有关更多信息,请参见索引键的最大值

3

当使用SQLServer2000DesktopEngine或Microsoft数据引擎(MSDE)1

0时,数据库的大小不能超过2GB

4

数据库对象包括所有的表、视图、存储过程、扩展存储过程、触发器、规则、默认值及约束

ETL是数据抽取(Extract)、转换(Transform)、加载(Load )的简写,它是将OLTP系统中的数据经过抽取,并将不同数据源的数据进行转换、整合,得出一致性的数据,然后加载到数据仓库中。简而言之ETL是完成从 OLTP系统到OLAP系统的过程

数据仓库(Data Warehouse DW)是基于OLTP系统的数据源,为了便于多维分析和 多角度展现将其数据按特定的模式进行存储而建立的关系型数据库,它不同于多维数据库,数据仓库中的数据是细节的,集成的,数据仓库是面向主题的,是以 OLAP系统为分析目的。它包括星型架构与雪花型架构,其中星型架构中间为事实表,四周为维度表, 类似星星;雪花型架构中间为事实表,两边的维度表可以再有其关联子表,而在星型中只允许一张表作为维度表与事实表关联,雪花型一维度可以有多张表,而星型 不可以。考虑到效率时,星型聚合快,效率高,不过雪花型结构明确,便于与OLTP系统交互。在实际项目中,我们将综合运用星型架构与雪花型架构。

即 确定数据分析或前端展现的某一方面的分析主题,例如我们分析某年某月某一地区的啤酒销售情况,就是一个主题。主题要体现某一方面的各分析角度(维度)和统 计数值型数据(量度),确定主题时要综合考虑,一个主题在数据仓库中即为一个数据集市,数据集市体现了某一方面的信息,多个数据集市构成了数据仓库。

在 确定了主题以后,我们将考虑要分析的技术指标,诸如年销售额此类,一般为数值型数据,或者将该数据汇总,或者将该数据取次数,独立次数或取最大最小值 等,这样的数据称之为量度。量度是要统计的指标,必须事先选择恰当,基于不同的量度可以进行复杂关键性能指标(KPI)等的计算。

在 确定了量度之后我们要考虑到该量度的汇总情况和不同维度下量度的聚合情况,考虑到量度的聚合程度不同,我们将采用“最小粒度原则”,即将量度的粒度设置 到最小,例如我们将按照时间对销售额进行汇总,目前的数据最小记录到天,即数据库中记录了每天的交易额,那么我们不能在ETL时将数据进行按月或年汇总, 需要保持到天,以便于后续对天进行分析。而且我们不必担心数据量和数据没有提前汇总带来的问题,因为在后续的建立CUBE时已经将数据提前汇总了。

维 度是要分析的各个角度,例如我们希望按照时间,或者按照地区,或者按照产品进行分析,那么这里的时间、地区、产品就是相应的维度,基于不同的维度我们可 以看到各量度的汇总情况,我们可以基于所有的维度进行交叉分析。这里我们首先要确定维度的层次(Hierarchy)和级别(Level)(图 四:pic4jpg),维度的层次是指该维度的所有级别,包括各级别的属性;维度的级别是指该维度下的成员,例如当建立地区维度时我们将地区维度作为一 个级别,层次为省、市、县三层,考虑到维度表要包含尽量多的信息,所以建立维度时要符合“矮胖原则”,即维度表要尽量宽,尽量包含所有的描述性信息,而不 是统计性的数据信息。

还有一种常见的情况,就是父子型维度,该维度一般用于非叶子节点含有成员等情况,例如公司员工 的维度,在统计员工的工资时,部 门主管的工资不能等于下属成员工资的简单相加,必须对该主管的工资单独统计,然后该主管部门的工资等于下属员工工资加部门主管的工资,那么在建立员工维度 时,我们需要将员工维度建立成父子型维度,这样在统计时,主管的工资会自动加上,避免了都是叶子节点才有数据的情况。

另外,在建立维度表时要充 分使用代理键,代理键是数值型的ID号码,好处是代理键唯一标识了每一维度成员信息,便于区分,更重要的是在聚合时由于数值型匹 配,JOIN效率高,便于聚合,而且代理键对缓慢变化维度有更重要的意义,它起到了标识 历史 数据与新数据的作用,在原数据主键相同的情况下,代理键起到了 对新数据与 历史 数据非常重要的标识作用。

有时我们也会遇到维度缓慢变化的情况,比如增加了新的产品,或者产品的ID号码修改了,或者产品增加了一个新的属性,此时某一维度的成员会随着新的数据的加入而增加新的维度成员,这样我们要考虑到缓慢变化维度的处理,对于缓慢变化维度,有三种情况:

在确定好事实数据和维度后,我们将考虑加载事实表。

在公司的大量数据堆积如山时,我们想看看里面究竟是什么,结果发现里面是一笔笔生产记录,一笔笔交易记录… 那么这些记录是我们将要建立的事实表的原始数据,即关于某一主题的事实记录表。

我 们的做法是将原始表与维度表进行关联,生成事实表(图六:pic6jpg)。注意在关联时有为空的数据时(数据源脏),需要使用外连接,连接后我们将 各维度的代理键取出放于事实表中,事实表除了各维度代理键外,还有各量度数据,这将来自原始表,事实表中将存在维度代理键和各量度,而不应该存在描述性信 息,即符合“瘦高原则”,即要求事实表数据条数尽量多(粒度最小),而描述性信息尽量少。

如果考虑到扩展,可以将事实表加一唯一标识列,以为了以后扩展将该事实作为雪花型维度,不过不需要时一般建议不用这样做。

事 实数据表是数据仓库的核心,需要精心维护,在JOIN后将得到事实数据表,一般记录条数都比较大,我们需要为其设置复合主键和索引,以为了数据的完整性和 基于数据仓库的查询性能优化,事实数据表与维度表一起放于数据仓库中,如果前端需要连接数据仓库进行查询,我们还需要建立一些相关的中间汇总表或物化视图,以方便查询。

在构建数据仓库时,如果数据源位于一服务器上,数据仓库在另一 服务器端,考虑到数据源Server端访问频繁,并且数据量大,需要不断更新,所以可以建立准备区数据库(图七:pic7jpg)。先将数据抽取到准备 区中,然后基于准备区中的数据进行处理,这样处理的好处是防止了在原OLTP系统中中频繁访问,进行数据运算或排序等 *** 作。例如我们可以按照天将数据抽取 到准备区中,基于数据准备区,我们将进行数据的转换,整合,将不同数据源的数据进行一致性处理。数据准备区中将存在原始抽取表,一些转换中间表和临时表以 及ETL日志表等。

时间维度对于某一事实主题来说十分重要,因为不同的时间有不同的统计数据信息,那么按照时间记录 的信息将发挥很重要的作用。在ETL中,时间戳有其特殊的 作用,在上面提到的缓慢变化维度中,我们可以使用时间戳标识维度成员;在记录数据库和数据仓库的 *** 作时,我们也将使用时间戳标识信息,例如在进行数据抽取 时,我们将按照时间戳对OLTP系统中的数据进行抽取,比如在午夜0:00取前一天的数据,我们将按照OLTP系统中的时间戳取GETDATE到 GETDATE减一天,这样得到前一天数据。

在对数据进行处理时,难免会发生数据处理错误,产生出错信息,那么我们 如何获得出错信息并及时修正呢 方法是我们使用一张或多张Log日志表,将出错信息记录下来,在日志表中我们将记录每次抽取的条数,处理成功的条数,处理失败的条数,处理失败的数据,处 理时间等等,这样当数据发生错误时,我们很容易发现问题所在,然后对出错的数据进行修正或重新处理。

在对数据仓库进行 增量更新时必须使用调度(图八:pic8jpg),即对事实数据表进行增量更新处理,在使用调度前要考虑到事实数据量,需要多长时间更 新一次,比如希望按天进行查看,那么我们最好按天进行抽取,如果数据量不大,可以按照月或半年对数据进行更新,如果有缓慢变化维度情况,调度时需要考虑到 维度表更新情况,在更新事实数据表之前要先更新维度表。

调度是数据仓库的关键环节,要考虑缜密,在ETL的流程搭建好后,要定期对其运行,所以 调度是执行ETL流程的关键步骤,每一次调度除了写入Log日志表 的数据处理信息外,还要使用发送Email或报警信息等,这样也方便的技术人员对ETL流程的把握,增强了安全性和数据处理的准确性。

ETL构建数据仓库需要简单的五步,掌握了这五步的方法我们将构建一个强大的数据仓库,不过每一步都有很深的需要研究与挖掘,尤其在实际项目中,我们要综合考虑,例如如果数据源的脏数据很多,在搭建数据仓库之前我们首先要进行数据清洗,以剔除掉不需要的信息和脏数据。

总之,ETL是数据仓库的核心,掌握了ETL构建数据仓库的五步法,就掌握了搭建数据仓库的根本方法。不过,我们不能教条,基于不同的项目,我们还将要进行 具体分析,如父子型维度和缓慢变化维度的运用等。在数据仓库构建中,ETL关系到整个项目的数据质量,所以马虎不得,必须将其摆到重要位置,将ETL这一 大厦根基筑牢。

如果ETL和SQL来说,肯定是SQL效率高的多。但是双方各有优势,先说ETL,ETL主要面向的是建立数据仓库来使用的。ETL更偏向数据清洗,多数据源数据整合,获取增量,转换加载到数据仓库所使用的工具。比如我有两个数据源,一个是数据库的表,另外一个是excel数据,而我需要合并这两个数据,通常这种东西在SQL语句中比较难实现。但是ETL却有很多现成的组件和驱动,几个组件就搞定了。还有比如跨服务器,并且服务器之间不能建立连接的数据源,比如我们公司系统分为一期和二期,存放的数据库是不同的,数据结构也不相同,数据库之间也不能建立连接,这种情况下,ETL就显得尤为重要和突出。通过固定的抽取,转换,加载到数据仓库中,即可很容易实现。

那么SQL呢?SQL事实上只是固定的脚本语言,但是执行效率高,速度快。不过灵活性不高,很难跨服务器整合数据。所以SQL更适合在固定数据库中执行大范围的查询和数据更改,由于脚本语言可以随便编写,所以在固定数据库中能够实现的功能就相当强大,不像ETL中功能只能受组件限制,组件有什么功能,才能实现什么功能。

所以具体我们在什么时候使用ETL和SQL就很明显了,当我们需要多数据源整合建立数据仓库,并进行数据分析的时候,我们使用ETL。如果是固定单一数据库的数据层次处理,我们就使用SQL。当然,ETL也是离不开SQL的。

主要有三大主流工具,分别是Ascential公司的Datastage、Informatica公司的Powercenter、NCR Teradata公司的ETL Automation还有其他开源工具,如PDI(Kettle)等。

DW系统以事实发生数据为基础,自产数据较少。

一个企业往往包含多个业务系统,均可能成为DW数据源。

业务系统数据质量良莠不齐,必须学会去伪存真。

业务系统数据纷繁复杂,要整合进数据模型。

源数据之间关系也纷繁复杂,源数据在加工进DW系统时,有些必须遵照一定的先后次序关系;

流水事件表:此类源表用于记录交易等动作的发生,在源系统中会新增、大部分不会修改和删除,少量表存在删除情况。如定期存款登记簿;

常规状态表:此类源表用于记录数据信息的状态。在源系统中会新增、修改,也存在删除的情况。如客户信息表;

代码参数表:此类源表用于记录源系统中使用到的数据代码和参数;

数据文件大多数以1天为固定的周期从源系统加载到数据仓库。数据文件包含增量,全量以及待删除的增量。

增量数据文件:数据文件的内容为数据表的增量信息,包含表内新增及修改的记录。

全量数据文件:数据文件的内容为数据表的全量信息,包含表内的所有数据。

带删除的增量:数据文件的内容为数据表的增量信息,包含表内新增、修改及删除的记录,通常删除的记录以字段DEL_IND='D'标识该记录。

可划分为: 历史 拉链算法、追加算法(事件表)、Upsert算法(主表)及全删全加算法(参数表);

历史 拉链:根据业务分析要求,对数据变化都要记录,需要基于日期的连续 历史 轨迹;

追加(事件表):根据业务分析要求,对数据变化都要记录,不需要基于日期的连续 历史 轨迹;

Upsert(主表):根据业务分析要求,对数据变化不需要都要记录,当前数据对 历史 数据有影响;

全删全加算法(参数表):根据业务分析要求,对数据变化不需要都要记录,当前数据对 历史 数据无影响;

所谓拉链,就是记录 历史 ,记录一个事务从开始,一直到当前状态的所有变化信息(参数新增开始结束日期);

一般用于事件表,事件之间相对独立,不存在对 历史 信息进行更新;

是update和insert组合体,一般用于对 历史 信息变化不需要进行跟踪保留、只需其最新状态且数据量有一定规模的表,如客户资料表;

一般用于数据量不大的参数表,把 历史 数据全部删除,然后重新全量加载;

历史 拉链,Upsert,Append,全删全加;加载性能:全删全加,Append,Upsert, 历史 拉链;

APPEND算法,常规拉链算法,全量带删除拉链算法;

APPEND算法,MERGE算法,常规拉链算法,基于增量数据的删除拉链算法,基于全量数据的删除拉链算法,经济型常规拉链算法,经济型基于增量数据的删除拉链算法,经济型基于全量数据的删除拉链算法,PK_NOT_IN_APPEND算法,源日期字段自拉链算法;

此算法通常用于流水事件表,适合这类算法的源表在源系统中不会更新和删除,而只会发生一笔添加一笔,所以只需每天将交易日期为当日最新数据取过来直接附加到目标表即可,此类表在近源模型层的字段与技术缓冲层、源系统表基本上完全一致,不会额外增加物理化处理字段,使用时也与源系统表的查询方式相同;

此算法通常用于无删除 *** 作的常规状态表,适合这类算法的源表在源系统中会新增、修改,但不删除,所以需每天获取当日末最新数据(增量或全增量均可),先找出真正的增量数据(新增和修改),用它们将目标表中属性发生修改的开链数据(有效数据)进行关链 *** 作(即END_DT关闭到当前业务日期),然后再将最新的增量数据作为开链数据插入到目标表即可。

此类表再近源模型层比技术缓冲层、源系统的相应表额外增加两个物理化处理字段START_DT(开始日期)和END_DT(结束日期),使用时需要先选定视觉日期,通过START_DT和END_DT去卡视觉日期,即START_DT'视觉日期';

此算法通常用于有删除 *** 作的常规状态类表,并且要求全量的数据文件,用以对比出删除增量;适合这类算法的源表在源系统中会新增,修改,删除,每天将当日末最新全量数据取过来外,分别找出真正的增量数据(新增,修改)和删除增量数据,用它们将目标表中属性发生修改的开链数据(有效数据)进行关链 *** 作(即END_DT关闭到当前业务日期),然后再将最新增量数据中真正的增量及删除数据作为开链数据插入到目标表即可,注意删除记录的删除标志DEL_IND会设置为‘D’;

此类表在近源模型层比技术缓冲层,源系统的相应表额外增加三个物理化处理字段START_DT(开始日期),ENT_DT(结束日期),DEL_IND(删除标准)。使用方式分两类:一时一般查询使用,此时需要先选定视角日期,通过START_DT和END_DT去卡视角日期,即START_DT‘视角日期’,同时加上条件DEL_IND 'D';另一种是下载或获取当日增量数据,此时就是需要START_DT'视角日期' 一个条件即可,不需要加DEL_IND 'D'的条件。

此算法通常用于流水事件表,适合这类算法的源表在源系统中不会更新和删除,而只会发生一笔添加一笔,所以只需每天将交易日期为当日的最新数据取过来直接附加到目标表即可;

通常建一张名为VT_NEW_编号的临时表,用于将各组当日最新数据转换加到VT_NEW_编号后,再一次附加到最终目标表;

此算法通常用于无删除 *** 作的常规状态表,一般是无需保留 历史 而只保留当前最新状态的表,适合这类算法的源表在源系统中会新增,修改,但不删除,所以需获取当日末最新数据(增量或全量均可),用于MERGE IN或UPSERT目标表;为了效率及识别真正增量的要求,通常先识别出真正的增量数据(新增及修改数据),然后再用这些真正的增量数据向目标表进行MERGE INTO *** 作;

通常建两张临时表,一个名为VT_NEW_编号,用于将各组当日最新数据转换加到VT_NEW_编号;另一张名为VT_INC_编号,将VT_NEW_编号与目标表中昨日的数据进行对比后找出真正的增量数据(新增和修改)放入VT_INC_编号,然后再用VT_INC_编号对最终目标表进行MERGE INTO或UPSERT。

此算法通常用于无删除 *** 作的常规状态表,适合这类算法的源表在源系统中会新增、修改,但不删除,所以需每天获取当日末最新数据(增量或全增量均可),先找出真正的增量数据(新增和修改),用它们将目标表中属性发生修改的开链数据(有效数据)进行关链 *** 作(即END_DT关闭到当前业务日期),然后再将最新增量数据作为开链数据插入到目标表即可;

通常建两张临时表,一个名为VT_NEW_编号,用于将各组当日最新数据转换加到VT_NEW_编号;另一张名为VT_INC_编号,将VT_NEW_编号与目标表中昨日的数据进行对比后找出真正的增量数据(新增和修改)放入VT_INC_编号,然后再将最终目标表的开链数据中的PK出现在VT_INT_编号中进行关链处理,然后将VT_INC_编号中的所有数据作为开链数据插入最终目标表即可。

此算法通常用于有删除 *** 作的常规状态表,并且要求删除数据是以DEL_IND='D'删除增量的形式提供;适合这类算法的源表再源系统中会新增、修改、删除,除每天获取当日末最新数据(增量或全量均可)外,还要获取当日删除的数据,根据找出的真正增量数据(新增和修改)以及删除增量数据,用它们将目标表中属性发生修改的开链数据(有效数据)进行关链 *** 作(即END_DT关闭到当前业务时间),然后再将增量(不含删除数据)作为开链数据插入到目标表中即可;

通常建三张临时表,一个名为VT_NEW_编号,用于将各组当日最新数据 (不含删除数据)转换加载到VT_NEW_编号;第二张表名为VT_INC_编号,用VT_NEW_编号与目标表中的昨日的数据进行对比后找出真正的增量数据放入VT_INC_编号;第三张表名为VT_DEL_编号,将删除增量数据转换加载到VT_DEL_编号;最后再将最终目标表的开链数据中PK出现在VT_INC_编号或VT_DEL_编号中的进行关链处理,最后将VT_INC_编号中的所有数据作为开链数据插入最终目标表即可;

此算法通常用于有删除 *** 作的常规状态表,并且要求提供全量数据,用以对比出删除增量;适合这类算法的源表在源系统中会新增、修改、每天将当日末的最新全量数据取过来外,分别找出真正的增量数据(新增、修改)和删除增量数据,用它们将目标表中属性发生修改的开链数据(有效记录)进行关链 *** 作(即END_DT关闭到当前业务时间),然后再将最新数据中真正的增量数据(不含删除数据)作为开链数据插入到目标表即可;

通常建两张临时表,一个名为VT_NEW_编号,用于将各组当日最新全量数据转换到VT_NEW_编号;另一张表名为VT_INC_编号,将VT_NEW_编号与目标表中昨日的数据进行对比后找出真正的增量数据(新增、修改)和删除增量数据放入VT_INC_编号,注意将其中的删除增量数据的END_DT置以最小日期(借用);最后再将最终目标表的开链数据中PK出现再VT_INC_编号或VT_DEL_编号中的进行关链处理,然后将VT_INC_编号中所有的END_DT不等于最小日期数据(非删除数据)作为开链数据插入最终目标表即可;

此算法基本等同与常规拉算法,只是在最后一步只将属性非空即非0的记录才作为开链数据插入目标表;

此算法基本等同于基于增量数据删除拉链算法,只是在最后一步只将属性非空及非0的记录才作为开链数据插入目标表;

此算法基本等同于基于全量数据删除拉链算法,只是在最后一步只将属性非空及非0的记录才作为开链数据插入目标表;

此算法是对每一组只将PK在当前VT_NEW_编号表中未出现的数据再插入VT_NEW_编号表,最后再将PK未出现在目标表中的数据插入目标表,以保证只进那些PK未进过的数据;

此算法是源表中有日期字段标识当前记录的生效日期,本算法通过对同主键记录按这个生效日期排序后,一次首尾相连行形成一条自然拉链的算法

以上就是关于华为云专家一席谈:开发低代码,上手低门槛,AppCube让人人都是开发者全部的内容,包括:华为云专家一席谈:开发低代码,上手低门槛,AppCube让人人都是开发者、商业智能的相关定义、SQLServer2000的数据库容量究竟是多大(数据库的容量是多少)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9418823.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存