CN114860780A - 一种数据仓库、数据处理系统及计算机装置 - Google Patents
一种数据仓库、数据处理系统及计算机装置 Download PDFInfo
- Publication number
- CN114860780A CN114860780A CN202210642584.7A CN202210642584A CN114860780A CN 114860780 A CN114860780 A CN 114860780A CN 202210642584 A CN202210642584 A CN 202210642584A CN 114860780 A CN114860780 A CN 114860780A
- Authority
- CN
- China
- Prior art keywords
- data
- real
- service
- time
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据仓库、数据处理系统及计算机装置,用于提升对流数据和历史离线数据计算的便捷性。本发明实施例中的数据仓库包括:数据来源、数据存储模块和数据服务模块,数据存储模块包括第一数据存储装置和流数据处理引擎中的至少一项;数据服务模块包括第一数据查询模块、数据分析模块和第二数据查询模块中的至少一项;第一数据存储装置,用于对从数据来源获取到的实时数据进行持久化存储;第一数据查询模块用于对查询到的历史离线数据进行显示;数据分析模块用于对获取到的历史离线数据进行分析显示;流数据处理引擎用于从流处理平台获取实时数据,从第一数据存储装置获取历史离线数据,以对实时数据和历史离线数据执行数据处理。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据仓库、数据处理系统及计算机装置。
背景技术
数据仓库:数仓是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。
现有技术中常用的一种数据仓库架构为Kappa架构(图1给出了Kappa架构的示意图),其中,Kappa架构是一种高效处理海量数据的实时数据处理技术,它的核心思想是通过改进流计算系统来解决数据全量处理的问题,也即使得对流数据(动态数据)的实时计算和对静态数据的批量计算都使用同一套处理流程。
具体的,Kappa架构中的数据流从数据来源处到实时数据层时,一般是用kafka或类似MQ队列系统收集各种各样的数据,需要处理几天的数据量就保存几天的数据量。当需要执行全量重新计算时,就重新发起一个流计算实例,从头开始计算,并输出到一个新的结果存储中。
而Kappa架构的数据仓库至少存在以下缺陷:
Kappa架构一般使用kafka存储历史离线数据,而kafka作为一种获取数据的通道,当历史离线数据量较大时,一方面增大了kafka的存储代价,另一方面从kafka中获取历史离线数据时,因为每次都需要手写代码,并将代码发布到平台上运行,才能获取到历史离线数据,从而增大了获取历史离线数据的复杂度。
发明内容
本发明实施例提供了一种数据仓库、数据处理系统及计算机装置,用于提升对流数据(动态数据)执行实时计算,和对历史离线数据执行批量计算的便捷性。
本申请实施例第一方面提供了一种数据仓库,包括:
数据来源、数据存储模块和数据服务模块,其中,所述数据存储模块包括第一数据存储装置和流数据处理引擎中的至少一项;所述数据服务模块包括第一数据查询模块、数据分析模块和第二数据查询模块中的至少一项;
当所述数据存储模块包括所述第一数据存储装置时,所述第一数据存储装置,通过流处理平台与所述数据来源通信连接,以用于从所述数据来源获取实时数据,并对所述实时数据进行持久化存储;
当所述数据服务模块包括所述第一数据查询模块时,所述第一数据查询模块与所述第一数据存储装置通信连接,所述第一数据查询模块用于在接收到用户的第一查询请求时,根据所述第一查询请求查询所述第一数据存储装置,并对查询到的历史离线数据进行显示,其中,所述第一查询请求用于查询所述历史离线数据;
当所述数据服务模块包括所述数据分析模块时,所述数据分析模块与所述第一数据存储装置通信连接,所述数据分析模块用于在接收到用户的历史离线数据分析请求时,根据所述历史离线数据分析请求从所述第一数据存储装置获取历史离线数据并对获取到的历史离线数据进行分析显示;
当所述数据存储装置包括所述流数据处理引擎,所述数据服务模块包括所述第二数据查询模块时,所述流数据处理引擎用于从所述流处理平台获取实时数据,从所述第一数据存储装置获取历史离线数据,以对所述实时数据和所述历史离线数据执行数据处理,并将处理后的历史离线数据通过所述流处理平台写入所述第一数据存储装置,将处理后的实时数据写入所述第二数据查询模块;
所述第二数据查询模块用于接收用户的第二查询请求,并根据所述第二查询请求对查询到的实时数据进行显示,其中,所述第二查询请求用于查询所述实时数据。
可选的,所述数据存储模块还包括第二数据存储装置,所述第二数据存储装置通过所述流处理平台与所述数据来源通信连接,所述第二数据存储装置用于通过所述流处理平台从所述数据来源获取实时数据,并将获取到的实时数据执行持久化存储,以作为所述第一数据存储装置中数据的备份数据。
可选的,所述数据来源包括业务系统的关系型数据库、终端埋点日志和线上服务日志中的至少一种;所述流处理平台包括Kafka流处理平台;所述第一数据存储装置包括Clickhouse;
所述Clickhouse,通过所述Kafka流处理平台分别与所述业务系统的关系型数据库、所述终端埋点日志和所述线上服务日志中的至少一个通信连接,以获取所述关系型数据库、所述终端埋点日志和所述线上服务日志中至少一项的实时数据。
可选的,所述Clickhouse包括贴源层ODS、明细数据表DWD和数据仓库服务DWS;
其中,所述贴源层ODS用于通过Clickhouse connector从所述Kafka流处理平台获取实时数据,并对所述实时数据执行抽取、清洗转换和/或加载操作后,永久写入所述明细数据表DWD;
若所述明细数据表DWD接收到对永久写入数据的数据聚合和/或数据去重处理请求,则根据所述数据聚合和/或数据去重请求,将所述永久写入数据写入数据仓库服务DWS的聚合表,以用于对所述永久写入数据执行聚合和/或去重处理。
可选的,所述贴源层ODS、明细数据表DWD和数据仓库服务DWS中表格的采用相同的命名规则,所述命名规则包括:数据的来源层、数据的物化视图名、主题域名和数据的去向层中的至少一项。
可选的,所述贴源层ODS、所述明细数据表DWD和所述数据仓库服务DWS,都分别设置有online服务和replica服务,其中,所述online服务用于接收用户的数据写入请求,并根据所述数据写入请求对待写入数据执行实时写入,所述replica服务用于接收用户的数据读取请求,并根据所述数据读取请求实时读取数据;
所述online服务和所述replica服务还用于对双方的存储数据进行实时同步。
可选的,所述Clickhouse为服务集群,所述处理集群包括多个处理终端,所述多个处理终端用于对从所述数据来源获取到的实时数据执行分块并行处理。
可选的,所述流数据处理引擎包括Flink,所述Flink用于从所述明细数据表DWD中获取历史离线数据,并将处理后的历史离线数据通过所述Kafka流处理平台存储至所述Clickhouse;
所述Flink还用于从所述Kafka流处理平台中获取实时数据,并将处理后的实时数据存储至所述第二数据存储查询模块,其中,所述第二数据存储查询模块包括Hbase数据库。
可选的,所述第一数据查询模块包括superset,所述数据分析模块包括Druid数据处理系统和Pivot可视化工具。
本申请实施例第二方面提供了一种数据处理系统,包括本申请实施例第一方面所述的数据仓库。
本申请实施例第三方面提供了一种计算机装置,包括处理器和存储器,所述存储器中存储了本申请实施例第一方面所述的数据仓库。
从以上技术方案可以看出,本发明实施例具有以下优点:
因为本申请实施例中的数据仓库可以通过第一数据存储装置,对接流处理平台,以从数据来源处获取实时数据(动态数据),并将实时数据执行持久化存储,实现将实时数据(动态数据)转换为历史离线数据(静态数据),从而使得流数据处理引擎可以从流处理平台获取实时数据,而从第一数据存储装置获取历史离线数据,也即提升了对实时数据执行实时计算,对历史离线数据执行批量计算的便捷性。
进一步,流数据处理引擎还可以通过标准接口,从第一数据存储装置中直接获取历史离线数据,较现有技术而言,避免了手写代码的过程,进一步提升了获取历史在线数据的便捷性。
附图说明
图1为现有技术中Kappa架构的一个实施例示意图;
图2为本申请实施例中数据仓库的一个实施例示意图;
图3为本申请实施例中数据仓库的另一个实施例示意图;
图4为本申请实施例中数据仓库的另一个实施例示意图;
图5为本申请实施例中数据处理系统的一个实施例示意图;
图6为本申请实施例中计算机装置的一个实施例示意图。
具体实施方式
本发明实施例提供了一种数据仓库、数据处理系统及计算机装置,用于提升对流数据(动态数据)执行实时计算,和对历史离线数据执行批量计算的便捷性。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为方便理解,下面先对本申请实施例中的专业术语进行描述,并在后续的描述中保持沿用而不再赘述。
ODS:Operation Data Store数据准备区,也称为贴源层。数据仓库源头系统的数据表通常会原封不动的存储一份,这称为ODS层,是后续数据仓库加工数据的来源。
DWD:Data Warehouse Details细节数据层,是业务层与数据仓库的隔离层。主要对ODS数据层做一些数据清洗和规范化的操作。
DWS:Data Warehouse Service数据服务层,基于DWD上的明细数据,整合汇总成分析某一个主题域的服务数据层。
Flink:Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。
Hadoop:Hadoop是一个用Java编写的Apache开源框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。
Kafka:Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。该项目的目标是为处理实时数据提供一个统一、高吞吐、低延迟的平台。
SQL:SQL(Structured Query Language:结构化查询语言)。
Clickhouse:Clickhouse是俄罗斯的Yandex于2016年开源的用于在线分析处理查询(OLAP:Online Analytical Processing)MPP架构的列式存储数据库(DBMS:DatabaseManagement System),能够使用SQL查询实时生成分析数据报告。
Superset:Superset是一个现代的、企业级的商业智能WEB应用程序,我们可以简单的理解成它是一个开源的数据可视化工具。
Druid/Pivot:Druid是一个分布式的、支持实时多维OLAP分析的数据处理系统,Pivot则是给Druid提供的一个OLAP的可视化工具。
MySQL:MySQL是一个关系型数据库管理系统。
Canal:Canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。
JDBC:JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。
HBASE:HBase是一种构建在HDFS之上的分布式、面向列(但不是列存储)的存储系统。
数据仓库,作为一种面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持企业的管理决策。
针对现有技术中的Kappa架构,因为在获取历史离线数据时,需要从kafka中获取历史离线数据,从而导致一方面增加了kafka的存储代价,另一方面因为需要手写代码从kafka中获取历史离线数据,而导致的获取历史离线数据过程复杂度较高的问题,本申请提出了一种数据仓库,用于提升对流数据(动态数据,也叫实时数据)执行实时计算,和对历史离线数据(静态数据)执行批量计算的便捷性。
为方便理解,下面对本申请实施例中的数据仓库进行描述,请参阅图2,本申请实施例中的数据仓库包括数据来源201、数据存储模块202和数据服务模块203,其中,数据存储模块202包括第一数据存储装置2021和流数据处理引擎2022中的至少一项;数据服务模块203包括第一数据查询模块2031、数据分析模块2032和第二数据查询模块2033中的至少一项;
具体的,当数据存储模块202包括第一数据存储装置2021时,第一数据存储装置2021通过流处理平台204与数据来源201通信连接,以用于从数据来源201获取实时数据(动态数据),并对实时数据(动态数据)执行持久化存储。
需要说明的是,此处的持久化存储即是将实时数据(动态数据)转换为历史离线数据(静态数据)的过程。故此处的第一数据存储装置2021只要可以将实时数据(动态数据)执行持久化存储即可,它具体可以是Hbase、mysql、hive或clickhouse等数据库,此处不做具体限制。
进一步,此处的流处理平台204一般是指为处理实时数据而提供的统一的、高吞吐的、低延时的平台,可以是kafka、Flume、Logstash,Storm、SparkStreaming中的任意一种,此处也不做具体限制。
具体的,当数据服务模块203包括第一数据查询模块2031时,第一数据查询模块2031与第一数据存储装置2021通信连接,第一数据查询模块2031用于在接收到用户的第一查询请求时,根据第一查询请求查询第一数据存储装置2021,并对查询到的历史离线数据进行显示,其中,第一查询请求用于查询历史离线数据;当数据服务模块203包括数据分析模块2032时,数据分析模块2032与第一数据存储装置2021通信连接,数据分析模块2032用于在接收到用户的历史离线数据分析请求时,根据历史离线数据分析请求从第一数据存储装置2021获取历史离线数据并对获取到的历史离线数据进行分析显示。
当数据存储模块202包括流数据处理引擎2022,数据服务模块203包括第二数据查询模块2033时,流数据处理引擎2022用于从流处理平台204获取实时数据(动态数据),从第一数据存储装置2021获取历史离线数据(静态数据),以对实时数据和历史离线数据执行数据处理,并将处理后的历史离线数据通过流处理平台204写入第一数据存储装置2021,将处理后的实时数据写入第二数据查询模块2033。
而第二数据查询2033模块用于在接收到用户的第二查询请求时,则根据第二查询请求对查询到的实时数据进行显示,其中,第二查询请求用于查询实时数据。
具体的,此处的流数据处理引擎为集合了批处理(静态数据处理)和流处理(动态数据处理,也称之为实时数据处理)的统一计算框架,它可以具体是Flink或Spark等,此处不做具体限制。
而第二数据查询模块2033则为可以对外提供查询功能的存储模块,如hive或Hbase等,此处也不做具体限制。
本申请实施例中,数据仓库包括数据来源、数据存储模块和数据服务模块,其中,所述数据存储模块至少包括第一数据存储装置和流数据处理引擎中的至少一项;所述数据服务模块包括第一数据查询模块、数据分析模块和第二数据查询模块中的至少一项;当所述数据存储模块包括所述第一数据存储装置时,所述第一数据存储装置,通过流处理平台与所述数据来源通信连接,以用于从所述数据来源获取实时数据,并对所述实时数据进行持久化存储;当所述数据服务模块包括所述第一数据查询模块时,所述第一数据查询模块与所述第一数据存储装置通信连接,所述第一数据查询模块用于在接收到用户的第一查询请求时,根据所述第一查询请求查询所述第一数据存储装置,并对查询到的历史离线数据进行显示,其中,所述第一查询请求用于查询所述历史离线数据;当所述数据服务模块包括所述数据分析模块时,所述数据分析模块与所述第一数据存储装置通信连接,所述数据分析模块用于在接收到用户的历史离线数据分析请求时,根据所述历史离线数据分析请求从所述第一数据存储装置获取历史离线数据并对获取到的历史离线数据进行分析显示;当所述数据存储装置包括所述流数据处理引擎,所述数据服务模块包括所述第二数据查询模块时,所述流数据处理引擎用于从所述流处理平台获取实时数据,从所述第一数据存储装置获取历史离线数据,以对所述实时数据和所述历史离线数据执行数据处理,并将处理后的历史离线数据通过所述流处理平台写入所述第一数据存储装置,将处理后的实时数据写入所述第二数据查询模块;所述第二数据查询模块用于接收用户的第二查询请求,并根据所述第二查询请求对查询到的实时数据进行显示,其中,所述第二查询请求用于查询所述实时数据。
因为本申请实施例中的数据仓库可以通过第一数据存储装置,对接流处理平台,从数据来源处获取实时数据(动态数据),并将实时数据执行持久化存储,实现将实时数据(动态数据)转换为历史离线数据(静态数据),从而使得流数据处理引擎可以从流处理平台获取实时数据,而从第一数据存储装置获取历史离线数据,也即减小了流处理平台的数据存储代价,从而提升了对实时数据执行实时计算,对历史离线数据执行批量计算的便捷性。
进一步,当第一数据存储装置为Hbase、mysql、hive或clickhouse等数据库时,流数据处理引擎还可以通过标准接口(如JDBC接口、API接口)从第一数据存储装置中直接获取历史离线数据,而避免了手写代码的过程,从而进一步提升了获取历史离线数据的便捷性。
基于图2所述的实施例,本申请实施例数据仓库中的数据存储模块还可以包括第二数据存储装置2023,请参阅图3:
其中,第二数据存储装置2023通过流处理平台204与数据来源201通信连接,其中,第二数据存储装置用于通过流处理平台204从数据来源201获取实时数据,并将获取到的实时数据执行持久化存储,以作为第一数据存储装置2021中数据的备份数据。一般情况下,该备份数据不对外服务,只用于作为部分训练任务的训练数据,且只有在第一数据存储装置2021中的数据发生不可逆的损坏时,才从第二数据存储装置2023中获取该备份数据,以保证备份数据的安全性。
基于图3所述的实施例,下面以处理平台为Kafka流处理平台,流数据处理引擎为Flink,第一数据存储装置为Clickhouse,数据来源包括业务系统的关系型数据库、终端埋点日志和线上服务日志中的至少一种为例,对第一数据存储装置通过流处理平台与数据来源通信连接,以从数据来源获取实时数据的过程进行描述,请参阅图4,图4为数据仓库的另一实施例:
具体的,Kafka流处理平台与业务系统的关系型数据库、终端埋点和线上服务中的至少一种通信连接,使得业务系统的关系型数据库中的实时数据一般通过Canal实时同步写入Kafka消息队列,而终端埋点日志则通过SDK上传到服务器并实时写入Kafka消息队列,而线上服务日志一般直接从容器投递到Kafka消息队列,这样,数据来源便统一存储至Kafka消息队列。
其中,canal译意为水道/管道/沟渠,主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费;而终端埋点就是在业务系统的程序中,植入一些SDK(一种工具代码,主要用于各种事件的收集),进行各种事件的收集。
进一步,Clickhouse通过kafka的数据引擎从Kafka消息队列中获取实时数据,因为kafka的数据引擎支持各种格式的数据(如txt、word、pdf等),故本申请实施例中的数据仓库可以支持多个领域(如互联网领域、硬件领域、销售领域、财务处理领域及人力管理领域的)多种业务系统的数据格式。
下面接着对本申请实施例中的Clickhouse做详细描述:
具体的,本申请实施例中的Clickhouse包括贴源层ODS、明细数据表DWD和数据仓库服务DWS;
其中,ODS用于通过Clickhouse connector从所述Kafka流处理平台获取实时数据,然后通过Clickhouse提供的物化视图(Materialized View)对实时数据执行基础的ETL(Extract抽取、Transform清洗转换和Load加载)后,永久写入所述DWD;
若需要对永久写入数据(也即历史离线数据)执行数据聚合和/或数据去重,则明细数据表DWD将所述永久写入数据写入数据仓库服务DWS的聚合表,以借助于Clickhouse的合并树(MergeTree)对所述永久写入数据执行聚合和/或去重。
进一步,本申请实施例中的贴源层ODS、明细数据表DWD和数据仓库服务DWS都分别包括Online服务和Replica服务,其中,Online服务和Replica服务中的数据保持实时同步,也即Online服务和Replica服务中的数据互为对方的副本数据。其中,Online服务用于在接收到用户的数据写入请求时,根据数据写入请求在贴源层ODS、明细数据表DWD和数据仓库服务DWS中通过物化视图实时写入数据,而Replica服务则用于对外提供查询服务,也即在接收到用户的数据读取请求时,根据数据读取请求实现对数据的实时读取。
而为了实现数据的可追溯性,本申请实施例中的贴源层ODS、明细数据表DWD和数据仓库服务DWS中表格的命名规则相同,其中,命名规则至少包括:数据的来源层、数据的物化视图名、主题域名(如销售域、行政域或售后域)和数据的去向层。
也即本申请实施例通过数据分层(贴源层ODS、明细数据表DWD和数据仓库服务DWS)、主题域划分和命名规范,使得数据之间的血缘关系清晰明确,以保证数据的可追溯性。
而Clickhouse作为一个服务集群,其中包括多个处理终端,以用于对从数据来源获取到的实时数据执行分开并行处理。
为方便理解,下面举例说明:
假设Clickhouse作为一个服务集群,其中设置了3台终端(第一终端、第二终端和第三终端),当Clickhouse接收到实时数据时,可以将接收到的实时数据切分为3块(如第一数据块、第二数据块和第三数据块),且分别通过第一终端对第一数据块执行处理、通过第二终端对第二数据块执行处理,通过第三终端对第三数据块执行处理,这样Clickhouse就可以实现对获取到实时数据的分块并行处理,以提升对数据的处理效率,也保证了数据服务的高可用性。
进一步,因为本申请实施例中的Clickhouse配置了Online服务和Replica服务,其中,Online服务用于提供实时数据的写服务,而Replica服务用于提供实时数据的读服务,且Online服务和Replica服务中的数据实时同步,也即本申请实施例中的数据仓库一方面通过Clickhouse实现了数据的读写分离,另一方面通过对数据的多副本配置,进一步保证了数据服务的高可用性。
进一步,本申请实施例还通过Clickhouse中的多个终端实现对获取到实时数据的分块处理,也进一步保证了数据服务的高可用性。
下面接着对流数据处理引擎Flink对实时数据和历史离线数据的处理过程进行描述:
具体的,假设在既需要获取历史离线数据,也需要获取实时数据的场景中(如对数据执行多流归因操作的过程中),本申请实施例中的流数据处理引擎Flink通过标准接口JDBC从Clickhouse的DWD中获取历史离线数据,而从Kafka流处理平台中获取实时数据,并且Flink还用于将处理完成后的数据通过Kafka存储至clickhouse中,或将处理后的数据存储至第二数据查询模块2033中,以保证用户对数据的高频率查询服务。
作为一种可选的实施例,本申请实施例中的第二数据查询模块2033为Hbase数据库,第一数据查询模块2031为Superset、数据分析模块2032为Druid和Pivot。
具体的,Hbase数据库作为一种面向列的数据存储系统,适合存储PB(1000TB)级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据,从而保证了数据响应速度,且Hbase具有良好的扩展性,也为海量数据的存储提供了基础。
而Superset作为一种Web应用程序,可以实现对数据的可视化查询展示,Druid作为一个分布式的、支持实时多维OLAP(在线分析处理)分析的数据处理系统,可以实现对数据的分析处理,而Pivot则是给Druid提供的一个OLAP(在线分析处理)的可视化展示工具,以用于向用户展示数据处理分析的结果。
实验证明,本申请实施例中的数据仓库,在对外提供数据服务时,一般可以提供秒级别的查询响应速度,且因为数据仓库中的多副本设置,可以保证数据至少99.9%的可用性。
此外,本申请实施例中的数据仓库通过Kafka和Clickhouse相互配合,可以进一步保证数据仓库中数据的准确性。具体的,因为Kafka可以保证数据至少被消费一次,而Clickhouse只有在确认获取到的数据被消费完成以后才上报消费记录,从而保证了Clickhouse从Kafka中获取数据的完整性,而Clickhouse中的DWD层又可以对数据执行去重处理,故进一步保证了本数据仓库中数据的准确性。
进一步,本申请实施例中的数据仓库中的Clickhouse可以采用SQL语句编写物化视图,而SQL语句的编写及维护过程,较现有技术中通过手写代码,并将代码发布至平台上运行的维护过程而言,也更便捷。
上面对本申请实施例中的数据仓库做了详细描述,下面接着对本申请中的数据处理系统进行描述,请参阅图5:
具体的,本申请实施例中的数据处理系统,应用于不同领域(如销售领域、人力管理管理或财务管理领域)的数据处理,用于实现对数据的快速处理和展示,其中,该数据处理系统中设置了如图2至4中所述的数据仓库,具体的,关于数据仓库的描述与图2至图4中描述的类似,此处不再赘述。
进一步,本申请实施例还提供了一种计算机设备的结构示意图,请参阅图6,该计算机设备包括一个或一个以上中央处理器(central processing units,CPU)601和存储器602,该存储器602中存储有一个或一个以上的数据仓库,其中,关于数据仓库的描述与本申请图2至图4实施例中描述的类似,此处不再赘述。
其中,存储器602可以是易失性存储或持久存储。存储在存储器602的程序可以包括一个或一个以上模块,每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器601可以设置为与存储器602通信,在计算机设备上执行存储器602中的一系列指令操作。
计算机设备还可以包括一个或一个以上电源603,一个或一个以上有线或无线网络接口604,一个或一个以上输入输出接口605,和/或,一个或一个以上操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种数据仓库,其特征在于,包括:
数据来源、数据存储模块和数据服务模块,其中,所述数据存储模块包括第一数据存储装置和流数据处理引擎中的至少一项;所述数据服务模块包括第一数据查询模块、数据分析模块和第二数据查询模块中的至少一项;
当所述数据存储模块包括所述第一数据存储装置时,所述第一数据存储装置,通过流处理平台与所述数据来源通信连接,以用于从所述数据来源获取实时数据,并对所述实时数据进行持久化存储;
当所述数据服务模块包括所述第一数据查询模块时,所述第一数据查询模块与所述第一数据存储装置通信连接,所述第一数据查询模块用于在接收到用户的第一查询请求时,根据所述第一查询请求查询所述第一数据存储装置,并对查询到的历史离线数据进行显示,其中,所述第一查询请求用于查询所述历史离线数据;
当所述数据服务模块包括所述数据分析模块时,所述数据分析模块与所述第一数据存储装置通信连接,所述数据分析模块用于在接收到用户的历史离线数据分析请求时,根据所述历史离线数据分析请求从所述第一数据存储装置获取历史离线数据并对获取到的历史离线数据进行分析显示;
当所述数据存储装置包括所述流数据处理引擎,所述数据服务模块包括所述第二数据查询模块时,所述流数据处理引擎用于从所述流处理平台获取实时数据,从所述第一数据存储装置获取历史离线数据,以对所述实时数据和所述历史离线数据执行数据处理,并将处理后的历史离线数据通过所述流处理平台写入所述第一数据存储装置,将处理后的实时数据写入所述第二数据查询模块;
所述第二数据查询模块用于接收用户的第二查询请求,并根据所述第二查询请求对查询到的实时数据进行显示,其中,所述第二查询请求用于查询所述实时数据。
2.根据权利要求1所述的数据仓库,其特征在于,所述数据存储模块还包括第二数据存储装置,所述第二数据存储装置通过所述流处理平台与所述数据来源通信连接,所述第二数据存储装置用于通过所述流处理平台从所述数据来源获取实时数据,并将获取到的实时数据执行持久化存储,以作为所述第一数据存储装置中数据的备份数据。
3.根据权利要求1所述的数据仓库,其特征在于,所述数据来源包括业务系统的关系型数据库、终端埋点日志和线上服务日志中的至少一种;所述流处理平台包括Kafka流处理平台;所述第一数据存储装置包括Clickhouse;
所述Clickhouse,通过所述Kafka流处理平台分别与所述业务系统的关系型数据库、所述终端埋点日志和所述线上服务日志中的至少一个通信连接,以获取所述关系型数据库、所述终端埋点日志和所述线上服务日志中至少一项的实时数据。
4.根据权利要求3所述的数据仓库,其特征在于,所述Clickhouse包括贴源层ODS、明细数据表DWD和数据仓库服务DWS;
其中,所述贴源层ODS用于通过Clickhouse connector从所述Kafka流处理平台获取实时数据,并对所述实时数据执行抽取、清洗转换和/或加载操作后,永久写入所述明细数据表DWD;
若所述明细数据表DWD接收到对永久写入数据的数据聚合和/或数据去重处理请求,则根据所述数据聚合和/或数据去重请求,将所述永久写入数据写入数据仓库服务DWS的聚合表,以用于对所述永久写入数据执行聚合和/或去重处理。
5.根据权利要求4所述的数据仓库,其特征在于,所述贴源层ODS、明细数据表DWD和数据仓库服务DWS中的表格采用相同的命名规则,所述命名规则包括:数据的来源层、数据的物化视图名、主题域名和数据的去向层中的至少一项。
6.根据权利要求4所述的数据仓库,其特征在于,所述贴源层ODS、所述明细数据表DWD和所述数据仓库服务DWS,都分别设置了online服务和replica服务,其中,所述online服务用于接收用户的数据写入请求,并根据所述数据写入请求对待写入数据执行实时写入,所述replica服务用于接收用户的数据读取请求,并根据所述数据读取请求实时读取数据;
所述online服务和所述replica服务还用于对双方的存储数据执行实时同步。
7.根据权利要求4所述的数据仓库,其特征在于,所述Clickhouse为服务集群,所述处理集群包括多个处理终端,所述多个处理终端用于对从所述数据来源获取到的实时数据执行分块并行处理。
8.根据权利要求1所述的数据仓库,其特征在于,所述流数据处理引擎包括Flink,所述Flink用于从所述明细数据表DWD中获取历史离线数据,并将处理后的历史离线数据通过所述Kafka流处理平台存储至所述Clickhouse;
所述Flink还用于从所述Kafka流处理平台中获取实时数据,并将处理后的实时数据存储至所述第二数据存储查询模块,其中,所述第二数据存储查询模块包括Hbase数据库。
9.根据权利要求1所述的数据仓库,其特征在于,所述第一数据查询模块包括superset,所述数据分析模块包括Druid数据处理系统和Pivot可视化工具。
10.一种数据处理系统,其特征在于,包括如权利要求1至9中任一项所述的数据仓库。
11.一种计算机装置,包括处理器和存储器,其特征在于,所述存储器中存储了如权利要求1至9中任一项所述的数据仓库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210642584.7A CN114860780A (zh) | 2022-06-08 | 2022-06-08 | 一种数据仓库、数据处理系统及计算机装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210642584.7A CN114860780A (zh) | 2022-06-08 | 2022-06-08 | 一种数据仓库、数据处理系统及计算机装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860780A true CN114860780A (zh) | 2022-08-05 |
Family
ID=82624146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210642584.7A Pending CN114860780A (zh) | 2022-06-08 | 2022-06-08 | 一种数据仓库、数据处理系统及计算机装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860780A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827922A (zh) * | 2022-12-08 | 2023-03-21 | 华润网络(深圳)有限公司 | 基于风电数据的可视化分析处理方法、系统和计算机设备 |
CN117331992A (zh) * | 2023-09-19 | 2024-01-02 | 上海麦杰科技股份有限公司 | 一种工业大数据处理方法 |
-
2022
- 2022-06-08 CN CN202210642584.7A patent/CN114860780A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827922A (zh) * | 2022-12-08 | 2023-03-21 | 华润网络(深圳)有限公司 | 基于风电数据的可视化分析处理方法、系统和计算机设备 |
CN115827922B (zh) * | 2022-12-08 | 2024-02-27 | 华润网络(深圳)有限公司 | 基于风电数据的可视化分析处理方法、系统和计算机设备 |
CN117331992A (zh) * | 2023-09-19 | 2024-01-02 | 上海麦杰科技股份有限公司 | 一种工业大数据处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684352B (zh) | 数据分析系统、方法、存储介质及电子设备 | |
US20220405298A1 (en) | Large scale unstructured database systems | |
CN104933112B (zh) | 分布式互联网交易信息存储处理方法 | |
JP6697392B2 (ja) | 半構造データスキーマのトランスペアレントディスカバリ | |
Li et al. | A spatiotemporal indexing approach for efficient processing of big array-based climate data with MapReduce | |
CN107451225B (zh) | 用于半结构化数据的可缩放分析平台 | |
CN105677844B (zh) | 一种移动广告大数据的定向推送及用户跨屏识别方法 | |
CN104881424B (zh) | 一种基于正则表达式的电力大数据采集、存储及分析方法 | |
JP6388655B2 (ja) | 選択性用データビットインターリーブによるリレーショナルデータベースのマルチカラムインデックスの生成 | |
CN106611046A (zh) | 基于大数据技术的空间数据存储处理中间件框架 | |
CN114860780A (zh) | 一种数据仓库、数据处理系统及计算机装置 | |
Gürcan et al. | Real-time processing of big data streams: Lifecycle, tools, tasks, and challenges | |
CN108268565B (zh) | 基于数据仓库处理用户浏览行为数据的方法及系统 | |
CN103268336A (zh) | 一种快数据和大数据结合的数据处理方法及其系统 | |
US20140012867A1 (en) | Method And Process For Enabling Distributing Cache Data Sources For Query Processing And Distributed Disk Caching Of Large Data And Analysis Requests | |
CN109753502B (zh) | 一种基于NiFi的数据采集方法 | |
CN112825069B (zh) | 数据库数据的分析方法、设备、系统及存储介质 | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
US11151146B2 (en) | System and method for multi-dimensional real time vector search and heuristics backed insight engine | |
Murugesan et al. | Audit log management in MongoDB | |
Kekevi et al. | Real-time big data processing and analytics: Concepts, technologies, and domains | |
CN106649636A (zh) | 一种基于移动终端的人员流动性分析方法及装置 | |
CN111125045B (zh) | 一种轻量级etl处理平台 | |
Bukhari et al. | Hadoop based demography big data management system | |
CN107357919A (zh) | 行为日志查询系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |