通过DAYU发现数据质量问题,挖掘数据价值
引导式阅读
Others
通过DAYU发现数据质量问题,挖掘数据价值
作者
HDC.Cloud
上架时间
2020-01-10 17:06:43

通过DAYU发现数据质量问题,挖掘数据价值

您在体验过程中有任何疑问,都可以在此留言反馈>> 问题反馈

1. 介绍

什么是DAYU?

智能数据湖运营平台(DAYU)是为了应对数据语言不统一、数据找不到、数据读不懂、数据不可信等挑战,针对企业数字化运营诉求提供的数据全生命周期管理、具有智能数据管理能力的一站式治理运营平台,包含数据集成、规范设计、数据开发、数据质量监控、数据资产管理、数据服务等功能,支持行业知识库智能化建设,支持大数据存储、大数据计算分析引擎等数据底座,帮助企业快速构建从数据接入到数据分析的端到端智能数据系统,消除数据孤岛,统一数据标准,加快数据变现,实现数字化转型。

产品架构如下图:

ma_pipeline

产品优势

  • 一站式数据运营平台

    贯穿数据全流程的一站式治理运营平台,提供全域数据集成、标准规范设计、连接并萃取数据价值、全流程数据质量监控、统一数据资产管理、数据开放服务等,帮助企业构建完整的数据中台解决方案。

  • 可复用行业知识库

    提供垂直行业可复用的领域知识库,涵盖行业数据标准、行业领域模型、行业数据主题库、行业算法库和行业指标库等,支持智慧政务、智慧税务、智慧园区等行业,帮助企业快速定制数据运营端到端解决方案。

  • 丰富的数据开发类型

    支持多人在线协作开发,脚本开发可支持SQL、Shell在线编辑、实时查询;作业开发可支持CDM、SQL、MR、Shell、MLS、Spark等多种数据处理节点,提供丰富的调度配置策略与海量的作业调度能力。

  • 全链路数据治理管控

    数据全生命周期管控,提供数据规范定义及可视化的模型设计,智能化的帮助用户生成数据处理代码,数据处理全流程质量监控,异常事件实时通知。

  • 统一数据资产管理

    全局资产视图、快速查看、智能管理、数据溯源和数据开放共享,从业务视角管理和查看数据,定义业务架构、业务分类和业务术语,统一管理资产访问权限。

案例内容

​ 在本案例中, 您将使用DAYU的完成从数据集成、数据开发数据服务等功能,快速构建从数据接入到数据分析的端到端智能数据系统。

案例目标

  • 掌握使用DAYU构建从数据接入到数据分析的端到端智能数据系统。

您需要准备什么?

  • 一台电脑(Windows,Mac或Linux操作系统)

  • 谷歌浏览器

2. 准备工作

体验DAYU,需要完成以下准备工作

创建华为云账号

参考此文档,注册华为云账号。如果已有华为云账号,可以跳过此步骤。

获取访问密钥AK/SK

参考此文档 获取该账号的访问密钥AK/SK。访问密钥文件名称为credentials.csv,请将访问密钥文件保管好。

创建OBS桶

OBS,即Object Storage Service,对象存储服务,是华为云上提供云上储存的服务。在使用ModelArts之前您需要创建一个OBS桶,并在其中创建一个用于存放数据的文件夹。

登录OBS管理控制台, 页面右上角单击"创建桶",系统弹出如下图所示的对话框,选择"区域"为"华北-北京四",输入自定义的桶名称,其他选项保持默认即可,最后点击页面下方"立即创建"按钮即可成功创建。

create_obs

准备数据

本案例将以某市出租车出行数据为例,统计某出租车供应商2017年度的总收入。我们将创建行程数据表用于存储原始数据,创建一个汇总统计表用于存储统计结果。

点击此链接,下载本案例需要的数据至本地,数据文件名称为2017_Taxi_Trip_Data.csv

上传数据至OBS

将数据文件上传到华为云OBS服务

