导图社区 数据集成
这是一篇关于数据集成的思维导图,数据集成是将来自不同源头、不同格式、不同结构的数据整合在一起,以实现更全面、更有价值的数据视图的过程。
编辑于2023-12-29 15:50:04数据集成
学习计划
1.了解熟悉数据集成中涉及的概念和名词;可根据此思维导图来梳理学习。
2023年12月26日~2023年12月28日
2.学习掌握数据采集组件的部署、运行。如IoT平台,Flume,Kafka,Flink等。
2023年12月29日~2024年1月5日
3.学习掌握大数据数据库的部署、操作(CRUD)。如Carbon、ClickHouse等。
2024年1月6日~2024年1月12日
4.学习掌握ETL数据清洗工具的使用。如kettle、RestCloud(https://www.etlcloud.cn/restcloud/view/page/index.html)、Apache SeaTunnel(https://seatunnel.apache.org/)。
2024年1月13日~2024年1月19日
5.实现ODS数仓搭建,将采集到的数据经ETL工具处理后入库;可以以点检记录信息做一个Demo。
2024年1月20日~2024年1月31日
定义
数据集成是将来自不同源头、不同格式、不同结构的数据整合在一起,以实现更全面、更有价值的数据视图的过程。
目的
数据集成的主要目标是将多个数据源的数据进行整合、清洗、转换,以实现数据的一致性、统一性和可靠性,从而支持数据分析、数据应用等业务需求。
数据一致性:确保集成后的数据具有一致性,即数据中不存在冲突或矛盾的信息。
数据统一性:将来自不同数据源的数据进行统一,实现数据的格式、结构、单位等方面的统一。
数据可靠性:确保集成后的数据具有较高的质量,可靠地支持数据分析和应用。
类型
垂直数据集成
不同数据源不同维度的数据
水平数据集成
同一数据源不同粒度的数据
形成大宽表
混合数据集成
垂直和水平方向数据集成
关键技术
数据清洗
消除数据集中的错误、不一致性、缺失值和不准确的信息,以提高数据的质量、准确性和可信度。
处理的数据问题类型:
1.缺失值:某些记录或字段中的数据缺失;处理方式:删除缺失值、插值填充、使用默认值。 2.异常值:与其他数据点明显不同的数值 3.重复值:存在相同或几乎相同的记录 4.不一致性:数据在不同的数据源、系统或时间可能存在不一致行,如单位不一致、命名方式不一致。 5.数据格式错误:如日期格式错误,文本中存在非法字符。 6.数据类型错误 7.文本处理问题:数值包含文本时,可能存在拼写错误、大小写不一致、同义词等问题。 8.时间序列问题:如时间戳不一致,缺失。 9.不合理的数据:数据存在不合理不可能的数据,如年龄负数,或超过合理范围。 10.标签和类别问题:字典不一致 11.数据安全和隐私问题:清理过程中确保数据安全和隐私,确保敏感数据的合法。
数据转换
涉及对原始数据进行修改、重组或操作,以使数据更适合分析、建模和其他数据处理任务。数据转换的目的是改变数据的结构、格式或内容,使其更符合分析的需求。
转化方式:
1.数据格式转换(csv、json、xml等)
2.数据结构映射
数据加载
将清洗、整合后的数据有效地存储到目标数据库、数据仓库、数据湖或其他数据存储系统中
数据质量
涉及到数据的准确性、完整性、一致性等方面的控制,以确保数据的可靠性。
数据采集技术
1.结构化数据(Structured Data): 定义: 结构化数据是按照预定义的模型(通常是表格形式)组织的数据,具有清晰的格式和结构,例如关系型数据库中的表格。 特点: 数据存储在表格中,每个字段都有明确定义的数据类型,易于查询和分析。 2.半结构化数据(Semi-Structured Data): 定义: 半结构化数据是一种介于结构化和非结构化之间的数据形式,通常以键值对、标记或层次结构的形式存在,例如JSON、XML数据。 特点: 数据具有某种结构,但字段可能不是固定的,可以包含嵌套的元素。 3.非结构化数据(Unstructured Data): 定义: 非结构化数据是没有预定义模型或明确结构的数据,常见于文本文档、图像、音频和视频文件等。 特点: 数据没有明确的组织形式,不容易通过传统的数据库查询语言进行处理。 4.全量数据(Full Load or Full Extraction): 定义: 全量数据指的是将整个数据集一次性加载或提取到目标系统中,而不考虑之前是否已经加载过。 特点: 适用于初次数据加载、周期性的批处理作业,对整个数据集的完整副本进行操作。 5.增量数据(Incremental Load or Incremental Extraction): 定义: 增量数据是指仅加载或提取自上次操作以来发生变化的数据部分,以减少处理时间和资源。 特点: 通常用于定期更新,只处理新增或修改的数据,而不涉及整个数据集。 6.实时数据(Real-time Data): 定义: 实时数据是在产生或发生的同时(或几乎同时)进行处理和分析的数据。实时性要求处理速度非常快,通常以毫秒级别为目标。 特点: 数据的处理和分析与数据的产生几乎是同时的,强调即时性。 7.准实时数据(Near Real-time Data): 定义: 准实时数据处理指的是在可接受的时间延迟内对数据进行处理,不一定要求与数据产生同时进行。 特点: 数据处理可能在短时间内完成,但可能不是即时的。允许一定程度的延迟。
IoT平台(Internet of Things)
概念介绍:https://zhuanlan.zhihu.com/p/139853835
开源平台:ThingsBoard
https://thingsboard.io/
JDBC/ODBC
ODBC(Open Database Connectivity)和JDBC(Java Database Connectivity)是两种不同的数据库连接标准,分别用于不同的编程环境。ODBC是一种面向C语言的数据库连接标准。它可以用于多种编程语言,但最初是为C和C++设计的。JDBC是Java平台上的数据库连接标准,专门用于Java编程。
AIP(Application Integration Platform)应用集成平台
应用集成平台是一种软件解决方案,旨在简化和促进不同应用程序、系统和数据源之间的集成。这种平台提供了一套工具、服务和中间件,使组织能够更轻松地连接、协调和管理其各种应用程序和数据。
Flume
在大规模数据处理环境中收集、聚合和移动数据,通常与Apache Hadoop、Apache Hive、Apache HBase等工具和框架一起使用。
https://cloud.tencent.com/developer/article/2343739?areaId=106001
https://cloud.tencent.com/developer/article/1815337
Flink
分布式流处理引擎,用于处理和分析实时数据流。与批处理系统不同,Flink专注于处理和分析无界流数据,支持事件时间(event time)语义,并提供精确一次(exactly-once)的状态一致性保证。
kafka
开源的分布式流处理平台,具有高吞吐、可伸缩性和持久性的特点。
数据存储
GaussDB
分布式数据库,支持关系型数据和多模型数据库(文档型、时序型、)
Carbon
开源分布式存储系统,用于大规模的数据采集和高性能分析,支持快速查询、压缩、高并发、可伸缩性好。
ClickHouse
用于实时分析大规模数据的开源列式数据库管理系统,支持实时数据的插入和快速复杂的分析查询。适用于在大规模数据集上进行实时分析的场景。
HDFS
分布式文件系统,用于存储大规模数据集,具有高容错性、高吞吐量数据访问。
数据仓库
ODS、DWD、DWS、ADS是一种常见的数据仓库设计模式,代表着不同层次的数据处理阶段。
ODS( Operational Data Store)
定义
ODS是操作型数据存储,用于存储来自不同业务系统的原始、实时、精细粒度的操作性数据。ODS通常包含了企业中各个业务系统的数据,反映了业务运营的实时状态。
作用
用于收集和存储源系统的数据,提供一个数据集成的平台,支持数据质量的监控和校验。
DWD(Data Warehouse Detailed)
定义
DWD是数据仓库的明细数据层,用于存储经过ETL后的详细数据。在DWD中,数据以事实表和维度表的形式组织,通常包含了所有的业务维度和度量维度。
作用
用于存储经过ETL(抽取、转换、加载)处理的详细数据,为后续的数据分析和挖掘提供基础。
DWS(Data Warehose Summary)
定义
DWS是数据仓库的汇总数据层,用于存储经过聚合、汇总后的数据。在DWS中,通常包含了汇总层的汇总表,以支持一些预先计算的分析和报告需求。
作用
用于提供更快速的查询性能,通过预先计算一些聚合指标,减少查询时的计算复杂性。
ADS(Application Data Service)
定义
ADS是应用数据服务层,用于为业务应用提供专门定制的数据服务。这一层的数据通常是按照业务需求进行过进一步加工和计算的结果。
作用
用于向上层业务应用提供符合特定业务场景需求的数据服务,为业务决策和操作提供数据支持。