时间: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的价值。敬请期待! |
上一篇:欧洲游戏玩家常用支付Paysafecard
下一篇:shopee新手卖家100问(六)
基于对传统行业渠道的理解,对互联网行业的渠道我们可以下这样一个定义:一切...
小米应用商店的后台操作和苹果是比较相似的,因为都能填写100字符关键词,允许...
小米的规则目前是在变更中的,但是根据经验小米的搜索排名评分的高低是个很重...
为了恰饭,有时候是要接入一些广告的,所以FB也专门有一个广告的SDK,这就是A...
在 2018 年于旧金山举行的游戏开发者大会上,Amazon Web Services (AWS) 曾宣布,目前世...
关于Facebook Audience Network如何收款的问题,其实官方已经给了详细的步骤。本文主要...
本文介绍了Audience Network对广告载体的质量检查,以及它重点广告形式需要注意的问...
随着iOS开发,作为开发者或公司需要针对iOS App开发涉及的方方面面作出对应的信息...
Facebook和谷歌对出海企业广告渠道都很熟悉,但事实上,在国外还有一些渠道也很...
卖家从做号的第1分钟开始,就一定要想好变现路径是什么?一定要以变现为目的去...
小提示:您应该对本页介绍的“Azure Databricks大数据构建营 | 掐指一算,见解油然”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通Azure Databricks大数据构建营 | 掐指一算,见解油然的相关事宜。
关键词:Azure,Databricks大数据构建营