Azure Databricks大数据构建营 小试牛刀,大数据常用的技术组件-ESG跨境

Azure Databricks大数据构建营 小试牛刀,大数据常用的技术组件

来源网络
来源网络
2022-04-29
点赞icon 0
查看icon 787

Azure Databricks大数据构建营 小试牛刀,大数据常用的技术组件Azure Databricks大数据构建营 小试牛刀看过美剧《绝命毒师》(Breaking Bad)的童鞋,恐怕都会对「老白」的化学知识和运用这些知识的能力留下深刻印象。毕竟,生活中一些常见的物品,通过对它们的成分进行一定组合往往能制造出......

Azure Databricks大数据构建营 小试牛刀,大数据常用的技术组件





Azure Databricks大数据构建营 小试牛刀

看过美剧《绝命毒师》(Breaking Bad)的童鞋,恐怕都会对「老白」的化学知识和运用这些知识的能力留下深刻印象。毕竟,生活中一些常见的物品,通过对它们的成分进行一定组合往往能制造出很「不一般」的东西。

所以接下来你面对了一个新需求,老板要你实现这样的功能:一家连锁药店,希望通过抽样的方式检查止咳糖浆的销量,如果发现有人一次性购买10瓶以上就进行实时告警。你准备怎么做?

基于Azure Databricks的流计算就可以轻松实现。一起来看看吧。

本次《Azure Databricks大数据构建营》系列文章,将主要围绕Azure Databricks以及其他配套服务,通过一系列实战教程告诉大家如何基于Azure云打造完全运行在云端的闭环大数据平台。

内容涵盖:Azure Databricks的基础知识,以及如何借助Azure Databricks实现流计算(Structure Streaming)、批处理(Spark SQL)、安全访问控制以及机器学习能力等。

本系列的第一篇文章概括介绍了有关Azure Databricks的基础知识,错过的童鞋可以点击这里回看。而本篇,将带领大家小试牛刀,基于Azure Databricks开发上文提到的那种实时告警系统。准备好,我们这就开始。

流计算架构说明

本篇涉及到的服务全都部署在中国区Azure上。根据模拟场景的描述,首先我们可以设计出如下所示的架构:

该解决方案将用到如下的产品和服务:

Azure虚拟机:作为数据源,扮演Producer生产者,通过Python代码模拟客户购买行为,生成示例数据并通过SDK发快递数据到Azure EventHub。

Azure EventHub:消息队列,做上下游生产者消费者服务的解耦,Entity ingestion负责接收Producer发快递的数据,Entity alerting接收经过Databricks实时计算后的数据。

Azure Databricks:订阅EventHub Entity ingestion作为数据源,通过Structure Streaming对数据进行实时处理后发快递给Entity alerting。

Azure LogicApp:订阅EventHub Entity alerting并做邮件实时告警。

完整过程中的数据流是这样的:

1.Producer生产者发快递数据

2.EventHub Entity ingestion(Ingestion实体)

3.Databricks Structured Streaming(流计算框架)

4.EventHub Entity alerting(Alerting实体)

5.Logic App

Azure Databrick Structure Streaming的实现

1.Terraform自动化部署

通过Terraform部署的服务组件包括Azure虚拟机、Azure Databricks、EventHub、Logic App,具体的tf文件和变量可参见这里。每项服务Terraform Azure Provider都由Resource支持,具体可参考官方文档。部署完成后的资源清单如下图所示,所有资源都部署在中国北二区域。

2.Producer代码发布

模拟的生产者代码通过虚拟机发布,通过调用Azure EventHub的SDK将消息写入,具体代码可见这里,几个重要配置简单说明下:

azure.eventhub:Azure EventHub SDK包,需要通过pip3 install azure.eventhub来指定安装。

createbatch():通过该方法批量发快递数据,本次示例以1条消息为1个批次发国际快递EventHub Entity ingestion。

CONNECTIONSTR:Azure EventHub Endpoint,该连接字符串可以在门户上Shared access policies的Connection string–primary key中查看。

EVENTHUBNAME:写入的EventHub Entity Name。

3.Azure Databricks集群配置及Structure Streaming Notebook的集成

Azure Databricks的创建过程是:首先在Azure上创建一个Databricks实体,然后在此基础上在实体内部创建Workspace以及Cluster,再提交Job。每个Databricks资源都有唯一的ID和Endpoint与之对应,以便能够进行Restful API调用,集群通过Databricks门户创建即可。

本示例将创建1个Driver和2个Worker,共计3个节点的Standard Cluster,Databricks版本为6.4(包含Apache Spark 2.4.5、Scala 2.11)。如果需要做机器学习相关计算,可启用集成GPU/ML框架的版本,详细说明见官方文档,这里不做赘述。

