1. DLF服务说明

参考官网:https://support.huaweicloud.com/productdesc-dlf/dlf_07_001.html ,数据湖工厂服务(Data Lake Factory,简称DLF)是华为云大数据重要的平台产品,它可管理多种大数据服务,提供一站式的大数据开发环境、全托管的大数据调度能力,极大降低用户使用大数据的门槛,帮助用户快速构建大数据处理中心。

使用DLF,用户可进行数据建模、数据集成、脚本开发、工作流编排、运维监控等操作,轻松完成整个数据的处理分析流程。

简而言之就是,这个是一个集合,也是一个调度中心,你在华为云上使用的大多数服务都可以通过DLF串联起来从而实现一个自动化流水线形式的功能,下面以我的实验来解释DLF的工作流程以及我的个人看法与认知。

2. 任务制定及分析

小明同学作为一个北漂技术宅在租房问题上遇到了点问题,他想在北京租到合适而且价格便宜的房子,但是市面上有大大小小各种租房网站,一个一个翻再对比显得有点麻烦,于是乎他想到了可以用华为云的各种服务搞一个自动化系统,从不同的网站获取数据,然后进行筛选过滤,最后将相对合适的一些房源数据展示出来。恩,小明一拍脑瓜子就觉得这个可以搞,然后开始了他的脱发之旅。

2.1 数据源

小明同学的第一个问题是数据从哪来呢,显然,网上这么多的网站,爬就完事了。那么以链家为例,我们开始用爬虫技术获取房屋租赁信息并保存为csv文件,我这里就直接使用Scrapy框架进行爬虫,没有代理IP池没有复杂的请求头,就简单的取数据,延迟设置长一点一般不会被封,还有就是爬虫得到的数据不允许商用,否则律师函警告。

首先看看网站啥样

关键数据为:

  • price:房租价格
  • area:面积
  • loc:位置
  • zone:房型
  • time:发布时间
  • direction:朝向
  • title:名称及描述
  • tag:标签

然后就是尝试以及代码完成了,结果如下:

spider.py(这里对tag的处理有点问题,虽然没有报错,但是影响了后面的数据)

item.py

settings.py

piplines.py

最后结果保存在result.csv文件中,文件内容大概类似

这里可以把表头删了

2.2 数据上传及保存

由于后续任务需要使用数据库,我们只能将csv文件上传至OBS,再通过DLI服务创建一个表进行数据转换。

  • 上传至OBS,这个不用多说,很简单
  • 开启DLI服务,创建SQL作业,然后创建队列、数据库(使用默认的也可以),然后相对复杂一点的部分是根据OBS的csv文件生成表,代码很简单,如下
create table house_no_head(price long,area int,loc string,zone string,time string,direction string,title string,tag string
) USING csv OPTIONS (path "s3a://obs-zhuantou233/obs-dlf/result.csv")

执行完成后可以通过执行下面的语句观察是否正确的导入了数据

select * from house_no_head

2.3 通过DLF调用CDM

这是根据实验要求的步骤,将最终得到的结果迁移至DWS的表中,先考虑数据怎么流向CDM的。

我的步骤是:现在我们已经得到了在数据库中存储的数据了,下一步是通过SQL语句筛选我们需要的数据,筛选完成后自动将数据以csv格式保存在OBS上,同时CDM提供的数据迁移自动运行将OBS上筛选完成的数据导入到DWS的表中,最后我们通过数据库连接软件就可以查看目标数据及筛选过的房源信息。

第一步,不是在DLF上筛选数据并保存,先通过DLI建立一个空表analysis_output用于保存筛选后的数据

打开DLF服务,新建一个DLI SQL脚本(DLF这里建表等同于在DLI中建表),然后代码如下

create tableanalysis_output(price long,area int,loc string,zone string,time string,direction string,title string,tag string) using csv options(path 's3a://obs-zhuantou233/obs-dlf/output');

运行这个脚本就会生成一个空表,需要注意的是output是一个文件夹,最后筛选的数据并不是一个完整的csv文件,而是被切割成很多份的csv文件,保存在一个随机生成的文件夹中,大致类似下图

第二步,在DLF上筛选数据并保存到analysis_output表中,此时就会生成上图所示的文件,筛选的过程也很简单,也是通过新建一个DLI SQL脚本,代码如下