点击此链接,选择一个OBS桶,点击桶名称进入,然后左侧边栏的“对象”按钮,如下所示:

create_obs

点击页面上的“上传对象”按钮,上传本地的2017_Taxi_Trip_Data.csv文件至OBS,如下图所示:

create_obs

创建DLI队列

点击进入购买DLI队列页面,如果是初次使用,需要同意页面弹出的授权请求。

按照下图指导,填写参数:

create_obs

计费模式选择“按需计费”,当前区域选择“华北北京四”,队列名称自定义,其他参数保持默认。然后点击“下一步”,最后点击“立即创建”按钮。购买成功。

开通DAYU基础版实例

登录DAYU控制台,点击“试用基础版”按钮:

create_obs

进入“试用DAYU基础包实例”界面,填写参数。其他选项默认,区域确保选择“华北北京四”,然后点击“创建虚拟私有云”:

create_obs

在弹出的页面中填写字段,区域确保是“华北北京四”,其他字段保持默认,然后点击“立即创建”按钮:

create_obs

虚拟私有云创建好之后,返回浏览器的前一个页面(即“试用DAYU基础包实例”界面)继续填写参数。点击下图中的“刷新”按钮,虚拟私有云和子网两个字段,就会自动填充刚刚创建的虚拟私有云及其子网:

create_obs

然后,点击“立即试用”按钮。在弹出的“云资源访问授权”对话框中,勾选所有选项,然后点击“同意授权”按钮。

创建数据连接

根据业务需求以及业务数据的特点,选择用于数据存储与分析的云服务。然后,我们就可以创建数据连接和用于存储源数据的目标数据库了。在本示例中,我们选择数据湖探索(DLI)服务。

首先要在“管理中心”模块中创建数据连接,同时还要在“数据开发”模块中创建用于存储源数据的数据库。

点击进入DAYU实例列表界面,找打刚刚开通的基础版DAYU实例,点击“进入控制台”。

create_obs

1,然后选择“空间管理”页签,在工作空间列表中,点击“default”工作空间的“管理中心”,进入管理中心页面。

create_obs

2,在左侧导航树上,单击“数据连接”,进入页面后,单击“创建数据连接”按钮。

image-20191211120654863

3,在弹出窗口中,首先选择数据连接类型为“数据库探索(DLI)”,然后按照下图指导填写其他参数,单击“确定”完成创建。

image-20191211120852993

创建数据库和表

1,在DAYU控制台左上角,单击模块下拉列表并选择“数据开发”,进入数据开发页面。

image-20191211140431260

2,在数据开发页面,单击左侧导航树中的“脚本开发”,进入相应页面后,如下图所示在数据库列表中找到指定的数据库,右击该数据库,然后单击菜单“新建数据库”。

image-20191211140605114

3,在弹出窗口中,输入数据库名称,然后单击“确定”完成数据库的创建。我们填写数据库名称为:transport。

image-20191212150135501

4,点击脚本按钮,移动鼠标到新建SQL脚本的图标,在弹出的窗口中点击DLI,新建一个基于DLI的SQL脚本。

image-20191212214612506

5、在弹出DLI untitled脚本的右上角,配置数据连接,数据库和队列资源。填写数据连接为dli_dayu_demo,数据库为transport,资源队列为default

image-20191212214612506

然后复制如下建表SQL语句至编辑框,点击运行,执行该SQL脚本,创建分析业务需要的数据表。

image-20191212214955342

--创建行程记录表 CREATE TABLE `transport`.`taxi_trip_data` ( `VendorID` STRING, `tpep_pickup_datetime` TIMESTAMP, `tpep_dropoff_datetime` TIMESTAMP, `Passenger_count` TINYINT, `Trip_distance` FLOAT, `RateCodeID` STRING, `Store_and_fwd_flag` STRING, `PULocationID` INT, `DOLocationID` INT, `Payment_type` STRING, `Fare_amount` FLOAT, `Extra` FLOAT, `MTA_tax` FLOAT, `Tip_amount` FLOAT, `Tolls_amount` FLOAT, `Improvement_surcharge` FLOAT, `Total_amount` FLOAT ) USING parquet;