集群状态变为Running就意味着就绪可以使用了。不过在导入Python Notebook之前,需要通过Maven Central安装com.microsoft.azure:azureeventhubsspark库文件,以便安装Spark连接Azure EventHub Connector,需要注意库文件的版本要匹配。

Notebook可以直接在门户里新建写入,也可以在VS Code等IDE中编写完之后发布。本文采用第二种模式,原因是IDE丰富的插件可以提高效率。具体的Notebook本文不做展示,放在这里,有需要的童鞋可以自行查看。通过import导入后,附上导入后的截图并做几点说明:

整个Notebook分为三个阶段:

第一阶段:从EventHub Entity ingestion读取Producer写入的数据,通过Streaming DataFrames的spark.readStream()创建。

第二阶段:通过DataFrame丰富的函数做字段筛选,筛选出来我们需要的字段。

第三阶段:回写EventHub Entity alerting,通过Streaming DataFrames的spark.writeStream()流式写入,注意利用Checkpoint方便任务终止再运行。

当Producer运行起来后,EventHub就会不断有数据写入,所以能看到Spark的Input Records图像。对于每一个Job,都能看到对于该任务分配的资源和Spark参数配置项。

4.Logic APP配置邮件告警

经过Azure Databricks的数据筛选后,筛选出来的Messages都写入了EventHub Entity alerting中,此时通过LogicApp来定义一个自动化的工作流来进行邮件告警。具体创建过程选择Blank,然后自己创建Step即可,当然Azure门户上的示例模板也可以用来参考,如下图所示:

第一步订阅EventHub Entity alerting,第二步集成Outlook邮件接口发快递告警邮件。所以当目标消息被筛选出来之后,LogicApp就按照定义的邮件内容(本文是消息内容和时间戳)来发快递邮件,发快递邮件的截图如下:

总结

总体上,一个通过消息队列Azure EventHub以及Databricks做流计算处理的示例就完成了。

如果消息生产者Producer不断产生消息,那么整个任务就会一直运行下去,当出现目标消息的时候就会不断的持续告警。在Spark推出Structure Streaming后,也解决了Spark Streaming micro batch的局限性。

本文开头提及的需求已经顺利实现!

有关如何借助Azure Databricks实现流计算(Structure Streaming)的内容就是这些了。随后的内容中,我们还将介绍如何实现批处理(Spark SQL)、安全访问控制和机器学习能力。通过这些真实场景中的最佳实践分享,也能帮助大家更清楚地认识到Azure Databricks的价值。敬请期待!


文章推荐
Facebook做广告推广还能这样来1,facebook广告推广步骤与技巧
Google AD广告教程Google Shopping逻辑,谷歌推广怎么添加广告系列
「Shopify」可以增加电子商务销售的9个最佳比较购物引擎,中国卖家的shopify可以使用shop pay吗
Google游戏峰会演讲视频——2020游戏增长三大挑战及应对策略,2020google play app排名


特别声明:以上文章内容仅代表作者本人观点,不代表ESG跨境电商观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与ESG跨境电商联系。

搜索 放大镜
韩国平台交流群
加入
韩国平台交流群
扫码进群
欧洲多平台交流群
加入
欧洲多平台交流群
扫码进群
官网询盘
加入
官网询盘
扫码进群
美国卖家交流群
加入
美国卖家交流群
扫码进群
ESG跨境专属福利分享群
加入
ESG跨境专属福利分享群
扫码进群
拉美电商交流群
加入
拉美电商交流群
扫码进群
亚马逊跨境增长交流群
加入
亚马逊跨境增长交流群
扫码进群
亚马逊跨境增长交流群
加入
亚马逊跨境增长交流群
扫码进群
拉美电商交流群
加入
拉美电商交流群
扫码进群
《TikTok综合运营手册》
《TikTok短视频运营手册》
《TikTok直播运营手册》
《TikTok全球趋势报告》
《韩国节日营销指南》
《开店大全-全球合集》
《开店大全-主流平台篇》
《开店大全-东南亚篇》
《CD平台自注册指南》
《开店大全-俄罗斯篇》
通过ESG入驻平台,您将解锁
绿色通道,更高的入驻成功率
专业1v1客户经理服务
运营实操指导
运营提效资源福利
平台官方专属优惠

立即登记,定期获得更多资讯

订阅
联系顾问

平台顾问

平台顾问 平台顾问

微信扫一扫
马上联系在线顾问

icon icon

小程序

微信小程序

ESG跨境小程序
手机入驻更便捷

icon icon

返回顶部