Azure Databricks大数据构建营 | 掐指一算,见解油然

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:云科技网络

小提示:您能找到这篇{Azure Databricks大数据构建营 | 掐指一算,见解油然}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的Azure Databricks大数据构建营 | 掐指一算,见解油然内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

数据分析,这恐怕是任何大数据系统最核心的功能和目标,毕竟只有经过妥善的分析并得出结论,才能从所积累的海量数据中获得业务价值。那么,我们基于Azure Databricks构建的大数据系统,除了像之前介绍过的那样处理实时数据流之外,在海量离线数据的分析和计算方面,又具备哪些优势?本篇将带领你见分晓。

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

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

本系列的第一篇文章概括介绍了有关Azure Databricks的基础知识,错过的童鞋可以点击这里回看;第二篇文章介绍了如何基于Azure Databricks开发实时告警系统,可以点击这里回看。而本篇,主要将介绍如何对离线数据进行分析和计算,进而获得业务所需的各类见解。

背景介绍

一般来说,离线数据的分析都会运行OLAP SQL查询,因而下文将主要围绕SparkSQL,一个可以通过Spark来进行SQL分析的可实时、可离线计算框架展开介绍。下文场景基于集成Azure Datalake Gen2并启用Databricks Delta Lake作为外部存储实现计算存储分离,通过SparkSQL分析新冠肺炎实时统计数据。而相关资源依然会沿用之前两篇文章的Demo所创建的资源组。

Delta Lake是一种可以提高数据湖可靠性的开源存储层,由Databricks开发并开源。Delta Lake提供了ACID事务和可缩放的元数据处理,并可统一流处理和批数据处理。Delta Lake在现有Data Lake的顶层运行,并可与Apache Spark API完全兼容。

具体而言,Delta Lake提供了:

Spark上的ACID事务:可序列化的隔离级别可避免读者看到不一致的数据。

可缩放的元数据处理:利用Spark的分布式处理能力,轻松处理包含数十亿文件的PB级表的所有元数据。

流式处理和批处理统一:Delta Lake中的表是批处理表,也是流式处理源和接收器。流式处理数据引入、批处理历史回填、交互式查询功能都是现成的。

架构强制:自动处理架构变体,以防在引入过程中插入错误的记录。

按时间顺序查看:数据版本控制支持回滚、完整的历史审核线索和可重现的机器学习试验。

更新插入和删除:支持合并、更新和删除操作,以启用复杂用例,如更改数据捕获、渐变维度(SCD)操作、流式处理更新插入等。

总的来说,Delta Lake不仅能在需要事务符合ACID特性的场景提供支持,还针对性能也做了相当大的代码优化,本文的实现也是基于Delta Lake,需要注意数据格式需要转换成delta。



正常情况下,Azure Datalake Gen2与Delta Lake的集成需要在Spark中增加配置项spark.delta.logStore.class=org.apache.spark.sql.delta.storage.AzureLogStore,并且集群需要在lib库中支持hadoop-azure-datalake/hadoop-azure/wildfly-openssl JAR,具体过程可以见这里。所以这时PaaS的优势就显示出来了:Azure Databricks在集群创建好的同时就已经在集群上启用了该库,直接调用即可。Azure Datalake Gen2的创建过程本文不再赘述,具体见官方文档。

本文将介绍两种常见的集成方式,如下图所示,并做几点说明:



cmd2:非挂载方式

cmd2中通过Scala代码演示Azure Databricks集成Azure Datalake Gen2的认证配置项,通过创建拥有IAM角色「Storage Blob Data Contributor」的服务主体来做认证,验证通过后就可直接调用Datalake里的文件了,注意相关变量需要替换。

cmd3:挂载方式



cmd3中通过Python代码演示Azure Databricks如何挂载Azure Datalake Gen2,身份验证过程和cmd2的方式一样。这种方式的好处是直接可以把远端的Azure Datalake挂载到Azure Databricks上,就好像在使用本地磁盘一样使用Datalake,本文更推荐并且采用该模式,同时注意相关变量需要替换。

另外,本文的环境位于Azure中国区,所以相关域名都是https://login.partner.microsoftonline.cn,如果位于全球Azure中,那么相关域名将会是https://login.microsoftonline.com。

其实从最佳实践角度来说,互联网推广系统有哪些本文并不是实现的最好方式,因为在Notebook里的认证信息全部都是明文出现。最好的方式应该集成Azure密钥保管库来隐藏密码,该方式不再本文赘述,有兴趣的同学自行研究吧,附上链接供参考。

引入数据源并运行SparkSQL

前面提到,本文所采用的示例数据是和新冠肺炎实时统计数据相关,讲到这里有必要介绍一个微软提供的开放数据集Repo,其中包含各种场景下的csv/json/parquet格式的原始和脱敏数据,本文所用的新冠肺炎数据也是在这里获取的。

选择CSV格式数据作为数据源,下载好之后上传到Azure DataLake,在Container data下面再创建一个Source文件夹作为存放原始数怎样可以引流据的目录径。

原始数据确定好之后,就可以通过Notebook来做SparkSQL分析了。本文用到的示例Notebook已经上传到了这里,几个重要配置简单说明下:

COVIDDF:COVIDDF为定义的DataFrame,通过spark.read.format(“csv”)格式并指定挂载路径引入数据;

COVIDDF.write.mode(“append”).format(“delta”):通过Append追加方式写入目标表中,注意这里的格式delta,也就是前面提到的需要做格式转换,写入的表也需要指定路径,并会在Azure Dalalake中生成相应的文件;

ChinaCOVID及ChinaCOVID1:经过上面的建表过程后就可以运行SparkSQL来做SQL查询了。

总结

一个通过集成Azure Datalake Gen2作为外部存储并采用Delta Lake格式进行SparkSQL分析的示例就完成了,本文基本上使用了PySpark来实现,其实除此之外通过SQL或者Scala也是一样可以实现的,有兴趣的同学可以自己再深入研究下吧。

有关如何通过SparkSQL实现数据的离线分析和计算,就是这样了。随后的内容中,我们还将继续介绍如何实现安全访问控制和机器学习能力。通过这些真实场景中的最佳实践分享,也能帮助大家更清楚地认识到Azure Databricks的价值。敬请期待!

Azure Databricks大数据构建营 | 掐指一算,见解油然

上一篇:欧洲游戏玩家常用支付Paysafecard
下一篇:shopee新手卖家100问(六)


版权声明:以上主题为“Azure Databricks大数据构建营 | 掐指一算,见解油然"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    Azure Databricks大数据构建营 | 掐指一算,见解油然
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“Azure Databricks大数据构建营 | 掐指一算,见解油然”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通Azure Databricks大数据构建营 | 掐指一算,见解油然的相关事宜。

关键词:Azure,Databricks大数据构建营

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号