执行成功后会出现如下记录:

image-20191211182925369

3. 数据集成

批量数据迁移概述

DAYU批量数据迁移(Cloud Data Migration)提供同构/异构数据源之间批量数据迁移服务,帮助您实现数据自由流动。支持自建和云上的文件系统,关系数据库,数据仓库,NoSQL,大数据云服务,对象存储等数据源。

批量数据迁移基于分布式计算框架,利用并行化处理技术,支持用户稳定高效地对海量数据进行移动,实现不停服数据迁移,快速构建所需的数据架构。

image-20191211182925369

进入连接管理

在DAYU控制台左上角,单击下拉列表选择“数据集成”,进入“数据集成”页面。

image-20191211185749776

在左侧导航栏单击进入“集群管理”页面。

image-20191211185749776

在集群列表中找到默认创建的集群,单击“作业管理”。(如果没有集群,请参考此文档 创建集群。)

image-20191211185948880

进入作业管理后,切换页签到“连接管理”。

image-20191211190221131

创建两个连接,一个OBS连接,用于读取存储在OBS上的原始数据,一个DLI连接,用于将数据写入DLI数据库中。

新建OBS连接

单击“新建连接”,进入相应页面后,选择连接器类型“对象存储服务(OBS)”,然后单击页面下方的“下一步”,

image-20191211190948831

然后按下图指导,配置连接参数。

image-20191211190948831

名称自定义,AK和SK可以从本地的访问密钥文件credentials.csv获取,请确保该AK和SK是本账号的,否则会创建失败。其他参数保持默认即可。然后点击保存。

新建DLI连接

再次单击“新建连接”,进入相应页面后,选择连接器类型“数据湖探索(DLI)”,然后单击页面下方的“下一步”,

image-20191211191312019

然后如下图所示配置连接参数。

image-20191211191312019

名称自定义,AK和SK可以从本地的访问密钥文件credentials.csv获取,请确保该AK和SK是本账号的,否则会创建失败。其他参数保持默认即可。然后点击保存。

创建批量数据迁移作业

如果所创建的连接器类型是DLI连接,还需要在DLI服务中创建一个队列。数据迁移作业需要用到队列。

切换至“表/文件迁移”页签,再单击“新建作业”。

image-20191211192945610

按照如下指导填写作业参数。

image-20191211193106106

作业名称自定义。源端作业配置中,源链接选择刚刚创建的OBS连接,桶名和源文件选择上传到OBS上的数据文件,文件格式选择CSV。高级属性中,开启“首行为标题行”,其他高级选项保持默认。

image-20191211193106106

目的端作业配置中, 目的连接选择刚刚创建的DLI连接,资源队列选择准备工作中创建DLI队列, 数据库名称选择准备工作中创建的transport数据库,表名选择taxi_trip_data

参数填写完之后,点击页面下方的“下一步”。

在弹出的页面中,可以确认字段转换的类型信息。将第2、3行中的时间格式换成MM/dd/yyyy HH:mm:ss a,拷贝过去即可,其他字段不用改变。

image-20191211204937225

点击页面下方的“下一步”。

在任务配置页面,根据需要配置任务的重试和定时执行。本案例中,保持默认即可。

image-20191211205117720

单击“保存并运行”完成数据迁移作业的创建。返回“表/文件迁移”页面后,可在作业列表中查看到已经成功执行的数据迁移作业。

image-20191213101522384

4. 数据开发

DAYU数据开发模块可管理多种大数据服务,提供一站式的大数据开发环境、全托管的大数据调度能力,极大降低用户使用大数据的门槛,帮助用户快速构建大数据处理中心。

使用DAYU数据开发,用户可进行数据管理、数据集成、脚本开发、作业开发、作业调度、运维监控等操作,轻松完成整个数据的处理分析流程。

