阿里云-数仓开发-DataWorks开发
DataWorks 开发套件DataWorks基于MaxCompute、Hologres、EMR、AnalyticDB、CDP等大数据引擎,为数据仓库、数据湖、湖仓一体等解决方案提供统一的全链路大数据开发治理平台。 它是数据工场,集成提供对ODPS数据进行加工处理,主要提供了:数据集成、数据开发、数据管理、数据治理、数据分享等功能。产品架构通过智能数据建模、全域数据集成、高效数据生产、主动数据治理、全面数据安全、数据分析服务六大全链路数据治理的能力,帮助企业治理内部不断上涨的“数据悬河”,释放企业的数据生产力。DataWorks开发模式DataWorks 目前提供简单模式和标准模式二种。标准模式 标准模式工作空间,可隔离开发环境与生产环境, 采用二套数据存储隔离,开发的代码 需要提交审批才能进入正式环境运维中心上线调度运行。简单模式 简单模式不区分开发与生产,开发的代码可以直接上运维中心进行调度运行。新建调度资源一般进行简单的数据分析只需要默认的调度资源就满足业务需求(目前的模式就是按量付费) 需要进行特殊的数据集成、数据操作时会用到自定义资源新增数据源DataWorks空间:选择项目 -> 选择数据集成 -> 同步资源管理 -> 数据源批量数据上云入库DataWorks空间:-> 选择数据集成 -> 同步资源管理 -> 数据源 -> 整库数据迁移也可针对指定表进行同步:可视化的开发界面支持通过拖拉拽的方式构建任务流程,在统一的界面进行数据开发和调度配置。运维中心运维中心支持数据时效性保障、任务诊断、影响分析、自动运维、移动运维等功能。
MaxCompute-Java自建UDF入门详解
准备环境1. 安装JDK建议安装JDK 1.8以上版本2. 安装开发工具本文档测试使用IDEA工具,具体安装方式可以参考在线资料。开发流程1. 创建项目创建MaxCompute Studio项目:在MaxCompute Studio项目下创建MaxCompute Java Module,如下所示<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.aliyun.odps.myJava</groupId>
<artifactId>MyFirstModel</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>${sdk.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-udf</artifactId>
<version>${sdk.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-udf-local</artifactId>
<version>${sdk.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-mapred</artifactId>
<version>${sdk.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-mapred-local</artifactId>
<version>${sdk.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-graph</artifactId>
<version>${sdk.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-graph-local</artifactId>
<version>${sdk.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28.odps</version>
</dependency>
</dependencies>
<properties>
<sdk.version>0.36.4-public</sdk.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>2. 开发UDF注意在哪个目录下创建的类,注册的时候注意下类所在的位置)。为了区分,我们创建两个UDF类做验证对比学习,如下所示:3. 本地测试创建测试类,在本地测试,并验证结果符合预期,如下所示:public class MyUDFTest {
@Before
public void start() {
System.out.println("start");
}
@After
public void end() {
System.out.println("end");
}
@Test
public void testMyUDF() {
MyUDF myFirstUDF = new MyUDF();
System.out.println(myFirstUDF.evaluate("zhangsan"));
}
@Test
public void testMyUDFCopy() {
MyUDFCopy myUDFCopy = new MyUDFCopy();
System.out.println(myUDFCopy.evaluate("zhangsan"));
}
}4. 本地打包pom文件添加 <packaging>jarpackaging>, 双击执行Maven命令打jar包,如下所示:打包后这里可以看到对应jar包,如下所示: 5. 上传资源并提交登录Dataworks数据开发控制台,上传资源并提交(开发环境测试可以先不发布),如下所示:6. 注册函数并提交登录Dataworks数据开发控制台,创建函数并提交(开发环境测试可以先不发布)。测试验证写了两个类,注意注册配置的区别,如下所示:7. 创建SQL节点执行验证SELECT MYUDF("zhangsan"),MYUDFCOPY("zhangsan");获取代码由于测试的代码逻辑较为简单, 需要根据实际场景自行编辑逻辑,注意针对入参做下空值处理import com.aliyun.odps.udf.UDF;
public class MyUDF extends UDF {
public String evaluate(String s) {
return "hello" + s;
}
}package com.aliyun;
import com.aliyun.odps.udf.UDF;
public class MyUDFCopy extends UDF {
public String evaluate(String s) {
return "hi:" + s;
}
}
《DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季》电子版地址
《DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季》DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季
电子版下载地址: https://developer.aliyun.com/ebook/3013
电子书:
</div>
数仓规范化——菜鸟数据模型管理实践
导读:本文将分享菜鸟数仓规划过程中的数仓管理模型实践,主要围绕以下内容展开:菜鸟末端业务介绍模型管理整体规划数据建模平台建设总结&展望问答环节分享嘉宾|王智龙 菜鸟 末端数仓公共层模型负责人分享嘉宾|董晃 菜鸟 公共数据数仓研发工程师编辑整理|王鹏 滴滴出行出品社区|DataFun01/菜鸟末端业务介绍1. 菜鸟末端业务简介菜鸟驿站建设的初衷是面向社区和校园,提供最后一公里物流服务平台,为消费者提供包裹代收、包裹代寄等服务,在此基础之上基于社区生活,完善末端驿站的服务能力,为消费者提供更多生活服务,比如驿站洗衣、家电清洗等,这就是菜鸟末端业务的定位。接下来介绍菜鸟末端整体业务的情况。2. 菜鸟末端业务大图业务大图主要分上下两部分,下面是我们业务的核心能力,上面是菜鸟末端的垂直业务。核心能力包括网络建设和硬件打造。网络主要包括网络拓点、网络运营和网络管理。为了提高驿站站点的效率,我们打造了诸多的 IOT 设备,如高拍仪、巴枪、云监控、小票打印机、小易工作台、寄件机等。垂直业务包括代收、寄件、商业化、数智驿站、消费者体验&运营和绿色公益。3. 菜鸟末端业务数仓架构整体设计基于上面的业务大图,接下来讲讲我们的数仓架构:最左边是菜鸟集团使用的统一大数据开发治理平台 DataWorks,DataWorks 中有很多的功能模块,包含数据建模、数据开发、任务调度、数据质量、数据地图、数据安全等等。今天我们将重点介绍的是数据建模部分。右边是从数据生产到数据消费整个链路的数据架构:① 数据源:数据源主要包括业务数据和日志数据,我们通过 DataX/TT (离线/准实时/实时)将数据同步到数仓。② 数据计算:即为数据加工处理,数据加工主要分为 ODS、CDM、DM和 ADM 四层。ODS:贴源层CDM:数据中间层DM 和 ADM 层:DM 主要是在 CDM 基础上对业务实体的再次抽象,从业务视角对数据资产的沉淀,ADM 是数据应用层③ 数据服务:通过菜鸟数据中台自有产品天工对下游产品提供 API 服务。④ 数据应用:在数据服务的基础之上,来构建我们的数据产品、数据专项、业务监控报表和智能算法等数据应用。在整个数仓架构中,数仓中间层的建设起到承上启下的作用,对下兼容和链接了底层数据,对上提供通用、易用、丰富的数据,它的好坏可以说决定了数仓的成败,那么中间层建设经常碰到难题就是数仓规范性,特别是互联网公司业务变化之快、人员流动性大,数仓规范落地是一个非常头疼的问题。接下来我们讲讲菜鸟数仓规范性的一些痛点和对痛点的解决方案。4. 数仓规范化建设遇到的常见痛点基于以上的业务背景和数据架构,我们可以了解到业务数仓规范化核心在数据建模,这也是我们今天为什么要重点介绍规范化数据建模的原因。接下里我们总结了下的数仓规范化建设的核心痛点,具体如下:① 数仓规范和建模实操脱离,很多规范都是在文档里面,在落地上很难。② 中间层不够丰富,烟囱式开发。③ 模型中英文映射词库不丰富命名比较痛苦。④ 模型字段同意不同名。⑤ 模型研发缺少有效的系统工具帮助我们管理好数仓模型。⑥ 表的ER关系不易检索,数据开发不方便。⑦ 资产盘点复杂。⑧ 模型设计问题导致任务报错多,给运维带来很大的挑战。⑨ 无线上体系化的指标衡量数仓。以上是数仓建设常见的问题,接下来我们再来看看末端数仓规范性存在的问题。5. 末端数仓规范性存在的问题分析从以上数据可以看出末端数仓主要问题还是在中间层覆盖度,模型复用性、稳定性、健壮性、数据成本上。这些问题背后的具体原因如下:① 公共层覆盖不足:数据建设过度依赖需求驱动,缺乏业务数据建设的整体规划和思考,后续一些场景不能快速地满足业务,导致的问题就是应用层直接先用 S 层的表满足业务的需求。② 核心模型复用性不足:前期对业务了解不深入或考虑不周,导致后续无法满足业务需求,只能新建模型或者下游直接依赖 S 层。③ 核心模型稳定性不足:模型对上游的依赖太深,有些模型依赖层次 10 层以上跨BU、跨团队依赖较多,保障难度加大混层引用较多,比如 DWD 层反向依赖 ADM 应用层的表④ 模型健壮性不足:模型设计不合理,业务不断变化时,对模型的冲击较大需投入更多的人力。⑤ 数据成本不断增长:不合理的数据生命周期设置不合理的模型设计以全量表作为主模型,还有过渡的模型设计,比如小时表。这些不好的设计对我们的成本都会有较大的影响⑥ 数据规范和易用性不足:表和字段的命名规范执行不足;缺乏指标的统一管理;缺乏统一的数据大图,精品表识别推荐,下游找数难。以上问题的本质主要在数据模型、数据规范管控落地上,所以线上模型管理和规范管控是我们的重点。--02/模型管理整体规划1. 数仓规范化——菜鸟模型管理整体目标菜鸟数仓从稳定性、扩展性、时效性、易用性和成本几大方面制定了模型管理的目标。稳定性:完善我们数据产出时效和数据质量稳定性,以我们的值班起夜次数和基线破线率、数据质量工单主动发现率为目标 。扩展性:提升模型变化的兼容性,达到底层业务变动与上层需求变动对模型冲击最小化,以业务需求支持效率和业务模块新建核心表数量为目标。时效型:提升数据模型产出时效以及需求响应速度,以值班起夜次数和业务需求及时交付率为目标。易用性:降低下游使用门槛,复杂逻辑前置,通过冗余维度和事实表,进行公共计算逻辑下沉,明细与汇总共存等为业务提供灵活性,以数仓丰富度为目标。成本:避免烟囱式的重复建设以及优化不合理任务消耗,节约计算、存储成本,以成本执行率为目标。2. 数仓规范化——菜鸟模型管理整体方案围绕以上 5 点目标,我们的模型管理方案主要包含两部分,分别是模型线上化与模型管理&评估。模型线上化,我们需要有“数据架构委员会”这样的组织保障团队,即搭建架构师团队,并将模型管理责任到数据负责人;接着我们需拟定数仓的规范制度,例如数据模型规范、数仓公共开发规范、数仓命名规范等;最后我们将规范制度和模型负责人通过产品工具 DataWorks 智能数据建模产品进行落地。完成模型线上化只是第一步,接下来模型管理&评估是我们的重点,我们要做到事前模型评审、事中模型评估打分、事后模型治理推送,实现模型管理的闭环,促进模型不断优化和完善。模型线上化主要分为正向建模和逆向建模 2 种方式:正向建模:新模型通过 DataWorks 智能建模平台完成模型线上设计、评审、发布,实现模型后续线上化管理。逆向建模:存量模型借助 DataWorks 智能建模平台逆向导入的方式实现模型线上化管理,同时也能对我们数仓模型做一次全面的盘点。3. 数仓规范化——正向建模实施流程正向建模实施流程分为七个步骤,通过 DataWorks 的数据建模即可实现,如下图所示:4. 数仓规范化——逆向建模实施流程逆向建模实施流程分为五个步骤:通过逆向建模,我们对数仓的业务过程有了更全面清晰的认识和了解,同时对历史无人维护、低价值模型,进行了下线。最终完成了存量模型 100% 线上化管理。我们在逆向建模过程中也发现一些问题,多年积攒下来的历史包袱,导致数据质量存在风险;多套规范并存,导致命名混乱;相似模型和低价值模型较多。--03/数据建模平台建设DataWorks 数据建模平台是菜鸟、大淘系(淘宝/天猫)、盒马、本地生活等多个部门和阿里云 DataWorks 团队共建的基于维度建模的数据数仓建模平台,菜鸟集团作为较早参与的部门,从 2020 年开始与 DataWorks 团队完成了产品从需求、开发、落地、迭代的整个周期。1. 智能数据建模平台规划菜鸟通过对所需功能进行梳理,总结出从规范定义、便捷开发、发布评审、业务管理四个模块来研发这个建模工具:① 规范定义:在前期,菜鸟是没有这个数据建模平台的,大家都是以线下的建模方式,比如对 Excel 梳理后,进行数据探查之后进行模型的设计,然后再线下进行模型评审。整个模型设计和评审都在线下。最终导致大家数据建模的时候没有形成一个规范,数据开发的过程是不严谨的,下游有了大量的引用之后,切换的成本也非常高,模型维护的成本非常高,变得越来越差。所以我们希望将规范的定义搬到线上,上图中列出了线上规范定义的主要内容。② 发布评审:之前我们的评审也是在线下进行,在架构师和工程师比较忙的时候,评审流程就不够严谨,甚至没有走评审的过程就直接发布了,所以我们希望将这个功能也搬到线上去。发布前我们会对表命名、字段命名进行强校验,同时支持多引擎发布,比如我们的离线数据存在 MaxCompute 或者 Hive 上面,还有一部分数据存在 MySQL 或者 Oracle 上面等等。影响性检查是模型发布之后,对于下游的引用这个模型的 ETL 脚本是不是有一些影响,比如有的时候我们新增了一个字段,下游同学使用的时候是 Select * 的方式,而他的表没有新增的这个字段,就会导致下游任务报错。③ 便捷开发:这是核心重要的一点。我们希望将建模方式从线下搬到线上之后,不要影响大家的开发效率,所以我们设计了各种提高效率的便捷开发功能。④ 业务管理:这是从使用的角度上来说的。对于研发人员来说,我们有业务分类和数据域的视角,对于业务人员来说,我们提供数仓大图和数据字典的视角。从成本治理的角度来说,比如一些历史上的模型可以做归并或下线。菜鸟集团将以上能力与 DataWorks 的数据建模平台紧密结合,沉淀了数仓规划、数据标准、数据建模、数据指标四大核心功能模块,接下来将为大家逐一介绍菜鸟集团的使用情况。2. 智能数据建模平台核心功能3. 核心功能——规范定义规范定义分为分层划域和表名规范两个部分:① 分层划域:我们将数据分为 ODS、DWD、DWS、ADS 和 DIM 五层。我们有 12 大级的业务分类,菜鸟就是其中的一个业务分类。同时业务分类下面还有一些子级的业务分类。有 13 个数据域,比如快递、财务等等和若干的业务过程。② 表名规范:我们有 6 类的表名命名规范。因为在业务发展的过程中,之前可能业务分类只定了一级,后面发现一级业务大类并不能帮助我们在数仓建模的过程中有效地表现规范性,于是就迭代出二级业务分类。4. 核心功能——逆向建模无论是维度建模和 Fast 建模,都要经过概念模型设计、逻辑模型设计和物理模型设计三个必要阶段。逆向建模是物理模型设计到逻辑模型设计的过程,也就是Hive数据库已经有了 N 张表,需要把它反向到逻辑模型中,这就是一个逆向的过程。需要逆向建模的大部分是历史的不规范的表,菜鸟对于这些表是没有改造要求的,这些表可以通过批量逆向和FML批量调整来实现逆向建模。批量逆向设计的主要目的是将几千张表顺移到数据仓库里面,通过表名的正则表达式匹配进行一个批量的逆向。正则匹配只针对当前遵守最新规范的表,对于不是很规范的表可以通过FML批量调整。FML(Fast Modeling Language)是 DataWorks 团队开源的,用于维度建模领域快速构建的 DSL 语言,主要目标是提供一套 Kimball 维度建模理论下,结合大数据开发场景下的一种领域特定语言。原来的 Hive 建表的时候我们不能指定业务分类、数据域和业务过程的,现在通过 FML 语言就可以调整,这样就可以对不规范的表进行批量调整。5. 核心功能——多表克隆之前在模型设计的过程中,最常用的一个建模过程就是对源表进行数据探查,再进行模型设计。我们可能需要从 N 张表中选取我们所需要的字段,对已有的表的字段进行勾选、顺序调整,最终形成一个逻辑模型。以前在线下对这样的过程可能就是从 Excel 中将多张表的字段全部拷贝出来,选取自己所需要的字段,再进行一个字段排序等等。现在我们可以通过多表克隆功能选取我们所需要的表,这些表可能不仅仅是我们自己 ODS 层的表,也可能跨 Project、跨企业引用,在多表克隆界面这些表都可以被选择,通过勾选字段的方式来建模,并生成简单的 ETL 脚本,省去自己手动写许多ETL脚本的过程。6. 核心功能——代码模式代码模式是在研发过程中比较提效的一个功能。有时候上游的产品或者研发发布了功能之后,会给数仓开发同学一个简单的脚本来告诉数仓怎么来取数。数仓开发同学需要评估是不是要在数仓中新增一张表,数仓开发同学希望直接将脚本提交到建模平台上去,这个脚本基于数仓开发同学选择的字段或定义的一些简单函数(比如 SUM)还有别名,将这些字段自动归并到模型的字段中去,这就是代码模式的主要功能。代码模式必须定义好表命名并保存,才可使用。7. 核心功能——Excel代码模式有些数仓开发同学,对 Excel 操作很熟练,觉得 Excel 操作很方便。所以这里设计了 Excel 批量导入和 Excel 交互两个功能。Excel 批量导入通过标准模板,定义表名、业务分类、字段、字段类型、字段备注等等,然后将这些模板批量导入到建模平台。另外一个功能是 Excel 交互,该功能可与本地 Excel 无缝衔接。批量导入之后,如果想修改 Excel 里的某些东西,可以将内容拷贝到本地 Excel,修改完后再将本地 Excel 拷贝到建模平台,Excel 交互界面右键集成了常用的批量操作,方便使用。8. 核心功能——发布评审之前菜鸟的数仓是没有这个环节的,现在希望将这个功能给用起来。评审按照数据域的划分定义评审人,实现评审组功能,一人通过即通过。目前只实现简单评审流程,模型相似度、描述丰富度、血缘等衡量模型好坏的指标、辅助评审都在后续的规划中。这个功能首先是用在模型评审时,其次是用在数据治理时,已经产出的模型也可以根据模型相似度、描述丰富度、血缘等衡量模型好坏的指标,辅助开发同学进行模型的优化。9. 核心功能——智能翻译智能翻译是一个比较重量级的功能。企业的数仓中有很多的命名的词典,将常用的中文对应的英文作为数仓的一个规范,目的是为了保证数仓模型有一个统一的辨识度,智能翻译完成中文的翻译与词根的维护。10. 核心功能——数仓大图基于业务使用视角,我们提供了数据字典,通过平台导出功能,可以生成Excel格式的数据字典,包括表名、分层、数据域、业务过程、字段等详细信息,提供给业务人员使用。数仓大图没有在数据建模平台实现,DataWorks 团队正在研发一个数据资产管理平台,将会实现一个 3D 的资产全景构建。--04/总结&展望1. 菜鸟数据模型管理建设成果菜鸟数仓团队从 2020 年开始与 DataWorks 团队不断共建智能数据建模产品,从最初版简单的录入系统,到集成逆向建模、多表克隆、多种引擎的代码模式、Excel 交互等功能,极大提升了建模规范和研发效率,成为菜鸟落地数仓规范的统一平台,取得的建设成果如下:规范:辅助数据体系规范化建设,将规范落到实处,同时将菜鸟几千张模型表,逆向建模到我们建模平台上来。降本:在逆向过程中我们发现了历史上很多不规范的表,或者需要合并的表,或者表已经没有下游访问了,这时候就可以将模型表删除,物理表下线,过程中我们整体下线了 15% 的模型表,对于我们降本的方面还是比较明显的。沉淀:把建模的过程从线下转为线上,沉淀企业级核心数据资产。提效:减少人员沟通成本,产品化支持快速建模以及开发打通,并且不会降低我们建模和研发的效率,开发效率大概提升 30% 左右。多样:面向业务视角自顶向下进行规范建模与面向开发视角自底向上构建数仓,双管齐下,相辅相成。从 0 到 1,自顶向下是最规范的,但是开发过程中,1 个小的需求,面向业务的,也可以在这个建模平台上完成。使用人数:在产品使用方面,我们已经让菜鸟的末端团队与公共团队全员使用数据建模平台。2. 建设成果展示下图是之前提到的分层划域等建设成果3. 菜鸟数仓管理体系未来建设计划模型管理体系是我们数据建模平台未来计划要集成的一个功能,主要有以下 5 个方面。研发规范健康分:包括命名规范、注释、SQL、数据类型的规范等。数据质量健康分:是否设置了主键、是否有异常比如今天有10条数据,明天有 100 条数据,是否在业务允许波动的范围以内。计算/存储健康分:包括简单加工、是否有下游、模型表是否有生命周期,有些表访问的是近 3 个月的数据,但是保存了近 10 年的数据,这个时候可以调整生命周期。稳定性健康分:菜鸟的数仓稳定性保证是有基线与值班机制的,我们的 DataWorks 监控基线是否破线,以及数据延迟/报警导致的值班起夜率是我们重点考量的。通用健康分:复用度展现我们模型表下游的访问度如何,完善度展现模型表信息的完整性,我们的业务人员拿到这张表后是否可以理解,以及模型的相似度、血缘的相似度等等。--05/问答环节Q1:菜鸟的建模是基于 DataWorks 做定制化开发吗?A1:建模平台是我们和 DataWorks 共建的,我们是建模平台的一个使用方,也会把使用中的一些问题提给 DataWorks 来迭代优化。外部用户也可以在阿里云上开通 DataWorks 来体验这个数据建模产品,和集团内的版本没有太多区别。Q2:历史数据有变动的情况,每一层应该怎么处理?A2:对于历史变更比较频繁的数据,建议做一个历史全量表。对于变更不频繁的数据,建议做一个每日增量,比如说最近 90 天变更。这个可以根据业务数据变更的频繁程度来做一个合适的模型设计。Q3:模型是怎么打分的?怎么控制数仓 SQL 规范?开发人员写 SQL 容易出现跨层依赖。A3:首先是 SQL 规范,DataWorks 提供了很多检查器的功能,可以监测到数据上很大一部分问题,比如 Select *。其次是模型打分,主要从模型的规范和成本、稳定性和通用性来评估模型的好坏,将这几个维度综合起来来给模型打一个分。Q4:正向数据模型只是建一个表结构吗?建模后如何灌入数据?与宽表打通?A4:正向数据模型不只是建一个表结构,还需要将模型物理化,物理化后再进行数据的灌入,后续还有很多 ETL 开发功能在里面。今天的分享就到这里,谢谢大家。DataWorks数据建模首月199元(最大数量50)折扣体验>>任意规格,新购/续费5折(需要保有增值版本)>>分享嘉宾王智龙|菜鸟 末端数仓公共层模型负责人王智龙,花名志龙,在阿里8年多的时间,参与了集团HR数据以及物流数据建设,目前负责菜鸟末端业务数据建设。董晃|菜鸟 公共数据数仓研发工程师菜鸟客服业务数仓工程师。
【商业化通知】DataWorks智能数据建模开启商业化收费
感谢您在公测期间对DataWorks智能数据建模的支持,产品将在2022年4月26日开启商业化收费,您在公测期间的模型将全部保留,商业化后模型保留不产生费用,但您的模型将无法进行增删改等操作,需付费开通DataWorks增值版本与智能数据建模进行使用,具体定价请参考DataWorks智能数据建模定价。具体定价请参考DataWorks智能数据建模定价。首月199元(最大数量50)折扣体验>>任意规格,新购/续费5折(需要保有增值版本)>>
阿里云DataWorks荣获DAMA中国数据治理优秀产品奖
DAMA(国际数据管理协会)是一个全球性的专业组织,协会自1980年成立以来,一直致力于数据管理和数字化的研究、实践及相关知识体系的建设,先后发行了《DAMA 数据管理字典》和《DAMA数据管理的知识体系》等,该知识体系已被广泛使用,逐渐成为业界的标杆和权威。目前协会在全球有会员2万人,分会52个。2022年12月3日,2022 DAMA中国数据管理峰会(线上部分)成功举行,汇聚多位世界级数据大咖分享,阿里云DataWorks凭借全链路数据治理产品体系,丰富的行业客户最佳实践案例,获得“DAMA中国数据治理优秀产品奖”。产品简介阿里云DataWorks基于阿里巴巴自研的ODPS一体化大数据智能计算平台(MaxCompute/Hologres),开源大数据计算平台EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。作为阿里巴巴数据中台的建设者,DataWorks从2009年起不断沉淀阿里巴巴大数据建设方法论,包含数据建模、数据集成、数据开发、数据运维、数据资产、数据治理、数据质量、数据安全、数据分析、数据服务等数据处理全链路流程,以一站式的大数据开发治理平台能力,满足数据治理中关于规范、稳定、质量、管理、安全、分析、服务等各个方面的诉求。DataWorks数据治理中心提供了全套的数据治理健康分模型。这套模型从阿里巴巴集团内部数据治理经验沉淀出来,涉及研发、存储、计算、安全、质量五个方面,近百个计分维度,可以通过量化的手段评估企业数据治理的工作,让书面的数据治理规章制度落地成为常态化的数据治理工作,避免“运动式”的数据治理。目前DataWorks已经累计为云上客户发现100万+数据治理问题,问题处理率达到60%。权威机构认证此前,DataWorks已经获得众多国内外权威机构认证作为国内唯一厂商挺进Forrester云数据仓库卓越表现者象限以23.4%份额获得IDC评估2021中国数据治理平台市场份额第一成为首个通过中国信通院数据平台整体解决方案最高等级先进级(3级)的产品客户案例DataWorks客户覆盖了工业制造、能源、汽车、金融、零售、政务、互联网等等行业,既有大型央国企、世界500强企业,也有成立不久的中小企业,全方位满足不同行业,不同企业发展阶段的大数据开发治理需求。友邦人寿基于阿里云 ODPS 建设云上数据中台,实现内部数据统一的开发、服务、治理,数据处理效率提升 20 倍,整体成本优化数百万元。国家电网大数据中心通过DataWorks实现总部+27家省(市)公司PB级数据的统一管理,通过全链路数据中台的治理与监测运营体系,加快电网整体数字化转型升级。亿滋中国通过智能数据建模进行全链路数据模型治理,极大提升数据中台自服务能⼒,让企业数据决策实现下放,释放新零售的数字化力量。分贝通在大数据体系建设一年后通过数据建模进行整个数仓的规范化设计,提升数据开发效率与质量,构建“软件+支付”的下一代企业支出管理平台。回归工具为人服务的本质,DataWorks从人的视角出发,通过全链路数据开发治理平台,让企业的开发人员减少低效的重复劳动,让数据人员的工作效率保持螺旋式的上升,全方位提升企业数据效率,为企业降本增效。
百问求答(2)大数据专场来啦!写回答赢大奖!
活动已结束获奖名单如下,请获奖同学前往积分商城兑换奖品百问求答第1期活动获得了众多用户的参与与支持,为了让更多人的困惑得到解答,第二期大数据专场来啦!参与回答,赢取大奖!还有机会成为“乘风问答官”,享受问答最高荣誉与权益。奖项设置奖项奖品获奖条件参与奖50积分切合题意的回答数量≥10条二等奖小米米家蓝牙温湿度计+乘风问答官名额切合题意的回答数量≥30条一等奖小米有品映趣剃须刀+乘风问答官名额切题题意的回答数量≥50条,且200字以上图文结合的回答超过3条 注:问题已有解答,但你有其他解决方案也可作答,将记录在内;若回答雷同,将不计数。活动流程:回答文末中任一的问题,即视为参与本次活动;钉钉扫码入群,第一时间获取活动进度及获奖名单。活动时间2022年11月21日至11月30日24:00获奖名单公布及奖品邮寄时间获奖名单将于活动结束后3个工作日公布,奖品将于7个工作日内进行发放,节假日顺延。活动规则1、 回答仅限下文链接中的问题,其他回答不计数;2、 请回答能力范围内的问题,充数回答或与问题无关的答案将不计算在内;3、 回答需为中文,英文不记录数据(代码除外);4、 回答发布后将进入审核状态,审核完成即可查看;5、 标题党、黑稿、通稿、包含违法违规、未被许可的商业推广、外站链接、非原创内容、营销软文、抄袭嫌疑的文章审核将不予通过,同时取消参赛资格。待回答的问题链接flink有一个问题 flink cdc 使用sql 进行group by 录入的时候,长时间会造成内存溢出吗为什么2.3的flink cdc 抽的binlog的时间是0?flink SQL能获取到op字段在select里面查出来吗?问一下FlinkSQL有什么可视化工具吗?各位有个问题请教一下,我部署的是flink on yarn session ,3台机器,启动时候-n各位大佬,oracle cdc使用的时候因为数据变化量比较大导致在flink同步的时候,整个oracle被拖的非常慢,这个有什么比较好的解决方案吗?oracle cdc是不是本身就不是很健全,要做oracle的实时同步有什么比较好方式吗请教下各位,不知道flink cdc同步mysql数据库的数据跟datahub、dataworks或者是hologres的关系。我现在想利用flinkcdc和hologres做实时数仓。flink cdc到holo 的方法不是很清楚。若果可以的话能否提供些demo或者资料,感谢,打扰了。请教下,我之前将数据通过DataHub再到DataWorks做离线数仓。现在想用flink cdc和Hologres做一个试试数仓。 在搭建实时数仓的时候从flink cdc 同步的数据是先到datahub还是直接到hologres呢?关于这个问题我还没想好。 从flink cdc 来的数据是原数据,在进holo之前还想有个清理的过程。有flink cdc 取mysql数据直接到holo的方法么?请教个问题,用flink读本地文件可以得到输出结果,但是提交到flink单机模式服务器上执行jar包就看不到输出结果,任务2秒就结束了,也没有报错日志,有大神知道是什么原因吗各位大佬,请教一下,如果在flink cdc sql客户端 使用SQL查询表,怎么能记录原系统的数据是变更还是删除操作状态及时间呢?flink sql 创建后,源库删除,目标不删除,这个操作有好的解决方法没呀?取消 flink 作业后 ,发现 flink 所在的 taskmanage 挂掉了。上面的 flink job 没有自动迁移到别的机器,一直重启中,这是什么原因呢 taskmanage 挂掉, job 应该会自动迁移到别的机器吧?flink cdc 抽MySQL数据,一开始抽一张表,checkpoint成功了,后面加了一张表,然后用一张表的时候的checkpoint路径启动,发现抽不了数,也不报错,什么原因?各位大佬,请教个问题,使用flink cdc读取数据时,如果配置一个表,数据过滤是发生在server端,即只读取一个表,发送一个表的数据;还是读取整个库的数据,发送到client端,然后在client端过滤出配置的表?我使用flink cdc StartupOptions.latest() 采最新的日志。要是程序挂了,这个是继续上次的偏移量进行采集。还是从最新的开始啊?我现在flink服务启动之后,占用的cpu有点多,20%-30%。服务器是64核的。这样正常吗?flink cdc 怎么做断点续传啊flink sql 可不可以实现 过滤某种操作事件请教下有flink cdc 对接mysql5.6的demo么?我这边显示各种包错误请问大家,flink CDC说是支持clickhouse,但是我使用jdbc connector报错,在flink官网也没找到clickhouse connector。 这是需要自己开发么?大佬们,flink cdc如何限制拉取的数量?flink内存不多我们公司有最近有这个需求,把oracle数据抽取到clickhouse,在技术选型上看到flinkcdc跟chunjun,感觉都能做,不知道有哪些不一样的地方大家有测试过 一个脚本采用flink cdc 同步mysql 能同时同步多少表吗 ?大佬们,flink这个ck一直在这个状态,可能是什么原因?各位,Flink 的离线计算的数据是怎么存放的?是存在 HDFS(或Hive)上的吗?jdbc_2.12-1.14.4 sink支持回撤流吗?似乎flink sql中-D的数据并不能执行有人知道,这个在任务提交到flink集群的时候怎么做么?提交flink任务的机器上是时间是UTC时间 为啥提交jar包之后 在flink web ui 显示的是北京时间呢?有大佬能说下原因吗?有大佬知道flink监控的这块数据的源码实现是在哪里的吗?大佬们,我在用flink cdc 采集mysql表时,表里面有一个字段是 `signed_pdf`有Flink cdc Oracle 商用的嘛?有谁知道flink cdc连接后,读不到归档日志是什么问题?在别的环境好好的,换个环境里不行,代码也不报错请教一个小白的问题,我看官网上flink cdc 2.2.* 版本 支持 flink 1.13., 1.14. ,1.15 及以后的flink版本不能用cdc吗?flink 1.15.2 sql cli 创建catalog报错这个flink cdc 2.0 是分片机制,全量同步,怎么保障顺序同步?状态需要顺序的flink 15版本cdc connector同步mysql的数据,本地能拉取到数据,打jar包之后提交就拉取不到变更数据了,而且看不到错误日志?有人遇到过这个情况吗?flink采集mysql的数据,设置的StartupOptions.initial() ,理论上应该是读取完快照数据后,切换为读取binlog数据,但是现在不读了各位, 请问: flink cdc, 用 flink sql 的方式 sink 到 kafka 可以指定输出 schema 信息嘛? 看到好像只有 api 中可以指定 .deserializer(new JsonDebeziumDeserializationSchema(true)). flink sql 没办法嘛?Flink CDC支持计算列吗?请问flink cdc oracle 可以实现从oracle 19c的备库(data guard),实时同步数据吗?Flink On Yarn模式,有办法可以固定jobmanager.rpc.port端口吗?我使用的cdc是2.2.0版本,flink是1.14.3版本,自己编译的jar包。但是我允许github上的官方样例代码报错flink cdc读取oracle数据,需要的最小权限列表是什么,DBA反馈给的权限过大,不同意这么flink cdc内置了kafka 监听binlog文件的时候 是把所有监听的数据写入kafka的请问有人知道在flink cdc读取oracle的数据表或视图时,这个oracle用户需要具备哪些权限呢?目前我测试单表只读权限的用户提示权限不足。datawork请问下,我的业务场景是有个字段是身份证号,我需要用正则表达式控制这个字段的质量,dataworks的功能支持吗?请问dataworks迁移助手在3.12版本有没有dataworks的临时查询里面我建表,也提示成功了,怎么不找建好的表呢Dataworks 的ip 在哪里看?新增数据源的时候要,添加到数据库的白名单这边使用dataworks离线同步时,源端es,对端也是es出现了上述脏数据是为什么datawork这个地方的错误信息我要看到全部 怎么看啊?datawork数据集成的时候想把数据库中除某个字段外其他的值更新了,怎么写啊 bi连接dataworks数据源 问一下生产环境 这块咋开启呀 我现在有表的权限都授予了 但是还是无法同步datawork请问执行sql时报错quota not enough,请问是什么问题datawork这个同步任务为什么会空指针啊datawork要删掉一个数据集成,但是这个数据集成里面也找不到这个数据集成,里面生成的表已经被删掉了,然后生产环境里面找不到这个数据集成,但是大数据局那边有这个数据集成说是失败,那这个数据集成要怎么彻底从生产环境删掉呢dataworks有可以在工作空间设置全局变量的地方吗?dataworks动态阈值监控规则是15天才能触发嘛?dataworks中导入本地数据的时候预览都正常,正式导入报这个错是为什么?dataworks中数据源配置备库,并且数据集成使用独享资源组,为什么还会走主库?hologresholo查询耗时突然增加了是怎么回事?问下jdbc写入holo 有什么方式能提高写入效率吗?holo的向量化执行这块都在哪些地方使用了simd指令了啊,这个有文档介绍吗其他请问一下数据集成elasticsearch数据配置时间过滤,读取不到数据,是我配置的哪里有问题吗,配置条件过滤是可以读取出数据的pyodps报错,怎么回事呀实时同步数据到odps后,当天的分区数据只能第二天看到? 如何同步opds 表数据 同步到 阿里elasticsearch请问如果我同步的hive表是分区表,分区字段是insert date,在配置离线同步界面应该怎么弄呀?这样好像不太对quick BI链接数据源能查看所有的表,是什么原因呢 datahub往maxcompute用Connector同步数据 为啥自动生成了一个rowkey得列odps同步到mysql脏数据报错,因为底层数据包含表情符号,但mysql的库表字段字符集都改成utf8mb4了,现在要怎么操作呢请问一下集群id和emr实例id怎么获取到???怎么编写任务 有demo吗?简单模式,授权给用户开发角色后,这个用户删除表报权限不足,该如何处理通过向导模式配置离线同步任务和通过向导模式配置离线同步任务2.0看哪个?数据集成连接达梦数据库,但数据集成不支持向导模式,哪位大佬帮我看看这个josn是啥意思有一个问题咨询一下 是不是行式存储 一般都建议用clustering key ,这个可以用2列字段如果我还有第三个字段要设置索引,这个时候你建议怎么做?请问这是什么原因??问下我一次性任务会出现调度呢?我想用insert_date字段作为我的分区信息,这样配置对吗?之前配置一个实时同步数据库到Kafka的任务,开发和生产都会同步,为什么改了?数据保护伞中,数据发现界面,查询条件中如何添加其他项目空间执行补数据任务空跑是什么原因业务分类下面是可以关联数据域和数据集市的,创建数据集市的时候可以选择关联的业务分类。而创建数据域的时候无法选择关联的业务分类是啥原因啊?请问大家,天ds,小时hh,周和月分区是如何命名的?我使用数据实时同步的时候发现有个字段在库里有值但是拉取后就没有了请问这个是什么情况呀?数据集成界面怎么又变动变为了这种形式我可以自定义格式化吗脚本中有个变量的,,现在单独放在资源组里面,赋值节点调用的时候能传参进去吗为啥返回Null?用keyvalue函数请问API怎么实现不通单位获取数据的权限控制啊打算一个项目一个项目切,新项目划出CU了 但是必须把老项目都换个资源组吗? 麻烦问下rowdata怎么转成string或者json
DataWorks售前咨询
DataWorks计费体系可概略视为由功能费用与资源费用两部分组成,计费体系中各计费项的计费模式包含包年包月与按量付费两种计费形式,以满足不同场景下用户选购使用的需求。可以查看帮助文档了解计费详情若您还有其他购买、升降配、退订、使用等产品相关问题,可以使用钉钉扫码加入DataWorks钉钉交流群沟通与咨询。
MaxCompute客户端工具使用
环境准备1. 安装Java 8或以上版本的环境2.创建MaxCompute项目 3.使用MaxCompute客户端的RAM用户已被添加至MaxCompute项目所属的DataWorks工作空间。 添加工作空间成员并设置角色。安装使用1.下载下载后解压到本地打开目录查看2.配置文件如下,保存后退出(注意:本地连接一定使用外网域名)主要配置包括下面4个project_name=项目名称access_id=AK信息access_key=SK信息end_point=http://service.cn-hangzhou.maxcompute.aliyun.com/apiproject_name=项目名称
access_id=xxxxxxxxxxxxxxxxxxxx
access_key=xxxxxxxxxxxxxxxxxxxxxxxxxxx
end_point=http://service.cn-hangzhou.maxcompute.aliyun.com/api
log_view_host=log_view_host=http://logview.odps.aliyun.com
https_check=true
# confirm threshold for query input size(unit: GB)
data_size_confirm=100.0
# this url is for odpscmd update
update_url=http://repo.aliyun.com/odpscmd
# download sql results by instance tunnel
use_instance_tunnel=true
# the max records when download sql results by instance tunnel
instance_tunnel_max_record=10000
# IMPORTANT:
# If leaving tunnel_endpoint untouched, console will try to automatically get one from odps service, which might charge networking fees in some cases.
# Please refer to https://help.aliyun.com/document_detail/34951.html
# tunnel_endpoint=
# use set.<key>=<value> to set flags when console launched
# e.g. set.odps.sql.select.output.format=csv3.启动在系统的命令行执行窗口,进入MaxCompute客户端安装路径下的bin目录,执行odpscmd命令(Windows系统)或sh odpscmd(Linux系统或Mac系统),即可启动MaxCompute客户端。返回如下信息,表明已成功连接MaxCompute项目4.建表创建一张表,名称为 "haha", 可在dataworks控制台或odpscmd直接运行CREATE TABLE IF NOT EXISTS haha
(
age BIGINT COMMENT '年龄',
job STRING COMMENT '工作类型',
marital STRING COMMENT '婚否',
education STRING COMMENT '教育程度',
default STRING COMMENT '是否有信用卡',
housing STRING COMMENT '房贷',
loan STRING COMMENT '贷款',
contact STRING COMMENT '联系途径',
month STRING COMMENT '月份',
day_of_week STRING COMMENT '星期几',
duration STRING COMMENT '持续时间',
campaign BIGINT COMMENT '本次活动联系的次数',
pdays DOUBLE COMMENT '与上一次联系的时间间隔',
previous DOUBLE COMMENT '之前与客户联系的次数',
poutcome STRING COMMENT '之前市场活动的结果',
emp_var_rate DOUBLE COMMENT '就业变化速率',
cons_price_idx DOUBLE COMMENT '消费者物价指数',
cons_conf_idx DOUBLE COMMENT '消费者信心指数',
euribor3m DOUBLE COMMENT '欧元存款利率',
nr_employed DOUBLE COMMENT '职工人数',
y BIGINT COMMENT '是否有定期存款'
)
COMMENT 'haha' LIFECYCLE 10;5.准备数据数据为本地txt文件,放在C盘根目录下44,blue-collar,married,basic.4y,unknown,yes,no,cellular,aug,thu,210,1,999,0,nonexistent,1.4,93.444,-36.1,4.963,5228.1,0
53,technician,married,unknown,no,no,no,cellular,nov,fri,138,1,999,0,nonexistent,-0.1,93.2,-42,4.021,5195.8,0
28,management,single,university.degree,no,yes,no,cellular,jun,thu,339,3,6,2,success,-1.7,94.055,-39.8,0.729,4991.6,1
39,services,married,high.school,no,no,no,cellular,apr,fri,185,2,999,0,nonexistent,-1.8,93.075,-47.1,1.405,5099.1,06.上传执行上传命令 Tunnel操作Tunnel upload C:\hello.txt haha;7.验证select * from haha;常见问题1.启动报错 failed: ODPS-0410042:Invalid signature value - User signature dose not match.解决: AK或者SK信息配置有误,请修改正确的信息2.Accessing project ‘projectname’ failed: ODPS-0420111: Project not found - 'projectname'.解决: 在项目管理页签获取正确的MaxCompute项目名称后,修改odps_config.ini配置文件的项目名称
同步Hive表数据报block文件不存在问题 java.io.FileNotFoundException: File does not exist
问题描述Hive Reader 配置readMode为hdfs方式的情况下同步Hive表数据报block文件不存在问题: java.io.FileNotFoundException: File does not exist: /user/hive/warehouse/...问题原因1、Hive Reader配置readMode为hdfs方式的时候,底层读取数据的方式是基于HDFS文件方式读取数据,会先在HDFS上根据表找到数据对应的Block块,然后同步。出现上面报错的原因是找到表数据对应的块的数据还没有进行同步的时候,客户侧有做表数据删除等变更操作,或者表数据块文件删除的操作都有可能导致HiveReader在读取块数据的时候发现块不存在了,然后报: File does not exist2、出现这个报错的概率比较低,数据量少的时候,同步速度快基本不会有这个问题,数据量特别大,同步速度慢,同步过程中客户有对数据进行操作就有可能会造成这个问题。解决方案以HDFS模式同步的时候保证不对表数据做变更可以避免,其次就是修改readMode为JDBC模式,该模式Hive引擎底层可能会生成MapReduce任务效率比HDFS模式慢,但是不会出现上述数据文件找不到的问题。适用范围大数据开发治理平台 DataWorks