大数据平台的建设思考——数据汇聚

大数据平台的建设思考(一)

常规大数据建设、数据中心建设,会经过以下阶段:数据汇聚、清洗整合、融合、数据融合,数据输出给各个大数据应用使用。


将整个数据流比作炒一道美味的菜肴,那么对应关系:
- 买菜——数据汇聚 (业务系统->ODS层)
- 洗切菜——清洗整合(ODS层->DWD层)
- 炒菜——数据融合(DW、DM层)
- 上菜——数据输出(API服务、数据交换)

注:数据仓库中,数据分为四个层级:接口层(ODS)、整合层(DWD)、中间层(DW)、汇总/集市层(DM)。

数据汇聚

数据汇聚,或者称作ETL,将不同的业务系统的数据加载到数据仓库中。数据汇聚有多种方式,按照数据汇聚的传输方式,可以分为文件传输、数据抽取、内容爬去和消息推送 (本次不多做介绍)等方式。
其中文件方式需要业务系统定时进行数据抽取,需要业务系统改造;数据抽取不需要业务系统改造,试用场景多;内容爬去,针对无法访问数据库,只能访问网页或者API的方式。
先来说说适用范围比较多的数据抽取方式,存在着诸多难点需要解决。

踩过的坑
  1. 多数据源适配:业务系统的数据库是不确定的,有可能是MySql、MSSQL、DB2、Oracle等等,各种各样的数据源。而汇聚,就需要适配各种数据源,并将数据抽取到数据仓库中。
  2. 增量数据抽取:业务系统是24时不停歇的运转,对数据量较大的表,无法全量抽取,只能增量抽取,而增量抽取,如何判断哪些数据是增量成为一个难点问题。主流的方法包括:时间戳、ORACLE的CDC、以及数据备份日志。
  3. 数据传输过程中断:由于业务系统、网络等原因,会出现数据同步过程中同步任务中断。如何确保任务重启后不会出现数据重复的问题、断点续传的问题。
  4. 上游系统数据结构变更未通知:经常会出现上游业务系统升级改造,数据库表结构发生变更,而未及时通知下游的数据中心,导致抽取的数据不对、缺失等问题。
  5. 数据业务复杂难懂:部分业务系统由于业务逻辑复杂,导致库表的结构复杂、难懂,且没有相关文档说明字段口径,下游的数据仓库无法直接利用这些数据。
  6. 数据异常导致的任务失败:由于源端数据库与数据仓库不一致,导致部分数据抽取或文件方式中存在乱码、脏数据,进行LOAD过程无法入库,导致任务中断。
  7. 上游业务数据未处理完成:部分业务系统的数据处理量复杂,往往要等到第二天凌晨才能处理完前一天数据。此时,需要数据仓库判断上游业务系统处理任务有无完成,只有完成了进行抽取才能得到完整的数据。

以上这些问题,我在之前的项目中都遇到过,需要在项目建设过程中积累、沉淀,找到各个问题的解决方法,如有机会在后续文章中分享。

汇聚工具

在大型的数据平台的建设过程中,会使用特定工具进行数据汇聚,这样能大幅提高汇聚的效率。此类工具有很多,比如开源的kettle、IBM的datastage等工具。当然很多大数据公司基于kettle也构建了自己的汇聚工具,比如databrige工具就挺好用的。

存储策略

汇聚到大数据平台的数据,我们称之为接口层,一般保留7+2天,用于回溯上游数据质量问题时使用。

如果这块展开写,可以写非常多,比如如何做数据源的适配、如何确保数据的完整性、如何监控上游数据源表结构的变化等等。总之,数据汇聚的目的就是将数据准确、完整、原封不动的复制到大数据平台中供数据处理。
后续有机会可以详细和大家聊聊。

  • 6
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Spark是一个开源的大数据处理框架,它可以在分布式计算集群上进行高效的数据处理和分析。Spark的特点是速度快、易用性高、支持多种编程语言和数据源。Spark的核心是基于内存的计算模型,可以在内存中快速地处理大规模数据。Spark支持多种数据处理方式,包括批处理、流处理、机器学习和图计算等。Spark的生态系统非常丰富,包括Spark SQL、Spark Streaming、MLlib、GraphX等组件,可以满足不同场景下的数据处理需求。 ### 回答2: Spark是一个分布式计算框架,其出现是为了解决Hadoop MapReduce计算模型中的许多性能问题。与MapReduce相比,Spark的计算速度更快,因为它可以在内存中缓存数据并使用更高效的调度算法。此外,Spark还支持多种语言,包括Scala、Java、Python和R等。 Spark有多个模块,包括Spark Core、Spark SQL、Spark Streaming、Spark MLlib和Spark GraphX等。Spark Core是Spark的基本组件,在其中实现了RDD这种抽象数据结构,它可以将数据分布在多台计算机上,从而实现分布式计算。Spark SQL提供了用于处理结构化数据的API和查询语言,它允许将Spark与现有的SQL工具和数据源一起使用。Spark Streaming可以在实时流处理中使用Spark来处理数据,并提供了与常见的消息队列和流处理系统的无缝集成。Spark MLlib提供了许多机器学习算法,可以在分布式环境中进行大规模的机器学习。Spark GraphX是用于图计算的组件,可以用于处理较大的网络图和社交网络图等。 Spark可以在各种场景下使用,例如大型金融数据分析、人工智能、机器学习和图计算等领域。与Hadoop相比,Spark具有更快的速度、更轻量的资源消耗和更广泛的开源社区支持,已经成为许多大规模数据分析和处理项目的首选技术之一。 总之,Spark是一个功能强大的分布式计算框架,具有快速、灵活和多语言支持等特点,并且在实际应用中表现出色,是大数据学习中不可或缺的重要技术之一。 ### 回答3: Spark是一个快速、通用、分布式计算引擎,可以在大规模数据集上进行高效的数据处理。Spark是基于内存的计算引擎,可以将数据存储在内存中,从而提高计算速度。Spark支持多种编程语言,包括Java、Scala、Python和R,因此很容易上手,并且可以适应各种应用场景。 Spark的核心组件包括Spark SQL、Spark Streaming、Spark MLlib和Spark GraphX等,在处理不同类型的数据上都具有很强的适应性。Spark SQL可以处理结构化数据,Spark Streaming可以实现实时数据处理,Spark MLlib可以进行机器学习任务,Spark GraphX可以处理图形数据。此外,Spark还提供了一个交互式的shell,方便用户测试和调试代码。 在分布式环境下,Spark使用集群模式进行计算。集群中的每个节点都有自己的内存和CPU资源,Spark通过将任务分发到不同的节点上进行并行计算以提高计算速度。Spark还提供了一些高级特性,如广播变量、累加器和检查点等,以提高计算性能和可靠性。 在大数据处理方面,Spark有着广泛的应用场景。例如,Spark可以用于数据清洗和转换、数据仓库构建、实时数据处理和机器学习等任务。Spark还支持多种数据源,包括关系型数据库、Hadoop HDFS、NoSQL数据库和云存储等,这些数据源都可以与Spark集成,以进行数据分析和处理。 总之,Spark是一个非常重要和流行的大数据处理工具,它有强大的功能和广泛的应用场景。对于想要学习大数据处理的人来说,掌握Spark是必不可少的。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值