脚本开发

1、在DAYU控制台左上角,单击模块下拉列表并选择“数据开发”,进入数据开发页面。

image-20191211210850563

2、在左侧导航栏中,单击“脚本开发”,再右键单击“脚本”选择“新建目录”,在弹出框中输入目录名称例如transport,然后单击“确定”。如果已经创建过目录了,可以跳过这一步。

image-20191211211002274

3、在脚本目录树中,右键单击transport目录,选择菜单“新建DLI SQL脚本”。

image-20191211211117663

4、在新建的DLI_untitled脚本中,首先选择数据连接、数据库、队列,如下图所示。

image-20191211211117663

然后输入SQL脚本内容,将下列代码拷贝至脚本编辑框即可。该脚本用于将合法的历史数据写入到事实表中,将不合法的历史数据写入到脏数据表中。脚本内容如下:

DROP TABLE IF EXISTS taxi_trip_data_temp; CREATE TABLE taxi_trip_data_temp as SELECT * FROM taxi_trip_data; truncate table taxi_trip_data; INSERT INTO taxi_trip_data select * from taxi_trip_data_temp where trip_distance > 0 and total_amount >0 and payment_type in (1,2,3,4,5,6) and VendorID in (1,2) and ratecodeid in (1,2,3,4,5,6) and tpep_pickup_datetime<tpep_dropoff_datetime and tip_amount >= 0 and fare_amount >= 0 and extra >= 0 and mta_tax >= 0 and tolls_amount >= 0 and improvement_surcharge >= 0 and total_amount >= 0 and (fare_amount+extra+mta_tax+tip_amount+tolls_amount+improvement_surcharge) = total_amount; SELECT count(*) FROM taxi_trip_data;

5、单击“运行”按钮,执行SQL语句,清洗数据,执行完成后,可以看到如下结果:

image-20191212225125856

然后选中红框中的sql语句,再次点击运行,查看清洗结果是否正确。

image-20191212225125856

6、测试通过后,单击“保存”按钮,在弹出框中输入脚本名称如:filter_taxi_trip_data,选择保存的脚本路径后,单击“确定”完成创建临时表和脏数据表的脚本保存。

image-20191211211517718

开发批处理作业

1、在DAYU数据开发页面的左侧导航栏中,单击“作业开发”,然后右键单击“作业”选择菜单“新建目录”,在目录树下根据需要创建作业目录,例如transport

image-20191211212328923

2、右键单击作业目录,在弹出菜单中单击“新建作业”。

image-20191211212328923

3、在弹出弹框中输入**“作业名称”dayu_demo_batch“作业类型”**选择“批处理”,其他参数保留默认值,单击“确定”完成批作业创建。

image-20191211212425073

4、在弹出的页面中,首先拖入CDM JOB节点和DLI SQL节点到画布中,然后从CDM JOB节点到DLI SQL节点连一条线。如下图所示,编排批作业。

image-20191211212552562

然后配置CDM JOB节点,添加行程数据临时表和脏数据表。点击画布中的CDM JOB节点,弹出属性配置框, 按下图指导填写参数:

image-20191211212659827

然后配置DLI SQL节点,通过CDM将OBS上的历史数据导入到DLI的行程数据临时表中。点击DLI SQL节点,弹出配置框,按下图指导填写配置表格。类型选择SQL脚本,然后SQL脚本选择之前创建的SQL脚本,底下的信息会自动加载。

image-20191211212808001

5、点击“测试运行”按钮,测试作业是否编排正确。测试成功后,可以看到如下结果:

image-20191211212808001

测试成功后,点击画布空白处,点击右侧调度配置,根据需要设置调度周期后点击保存。

image-20191212235443920

6、点击执行调度,启动作业调度。

5. 数据服务

DAYU数据服务旨在为企业搭建统一的数据服务总线,帮助企业统一管理对内对外的API服务。数据服务为您提供快速将数据表生成数据API的能力,同时支持您将现有的API快速注册到数据服务平台以统一管理和发布。

