首页 > 其他分享 >数据开发也能双轮驱动?

数据开发也能双轮驱动?

时间:2022-10-17 23:36:16浏览次数:41  
标签:双轮 模型 数据处理 开发 DataFactory 维度 驱动 数据

本篇文章主要讲解DataFactory的维度建模概念,业务驱动模型开发流程以及两种开发模式的对比。 通过本文了解DataFactory双轮驱动指哪两种开发模式?它们的具体流程是什么?分别适合什么场景?如何选择适合自己的模式?助力大家数据开发之旅~ DataFactory数据开发两种模式 DataFactory概览 DataFactory是一个全场景,一站式的数据开发平台,DataFactory涵盖了集成,建模,运算,治理,探索,存储整个端到端的功能,同时也提供了多种开放模式。 DataFactory可以让用户沉淀资产,编排过程中产生的工程,app等应用可以作为我们的资产。而产生的工程可以作为自研领域的DPL,由DPL语言来描述生产运行过程,DPL语言屏蔽了具体的引擎技术栈,可以在长时间内沉淀数据开发应用资产,具有较强的兼容性。 下图简略的描述了DataFactory开发流程步骤,在接入数据之后,进行模型开发,数据探索,把数据进行清洗,转换,达到我们想要的数据处理结果。处理后的结果支持大屏程序,支持我们后续的运营和运维。 DataPipeline提供面向数据处理过程的开发能力,可以类比于面向过程式的开发,它将数据处理的步骤简化成一个结点,每个结点组合成一个管道,数据从管道中流过的时候,从一个结点到另外一个结点,面向的是数据处理的过程,同时也支持图形化无码/SQL/ProCode等多种开发形式。 第二种开发模式DataMold以维度建模为理论基础,面向业务数据模型的开发能力,基于业务抽象模型,以模型来驱动开发,更聚焦于业务逻辑本身,可以类比于面向对象的开发,计算任务自动推导生成; 这两种模式都是DataFactory非常重要的模式,下面我们对两种模式进行一个详细的对比。 面向数据处理过程开发 面向数据处理过程开发首先要先将业务和数据梳理出来,然后根据数据选择模型,将模型和数据源准备处理,下一步进入数据处理流程,每个单页提供一个数据处理模式,一步一步往下走。这个流程会被DataFactory转换成建模语言DPL。在后续进行编译转换可以将DPL转换成可直接使用的语言。 面向业务数据模型开发 DataMold通过建立星型模型,基于事实表定义度量,指标等业务模型,创建汇聚模型的统计周期,这一步以后,制定目标输出结果,开发汇聚计算任务,制定计算汇总周期,依赖引擎。后续根据配置生产DPL语言。 两种模式对比 要把业务转换成模型语言,首先要对其进行抽象,明确业务来源,格式,字段。中间的过程是两种开发模式有区别的地方。这个流程详细的描述了数据处理的每一个过程,一开始设计的模型,并没有指定数据怎样进行计算,业务相关的模型需要放到汇聚模型,生成计算任务进而生成DPL建模语言。 面向业务数据模型的开发流程 概述 面向业务数据模型开发,是模型驱动开发与维度建模的有机结合。 模型驱动开发MDD (Model Driven Development)的基本思想是让开发中心从编程、制造等具体最终实现转 移到高级别抽象中去.诵过模型转成代码来驱动部分或全部的自动化开发。 维度建模按照事实表、维度表来构建数据仓库、数据集市,面向分析场景而生,针对分析场景构 建数仓模型。 重点关注如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。星型模型和雪花模型就是典型的维度模型。我们在进行维度建模的时候会建一张事实表,这个事实表就是星型模型的中心维度表就是向外发散的星星。常用术语 详单表(XDR) : x Detail Record CDR(呼叫详细记录)单据。又叫事实表。事实表中存放的事实数据,通常包含大量的数据行。事实表的主要特点是包含数值数据(事实)。 维度(Dimension) :是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合构成。在统计过程中用于汇聚,聚合,例如按照用户的维度统计某用户的一天上网的总流量。 度量(Measure) :定义基于详单进行的计数统计,更偏重于网络或系统层面,例如“通话创建成功次数"和"通话创建请求次数"等。 指标(Indicator):定义基于Measure计算结果后的统计,更偏重与用户关注的指标层面,例如“PDP创建成功率",其计算公式: (PDP创建成功次数/PDP创建请求次数)*100。 SDR表: Statistic Detail Record(统计详细记录),基于详单进行的用户指标统计,主要进行维度汇聚和指标计算,支撑上层应用查询。开发流程详解 业务模型驱动的开发流程主要由一下几个步骤组成 首先是模型选取模型包括逻辑模型和物理模型,逻辑模型描述的是实体,数据属性。物理模型在逻辑模型的基础上补充了逻辑模型缺少的上下文。例如数据粒度,维度,指标等,还会和硬件,操作系统等有关系。下图为实战过程中的一个逻辑模型,提供了数据表的类型,长度,业务在进行抽象时会将对象构建出来,再将上下文补全生成物理信息。 第二步为构建业务模型,也就是维度,度量和指标。主要是表达了我们计算上的逻辑,从不同的维度进行汇总并进行汇聚的计算。 第三步是建立汇聚模型,定义输入和输出 第四步是补充计算逻辑,如执行的偏移时间,执行次数,运行在哪个引擎并将命令下发 当把整个过程开发完毕,就可以进行编译打包,部署到运行的环境上,在一定的周期内执行并查看运行状况和计算结果 开发实战演练 下面通过简单的实战来区分一下两种开发模式 实现新需求: 按小时粒度,统计某省(PROV_ID)=666)视频下行业务的平均时延。数据加载到HDFS指定目录两种开发模式的对比 使用面向数据处理过程开发过程如下 面向数据处理过程开发过程我们主要关注数据处理流程,用到的算子。根据需求我们首先建立模型,这里给出了日期,小时,省份,这三个角度对数据进行统计。 通过使用批处理将数据从源数据抽取出来进行过滤分组转换,计算出结果 实际环境操作如下图 首先建立一个数据流,划分小模块,进行过滤和计算,汇总等。 抽取数据,对省份数据为666的进行过滤并显示结果 对数据进行分组,汇聚 对数据求和求出平均值 将数据存储到指定路径,完成操作。 面向业务数据模型开发流程相对复杂,但操作少了很多。 首先通过两个度量进行求和,然后对求和后数据进行出发,建立一个指标和维度进行组合形成我们需要的汇聚模型,应用到汇聚计算任务。在处理过程中,加入过滤任务,指定引擎种类来完成对应任务。 实际操作流程如下 通过基于已有表进行数据开发,下表记录了某一次请求的时延。 首先要建立逻辑模型和物理模型,根据图标已经得到逻辑模型,再根据上下文建立物理模型。 数据源一般由系统自动提供并预制了很多模板。 下一步为建立维度,指定计算模型。 这里的层级表示维度的不同层。 第三步创建维度与逻辑模型的关系。 最后对省份进行筛选并进行相关数据关联 面向数据处理过程开发 • 低门槛,业务人员、无基础或弱基础开发者也可上手 • 数据开发,支持可视化调试; • 经过抽象,复用程度高; • 图形化表达与技术实现解耦,支持资产沉淀;·能处理复杂计算场景 • 需要学习掌握后才能进行项目开发; • 配置较多算子 面向业务数据模型开发 • 需要学习掌握后才能进行项目开发; • 配置较多算子 • 适用于基于即有的优质事实表开发; • 仅支持HDFS文件作为输入输出 • 不支持调试,验证较麻烦 两种开发适用场景对比 两者不是非此即彼的关系,没有最好的,只有最适合的。 总结 这两年在人工智能、大数据、云计算等技术的飞速发展下,一个火爆的理念正在迅速传播开,那就是各行各业正在如火如荼的进行着数字化转型。政企在数字化转型中,需要技术人员将传统业务IT化,以实现流程+工具+制度的运作方式,最终完成数字化转型。华为GDE平台将华为多年内部管理运作经验及工具打包,现向外提供整套解决方案,让业务人员通过低代码、流程编排、数据编排完成IT工具搭建,进而实现数字化转型的关键一步。 最后,祝华为GDE平台越来越好, GDE平台的用户借助平台能力及早实现数字化转型,提升核心竞争力,成为行业领导者。