INSERT INTOanalysis_output
SELECT*
FROM(SELECT*FROMhouse_no_headWHEREprice < 7000AND area > 40AND loc LIKE "%朝阳%"AND title LIKE "%整租%"UNIONSELECT*FROMhouse_no_headWHEREprice < 5000AND area > 30AND loc LIKE "%海淀%"AND tag LIKE "%近地铁%")
ORDER BYprice

这个逻辑是筛选出朝阳区整租类型的房价在7000以下,房屋面积在40以上的数据,以及海淀区靠近地铁的房价在5000以下,房屋面积在30以上的数据的并集(北京的同学真是处于水深火热当中)。假如我们从多个平台爬取了数据,在这里就可以进行整合,从不同的表中select即可。

运行这个脚本后就会生成上图所示的文件,最后记得保存这个脚本。

第三步,OBS到DWS数据迁移

理论上在生成筛选数据后完全可以脱离DLF,直接使用CDM服务做数据迁移,但是为了形成这个流水线,我们还是要讲CDM节点加入到DLF作业中去。

前提步骤都是与CDM作业相同的,首先创建DWS集群(注意需要公网IP),通过数据库连接软件连上之后创建schema和表用于保存迁移过来的数据,也就是最终我们看到的数据,代码如下

create schema house_data;
set current_schema= house_data;
drop table if exists house_result;
CREATE TABLE house_result
(price BIGINT,area INT,loc VARCHAR(64),zone VARCHAR(64),time VARCHAR(64),direction VARCHAR(64),title VARCHAR(128),tag VARCHAR(128)
)
with (orientation = column, COMPRESSION=MIDDLE)
distribute by replication;

代码很简单,创建schema名为house_data,创建表为house_result,注意这里的变量类型与之前DLI中不同,string转为varchar,由于title和tag字段过长需要更大的长度(这是实验过程中了解的)。

然后是创建CDM集群,创建OBS连接以及DWS连接,然后创建迁移作业,如下图所示

作业的部分配置如下

从这张图可以看出为什么上面爬虫的时候我说tag的处理有点问题,在这里数据迁移时将tag字段切割了,导致最终的数据丢失部分

此时CDM的作业可以运行一次检查CDM是否配置完成,也可以不运行,因为最后我们要通过DLF启动,这个过程中会自动运行筛选以及迁移两个步骤。

3. 运行结果

上述步骤都测试完成后,我们可以删除测试过程产生的表以及数据等等,这里就不细说,懂的人自然懂,然后我们在DLF中创建作业,一个节点是DLI筛选,另一个节点是CDM数据迁移

上述作业运行成功后在数据库连接软件上刷新一下就可以找到这张迁移过来的表house_result,然后结果也如我们所设计的一样,房价、面积、位置要求等等信息一目了然。

4. 总结与思考

首先是DLF服务的理解,这个很明显是为了连接其他所有服务的流水线,把其他模块作业一部分功能,叠加起来形成一个稳定的自动化系统,可以说是整个华为云系统的关键组件,如果能灵活的使用应该能成为中小企业的一个业务分支(自动化部分)。

然后是整个项目流程的思考,我仅仅只爬了链家的数据,后续可以加上其他平台的数据形成一个大数据集,这是其一;其二是爬取过程完全是我手动操作再导入到OBS上,根据我在CS作业中的理解,我觉得是可以通过DIS自动上传数据到OBS,然后定时调动DLF作业,那样就可以形成一个自动化的租房信息系统,再加上SMN消息通知,感觉这个已经是一个完整的系统了,后续会加上我所说的这些功能吧,毕竟也不是很复杂,一步一步来。