创建API并发布

1、在DAYU控制台左上角,单击模块下拉列表并选择“数据服务”,进入数据服务页面。

image-20191211232221757

单击左侧导航栏的“API分组”,然后单击“新建”按钮新建一个API分组。

image-20191211232221757

在弹出窗口中输入**“分组名称”**,例如demo,单击“确定”,完成API分组的创建。

2、创建审核人

单击左侧导航栏的“审核中心”,进入“审核人管理”页签,然后单击“新建”按钮新建一个审核人。

image-20191211232415430

审核人选择当前账号,并填写自己的手机号和邮箱。然后点击“确认”按钮。

image-20191211232605818

3、单击左侧导航栏的“API管理”,再单击“新建”开始新建API。

image-20191211232415430

按下图所示,配置API名称为getTripDataByVendorID,分组选前面创建的分组,path按照格式要求输入,如:/tripdata/{vid},vid是参数。“入参定义”字段中点击“添加”按钮,具体填写方式见下图

image-20191211232605818

添加入参定义,参数名为vid,参数位置为PATH,类型选择STRING。

image-20191211232605818

完成基本配置后,单击“下一步”。

4、在新建API页面中,完成以下配置:

如下图所示配置数据连接、数据库、表和队列。注意要先选数据连接,再选数据库。然后单击“添加”按钮。

image-20191211232727273

在“添加参数”页面中,勾选VendorID字段后的**“请求参数”复选框,勾选“返回参数”**前的复选框返回所有字段,然后单击“确定”。

image-20191211232830175

在请求参数中**“绑定参数”**选择vid字段来绑定字段VendorID,操作符选择“=”后,单击页面下方“下一步”按钮。

image-20191211232830175

5、在测试页面,输入vid的值1后,单击“开始测试”按钮,测试API是否OK。

image-20191211233202374

测试成功后,可以看到如下结果。成功后单击“确定”按钮。

image-20191211233202374

6、在“API管理”页面中,在API列表中找到刚才创建的API,单击其所在行的“更多 > 发布”,提交该API的审核。

image-20191211233326561

由于审核人是当前开发者,点击发布之后API免审核发布成功。

回帖领代金券(可选)

如果想要领取第二张代金券,可以将上一步骤中API发布成功后的截图保存(截图需要带上右上角的华为云账号),然后在相应的论坛帖子下回帖。累计完成三个案例就可以领取第二张代金券。点击此链接,进入论坛帖子,参与Codelabs 活动。

6. 清理资源

删除DLI 队列和表资源

点击进入DLI队列列表,删除SQL队列,如下所示:

image-20200109194039575

点击进入DLI数据库列表,先点击表管理,删除表,如下所示:

image-20200109194708686

再删除数据库,如下所示:

image-20200109194708686

删除OBS资源

进入OBS服务页面,删除桶内文件和桶。

7. 恭喜你

祝贺您,您已经使用DAYU的批量数据迁移功能完成数据迁移,使用数据开发功能完成脚本和作业的开发,并使用数据服务完成数据开放。

接下来您可以

  • 您可以深入体验规范设计中的维度建模等功能。
  • 您可以深入体验数据开发中的任务编排的高级功能:失败重试,作业依赖等功能。
  • 您可以深入体验数据质量技术指标监控等功能。
  • 您可以深入体验数据资产的血缘分析,数据概要等功能
  • 您可以深入体验数据服务中的按脚本的方式开放数据。
  • 您可以深入体验数据集成批量数据增量迁移功能以及实时数据迁移功能。

8. 参考文献

  • https://support.huaweicloud.com/dayu/index.html

9. 参与互动赢好礼

欢迎体验华为云EI Codelabs,点击下方按钮可返回华为云EI Codelab论坛帖参与精彩评论、盖楼互动等活动,有机会赢取华为手表、无线耳机 、京东卡等大奖哦!

闯关有礼