标签:双轮,模型,数据处理,开发,DataFactory,维度,驱动,数据
From: https://blog.51cto.com/u_15070902/5764680

相关文章

  • Eclipse插件开发资源查找
    介绍我们在开发Eclipse插件的时候,需要查找类、接口等资源的时候,怎么办呢?本文介绍如何使用Eclipse自带的查找对话框来获取类路径。例子[codesyntaxlang="java"]/***http:......
  • Eclipse插件开发CleanUp
    扩展点[codesyntaxlang="python"]<extensionpoint="org.eclipse.jdt.ui.cleanUps"><cleanUpConfigurationUIclass="org.suren.cleanup.SuRenCleanUp"name="SuRenS......
  • Eclipse插件开发Java快速修复
    介绍在Eclipse中在有报错的地方,使用快捷键Ctrl+1就会弹出几种解决问题的方案,这时候只要选择一种就可能快速地修复该问题。这些常见的问题,有些可能是通用的,例如:没有导入包。......
  • Eclipse插件开发自定义Classpath
    介绍我们在使用Eclipse做Java开发的时候,如果要用到JDK以外的库文件的话,一般的做法都是自定义一个Library或者逐个添加jar文件,或者是利用Maven。那么,Maven又是怎么做到的呢?......
  • 【Nuxt3从入门到实战】第三啪:巧用布局模板,高效开发从这里开始!
    前言大家好,我是村长,欢迎关注我的公众号村长学前端和B站Young村长!上一篇写了nuxt3路由系统,我们试用了两个重要功能:​​动态路由​​​和​​嵌套路由​​。体验便捷的同时,当......
  • 《Rust唠嗑室》第36期 - 分享使用Rust进行嵌入式开发创业的一些点滴
    题目:分享使用Rust进行嵌入式开发创业的一些点滴主讲人:cz内容: 一.创业项目为什么选择Rust进行嵌入式开发(ForSTM32)?二.根据项目选用哪些Rustcrates? 三.Rust在嵌入......
  • 实验1C语言开发环境使用和数据类型,运算符,表达式
    #include<stdio.h>#include<stdlib.h>intmain(){printf("0\n");printf("<H>\n");printf("II\n");printf("0\n");printf("<H>\n");pr......
  • 软件开发模型-瀑布模型
    瀑布模型  需求分析研发分析需求说明书判断需求实现可能性概要设计用到具体的技术点大致模块划分详细设计详细到可以为编码做支持类和类关系,类的设计......
  • 如何让开发调试变成一件优雅地事情
    介绍对于外行来说,做研发似乎是件很复杂、神奇的事情;对于广大码农来说,好多时候确实很枯燥、繁琐的。我作为一个称职的懒人,绝对不能每天都老老实实、默默无闻地承受着这些枯......
  • 工厂MES系统功能与MES系统开发费用明细介绍
    在如今数智化时代,各行各业都在发生着巨大的变化,智能制造已逐步深入到制造业之中,工厂已进入高效生产时代。MES系统的出现,为制造业提供了全方位高效生产管理模式,可对人、设备......