华为云数据湖工厂服务DLF相关推荐

  1. 华为云服务权限在哪_华为云数据湖探索服务DLI,精细化保障企业大数据安全

    原标题:华为云数据湖探索服务DLI,精细化保障企业大数据安全 随着企业业务的不断发展,企业大数据资产在企业辅助决策.用户画像.推荐系统等诸多业务流程中扮演着越来越重要的作用,如何保证企业大数据在满足各 ...

  2. 有了数据湖探索服务,企业决策“新”中有数

    摘要:全托管Serverless服务DLI就像是我们日常使用的滴滴共享打车,我们不再需要为购买和保养私家车而支出固定成本. 1. 趋势和挑战 1.1. 趋势 随着云化技术越来越成熟,企业开始逐步上云, ...

  3. 让数据怎么发挥价值?先看看华为云数据使能的力量

    数据被誉为是"21世纪的石油". 在10多年前"大数据"概念刚盛行时,业内就反复谈及该理念.到了今天数字化转型的关键阶段,该理念仍需要被再次重视,因为从技术的发 ...

  4. 科技云报道:华为云数据灾备,守护企业的生命线

    科技云报道原创. 未来,所有企业都是在线型企业,小到街边随处可见的零售店铺,大到跨国经营的全球五百强,线上线下的产业融合模式,按下了数字经济发展的"快进键". 数字化时代的企业,既 ...

  5. 适用场景广泛,使用华为云数据灾备解决方案进行数据备份更轻松!

    人的精力是有限的,企业的发展自然也不例外.对于非专业从事数据研发或者提供云服务的企业来说,相比较投入巨资自建企业发展所需的数据中心,不如选择可以按需快速获取的新技术能力,转而将更多的精力投放到自身擅长 ...

  6. HDC.Cloud 2021|华为云数据使服务DAYU,加速数据价值释放

    4月24日-4月26日,华为开发者大会2021(Cloud)(简称HDC.Cloud 2021)将在深圳大学城举办,这是华为ICT基础设施业务面向全球开发者的年度盛会.大会期间,针对重点产品之一--数 ...

  7. 湖仓一体,Hologres加速云数据湖DLF技术原理解析

    Hologres(中文名交互式分析)是阿里云自研的一站式实时数仓,这个云原生系统融合了实时服务和分析大数据的场景,全面兼容PostgreSQL协议并与大数据生态无缝打通,能用同一套数据架构同时支持实时 ...

  8. 湖仓一体,Hologres加速云数据湖DLF原理解析

    本期我们将带来Hologres高性能分析引擎加速查询云数据湖DLF的技术原理解析. 随着云服务被接受的程度不断提升,云用户日益愿意将其收集的数据存储在低成本的对象存储里,比如OSS,S3等.与此同时, ...

  9. 云图说|华为云数据复制服务 打造不一样的用户权限迁移

    业界主流的云数据库迁移方案中,无法完全继承源数据库的权限体系. 要同时迁移几套数据库,账号繁多,密码又由不同人维护,来回沟通,费时费力效率低. 华为云数据复制服务DRS推出业内首家用户权限迁移功能,一 ...

最新文章

  1. vivado调用modelsim
  2. R语言ggplot2可视化小提琴图(violin plot)并使用ggsignif添加分组显著性(significance)标签
  3. Altera FPGA管脚弱上拉电阻详细设置方法
  4. 找找Amazon的A9算法更新和变化的蛛丝马迹!
  5. Python4:DataStructure
  6. [十六]JavaIO之InputStreamReader 与 OutputStreamWriter
  7. 装车机器人_15秒装车!行李智能分拣机器人亮相厦门机场
  8. Web Service和Servlet的区别
  9. LED 将为我闪烁: 控帘 j发光二级管
  10. 为什么程序员互相之间不能透露薪水?是怕“凡尔赛”吗?
  11. iOS不得姐项目--精华模块上拉下拉的注意事项,日期显示,重构子控制器,计算cell的高度(只计算一次),图片帖子的显示...
  12. MYSQL入门(一)
  13. 批处理的注释:批处理程序中的多行注释方法
  14. java人民币金额大写_[求助]用java实现整数转换为人民币金额大写的功能
  15. Matlab中如何定义和使用colormap?|colormap的使用
  16. 【车道线检测论文阅读笔记——经典论文粗读汇总】
  17. java微信小程序支付-回调(Jsapi-APIv3)
  18. vue3父传子,子传父
  19. Tiled源码分析: 序
  20. Android 程序框架设计

热门文章

  1. python爬虫解析数据错误_Python网络爬虫数据解析的三种方式
  2. 参加了一个博客大赛......
  3. 计算机自带游戏删掉还能装吗,电脑自带游戏删除后怎么恢复
  4. html5登录页面自动记住密码,html5超简单的localStorage实现记住密码的功能实现
  5. 知耻而后勇才能取得成功
  6. 使用树莓派3B+开发智能音乐播放器
  7. [树上最长链][tarjan][单调队列][环上前缀和] Jzoj P5905 黑暗之魂(darksoul)
  8. 葡萄保护袋、葡萄套袋、水果保护袋、果袋
  9. MMC 检测到此管理单元发生一个错误,建议你关闭并重新启动MMC
  10. 北斗授时服务器/北斗对时装置为组态监控系统提供精准时钟保障