CN117390040B - 基于实时宽表的业务请求处理方法、设备及存储介质 - Google Patents
基于实时宽表的业务请求处理方法、设备及存储介质 Download PDFInfo
- Publication number
- CN117390040B CN117390040B CN202311685582.7A CN202311685582A CN117390040B CN 117390040 B CN117390040 B CN 117390040B CN 202311685582 A CN202311685582 A CN 202311685582A CN 117390040 B CN117390040 B CN 117390040B
- Authority
- CN
- China
- Prior art keywords
- real
- wide table
- data source
- binlog
- data
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000012545 processing Methods 0.000 claims abstract description 81
- 238000000034 method Methods 0.000 claims abstract description 23
- 241000282813 Aepyceros melampus Species 0.000 claims description 13
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims 2
- 238000011161 development Methods 0.000 abstract description 3
- 230000008859 change Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013075 data extraction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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/22—Indexing; Data structures therefor; Storage structures
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理领域,公开了一种基于实时宽表的业务请求处理方法、设备及存储介质。该方法包括:获取数据源表,并将数据源表加载到Hive数据仓库;使用Hive数据仓库中的SQL语句创建宽表;将数据源表加载到宽表中,得到目标宽表;检测到数据源表对应的binlog时,根据binlog对应的事件信息,对目标宽表执行逻辑处理,得到实时宽表;接收到数据源表对应的查询请求时,对实时宽表执行逻辑处理,以响应查询请求。在本发明实施例中,数据库查询压力大幅降低,后端开发压力得到极大释放,提高了可维护性。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种基于实时宽表的业务请求处理方法、设备及存储介质。
背景技术
传统的业务系统中,系统获取数据的方式是通过联表查询来获取的,而在像类似金融行业中,业务流程是非常复杂的,比如一个列表展示的数据可能就需要将大量表进行关联,然后经过复杂的计算得出。
而对于存库、跨域关联的表,很难通过简单的联表查询获取。对于联表查询,应用层会让用户体验不好,数据迟迟加载不出来,另一方面,对于运维来说,这样的查询方式会对mysql数据库带来很大的压力,带来mysql数据库崩溃的风险;联表查询需要编写成大量的sql代码,可维护性变得很差。
发明内容
本发明的主要目的在于解决联表查询需要编写成大量的sql代码,可维护性变得很差的技术问题。
本发明第一方面提供了一种基于实时宽表的业务请求处理方法,所述基于实时宽表的业务请求处理方法包括:
获取数据源表,并将所述数据源表加载到Hive数据仓库;
使用所述Hive数据仓库中的SQL语句创建宽表;
将所述数据源表加载到所述宽表中,得到目标宽表;
检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,对所述目标宽表执行逻辑处理,得到实时宽表;
接收到所述数据源表对应的查询请求时,对所述实时宽表执行逻辑处理,以响应所述查询请求。
可选的,在本发明第一方面的第一种实现方式中,所述检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,对所述目标宽表执行逻辑处理,得到实时宽表的步骤包括:
同时检测到所述数据源表对应的多条binlog时,执行并行度增加操作,得到多个并行处理单元;
利用多个所述并行处理单元,根据多条所述binlog对应的事件信息,对所述目标宽表进行并行逻辑处理,得到实时宽表。
可选的,在本发明第一方面的第二种实现方式中,所述检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,对所述目标宽表执行逻辑处理,得到实时宽表的步骤包括:
检测到所述数据源表对应的binlog时,判断所述binlog中事件信息的事件类型;
在所述事件类型为更新时,判断所述binlog的复杂度;
在所述复杂度小于阈值时,从所述binlog中获取待更新数据;
根据所述待更新数据,对所述目标宽表执行更新操作,得到实时宽表。
可选的,在本发明第一方面的第三种实现方式中,所述在所述事件类型未更新事件时,判断所述binlog的复杂度的步骤之后,所述方法还包括:
在所述复杂度大于等于阈值时,从所述binlog中获取关联键值;
根据所述关联键值在所述数据源表获取待更新数据;
根据所述待更新数据,对所述目标宽表执行更新操作,得到实时宽表。
可选的,在本发明第一方面的第四种实现方式中,所述检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,对所述目标宽表执行逻辑处理,得到实时宽表的步骤包括:
检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,利用Impala对所述目标宽表执行逻辑处理,得到实时宽表。
可选的,在本发明第一方面的第五种实现方式中,所述接收到所述数据源表对应的查询请求时,对所述实时宽表执行逻辑处理,以响应所述查询请求的步骤包括:
接收到所述数据源表对应的查询请求时,利用Impala对所述实时宽表执行逻辑处理,以响应所述查询请求。
可选的,在本发明第一方面的第六种实现方式中,所述将所述数据源表加载到所述宽表中,得到目标宽表的步骤之后,实时方法还包括:
使用DataX将所述目标宽表同步到Impala中。
可选的,在本发明第一方面的第七种实现方式中,所述检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,对所述目标宽表执行逻辑处理,得到实时宽表的步骤之后,所述方法还包括:
周期性备份所述实时宽表。
本发明第二方面提供了一种基于实时宽表的业务请求处理设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于实时宽表的业务请求处理设备执行上述的基于实时宽表的业务请求处理方法。
本发明的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的基于实时宽表的业务请求处理方法。
在本发明实施例中,获取数据源表,并将所述数据源表加载到Hive数据仓库;使用所述Hive数据仓库中的SQL语句创建宽表;将所述数据源表加载到所述宽表中,得到目标宽表;检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,对所述目标宽表执行逻辑处理,得到实时宽表;接收到所述数据源表对应的查询请求时,对所述实时宽表执行逻辑处理,以响应所述查询请求。基于实时宽表的业务请求处理设备通过实时监测和处理数据源表的变化,并实时更新目标宽表,可使得基于宽表的数据模型具有较高的灵活性和扩展性,能够适应业务需求和数据变化。通过对实时宽表进行逻辑处理,还可以实现对数据的实时加工和处理,满足不同业务场景下的需求。同时,实时宽表的处理也可以帮助优化数据存储和查询性能,提高资源利用效率。在面对复杂的业务场景和多维度的数据分析需求时,基于实时宽表的处理方法能够更好地支持复杂的数据关联和计算,提供更全面的数据视图和分析结果。通过对数据变化的实时监测和处理,可以增强数据的一致性和可追溯性。业务用户可以更可靠地追溯数据的来源和变化,增强数据治理和合规性。通过实时宽表响应业务请求,可使得用户体验得到极大提升,数据库查询压力大幅降低,后端开发压力得到极大释放,提高了可维护性。
附图说明
图1为本发明实施例中基于实时宽表的业务请求处理方法的一个实施例示意图;
图2为本发明实施例中基于实时宽表的业务请求处理方法104步骤的一个具体实施方式示意图;
图3为本发明实施例中基于实时宽表的业务请求处理设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于实时宽表的业务请求处理方法、设备及存储介质。
下面将参照附图更详细地描述本发明公开的实施例。虽然附图中显示了本发明公开的某些实施例,然而应当理解的是,本发明公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本发明公开的附图及实施例仅用于示例性作用,并非用于限制本发明公开的保护范围。
在本发明公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中基于实时宽表的业务请求处理方法的一个实施例包括:
101、获取数据源表,并将所述数据源表加载到Hive数据仓库;
具体的,建立到数据源的连接,数据源可以是关系型数据库(如MySQL、Oracle等)、NoSQL数据库(如MongoDB、Cassandra等)、文件系统(如CSV、JSON、Parquet等)或者其他数据存储系统。
建立了与数据源的连接后,执行数据抽取操作。包括从数据源中检索需要的数据,可以根据时间戳增量抽取或全量抽取数据。
在数据抽取后,可能需要对数据进行一些转换操作,比如数据清洗、格式转换、字段映射等,以确保数据的质量和适用性。
数据准备就绪后,就可以将数据加载到Hive数据仓库中。可以通过Hive提供的LOAD DATA或INSERT INTO语句实现,也可以使用ETL工具(如Apache NiFi、Apache Airflow等)自动化数据加载过程。Hive以Hadoop分布式文件系统(HDFS)作为底层存储,利用Hadoop集群的计算和存储资源来处理数据。Hive允许用户将结构化的数据存储在Hadoop集群中,这些数据可以来自各种来源,如日志文件、关系型数据库等。Hive维护了一个元数据存储,描述了存储在Hadoop中的数据的结构和位置,这使得用户能够通过类似于SQL的查询语言对数据进行操作。Hive提供了类似于SQL的查询语言——HiveQL,使得用户能够使用熟悉的SQL语法对Hadoop中的数据进行查询和分析。Hive支持数据提取、转换和加载(ETL)操作,用户可以通过Hive对数据进行清洗、转换和整合。由于Hive是建立在Hadoop集群之上的,因此具有良好的水平扩展性,能够处理大规模数据和并行计算任务。
在加载数据到Hive数据仓库时,对数据进行分区,以便更高效地进行查询和分析。分区可以基于时间、地区、业务线等维度进行划分。
102、使用所述Hive数据仓库中的SQL语句创建宽表;
具体的,在Hive客户端中,执行编写好的SQL语句,以创建宽表。
103、将所述数据源表加载到所述宽表中,得到目标宽表;
具体的,根据数据源表和宽表之间字段的映射关系,在Hive或其他数据库管理系统中执行编写好的查询语句,从数据源表中获取需要的数据。将查询语句返回的结果数据插入到宽表中,得到目标宽表。
可选的,创建一个预制配置文件,记录数据源表与宽表之间的关系。配置文件可以使用JSON、XML或其他合适的格式。在配置文件中,为每个目的宽表指定对应的数据源表,并定义数据源表和宽表之间字段的映射关系。
104、检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,对所述目标宽表执行逻辑处理,得到实时宽表;
具体的,当检测到数据源表的binlog变更时,使用binlog解析库或CDC工具解析binlog事件,获取详细的事件信息,包括操作类型(插入、更新、删除)、受影响的字段和对应的值等。根据解析得到的binlog事件信息,对目标宽表进行相应的逻辑处理。具体的处理方式取决于业务需求。
可选的,在FlinkCDC程序启动时,读取预制配置文件,并将其中定义的目标宽表进行注册。注册过程可以使用Flink的Table API或类似的机制,将目标宽表信息存储在程序的内部或外部注册表中。使用Flink提供的CDC(Change Data Capture)功能,监控MySQL的binlog文件,并实时解析binlog数据。
根据预制配置文件中定义的数据源表和目标宽表关系,判断是否需要同步当前解析到的binlog数据。
对于需要同步的数据源表,根据预制配置文件中定义的源表字段,比较字段内容前后是否发生变化。
如果发生变化,触发相应的宽表更新操作,可以通过Flink的流处理功能来实现。
在触发更新操作后,根据预制配置文件中定义的宽表字段和源表字段的映射关系,执行相应的更新操作,得到实时宽表。
可选的,通过字段变化检查,只有发生变化时才触发后续的宽表更新操作,以降低不必要的数据处理和资源消耗。
可选的,检测到所述数据源表对应的binlog时,判断所述binlog中事件信息的事件类型;在所述事件类型为更新时,判断所述binlog的复杂度;在所述复杂度小于阈值时,从所述binlog中获取待更新数据;根据所述待更新数据,对所述目标宽表执行更新操作,得到实时宽表。具体的,一条binlog日志对应的只更新大宽表中和该日志中涉及的表有关系的字段,简单的更新,直接从binlog中获取变更的数据。
可选的,在所述复杂度大于等于阈值时,从所述binlog中获取关联键值;根据所述关联键值在所述数据源表获取待更新数据;根据所述待更新数据,对所述目标宽表执行更新操作,得到实时宽表。具体的,需要通过联合其他表获取的,则通过提取binlog中关联键的值,用关联键的值去数据库中通过最简单的基于索引的方式快速查询出需要关联的各表信息,按规则算出最终的数据给与更新,此种方式避免了通过缓存查询方式造成的数据不一致问题。
可选的,每一条binlog日志都是一个表中的数据记录的增删改情况,该方案构建实时宽表时会根据宽表的具体逻辑选择一张表,对其插入时先删后插入,保证故障恢复时的幂等性操作,插入时会根据需要实时从数据库中通过简单的 基于索引的方式查询其他字段所在表信息后一起插入,而其他宽表使用到表数据变更过来的binlog日志记录则只触发更新各自涉及到的字段,提升更新效率。
可选的,使用DataX将所述目标宽表同步到Impala中。Impala使用类似于传统关系型数据库的SQL语法,使得用户可以用熟悉的方式查询和分析大规模数据集,而无需事先对数据进行转换或移动。通过利用集群中各个节点的内存和计算资源,Impala能够加速复杂的分析查询,并在秒级甚至毫秒级内返回结果。Impala的主要特点包括快速查询、与Hadoop生态系统集成、SQL兼容性高、科并行处理、实时性高。
进一步的,检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,利用Impala对所述目标宽表执行逻辑处理,得到实时宽表。Impala是一种开源的、基于内存的分布式SQL查询引擎,旨在提供快速的交互式查询能力,可以在Hadoop生态系统中对存储在HDFS(Hadoop分布式文件系统)中的数据进行实时查询和分析。
进一步的,接收到所述数据源表对应的查询请求时,利用Impala对所述实时宽表执行逻辑处理,以响应所述查询请求。
105、接收到所述数据源表对应的查询请求时,对所述实时宽表执行逻辑处理,以响应所述查询请求。
具体的,设置一个接口或服务接收查询请求,可以是RESTful API、消息队列订阅、RPC调用等方式,可根据具体情况选择合适的通信方式接收查询请求。对接收到的查询请求进行解析,获取查询的条件、需要查询的字段、排序方式等相关信息。根据查询请求中的条件和要求,对实时宽表进行相应的逻辑处理。将经过逻辑处理后得到的数据作为查询结果返回给请求方。可以根据具体情况选择合适的数据传输方式,例如返回JSON格式数据、通过消息队列发送结果等。在处理查询请求的过程中,可以记录相关的日志信息,包括请求信息、处理耗时、返回结果等,便于后续监控和故障排查。
可选的,周期性备份所述实时宽表。具体的,定时对程序做保存点操作,以防数据出错时可以及时从最近的保存点进行流量回放,恢复数据。
在本实施例中,获取数据源表,并将所述数据源表加载到Hive数据仓库;使用所述Hive数据仓库中的SQL语句创建宽表;将所述数据源表加载到所述宽表中,得到目标宽表;检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,对所述目标宽表执行逻辑处理,得到实时宽表;接收到所述数据源表对应的查询请求时,对所述实时宽表执行逻辑处理,以响应所述查询请求。基于实时宽表的业务请求处理设备通过实时监测和处理数据源表的变化,并实时更新目标宽表,可使得基于宽表的数据模型具有较高的灵活性和扩展性,能够适应业务需求和数据变化。通过对实时宽表进行逻辑处理,还可以实现对数据的实时加工和处理,满足不同业务场景下的需求。同时,实时宽表的处理也可以帮助优化数据存储和查询性能,提高资源利用效率。在面对复杂的业务场景和多维度的数据分析需求时,基于实时宽表的处理方法能够更好地支持复杂的数据关联和计算,提供更全面的数据视图和分析结果。通过对数据变化的实时监测和处理,可以增强数据的一致性和可追溯性。业务用户可以更可靠地追溯数据的来源和变化,增强数据治理和合规性。通过实时宽表响应业务请求,可使得用户体验得到极大提升,数据库查询压力大幅降低,后端开发压力得到极大释放,提高了可维护性。
请参阅图2,图2为本发明实施例中基于实时宽表的业务请求处理方法104步骤的一个具体实施方式示意图,在104步骤中可以执行以下步骤:
1041、同时检测到所述数据源表对应的多条binlog时,执行并行度增加操作,得到多个并行处理单元;
1042、利用多个所述并行处理单元,根据多条所述binlog对应的事件信息,对所述目标宽表进行并行逻辑处理,得到实时宽表。
具体的,同时检测到所述数据源表对应的多条binlog时,执行并行度增加操作,得到多个并行处理单元;利用多个所述并行处理单元,根据多条所述binlog对应的事件信息,对所述目标宽表进行并行逻辑处理,得到实时宽表。
在本实施例中,由于业务流程复杂,数据流程操作存在较多的事务,一个事务里对同一条记录会同时有增删改等多种操作,采用增加并行度的方式来提高同步速度时采用默认的随机分区方式,由于不确定那条记录会先到会造成很多的数据一致性问题并造成过多的mysql死锁,所以,采用读取binglog 获取表名和主键ID ,通过对表名和主键进行联合hash分区,增加并行度的同时,让同一条记录的变更进入同一个分区去进行操作,从而避免了数据一致性问题,死锁的频度也大大降低,并通过死锁重试完成最终的数据更新,以此保证构建实时宽表的同步效率以及数据一致性。
图3是本发明实施例提供的一种基于实时宽表的业务请求处理设备的结构示意图,该基于实时宽表的业务请求处理设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对基于实时宽表的业务请求处理设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在基于实时宽表的业务请求处理设备500上执行存储介质530中的一系列指令操作。
基于实时宽表的业务请求处理设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,Free BSD等等。本领域技术人员可以理解,图3示出的基于实时宽表的业务请求处理设备结构并不构成对基于实时宽表的业务请求处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述基于实时宽表的业务请求处理方法的步骤。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (5)
1.一种基于实时宽表的业务请求处理方法,其特征在于,所述基于实时宽表的业务请求处理方法包括:
获取数据源表,并将所述数据源表加载到Hive数据仓库,其中,在加载所述数据源表到所述Hive数据仓库时,基于时间、地区、业务线对所述数据源表进行分区;
使用所述Hive数据仓库中的SQL语句创建宽表;
将所述数据源表加载到所述宽表中,得到目标宽表;
检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,对所述目标宽表执行逻辑处理,得到实时宽表;
接收到所述数据源表对应的查询请求时,对所述实时宽表执行逻辑处理,以响应所述查询请求;
其中,所述检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,对所述目标宽表执行逻辑处理,得到实时宽表的步骤包括:
同时检测到所述数据源表对应的多条binlog时,执行并行度增加操作,得到多个并行处理单元;
利用多个所述并行处理单元,根据多条所述binlog对应的事件信息,利用Impala对所述目标宽表进行并行逻辑处理,得到实时宽表;
其中,所述接收到所述数据源表对应的查询请求时,对所述实时宽表执行逻辑处理,以响应所述查询请求的步骤包括:
接收到所述数据源表对应的查询请求时,利用Impala对所述实时宽表执行逻辑处理,以响应所述查询请求;
其中,所述检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,对所述目标宽表执行逻辑处理,得到实时宽表的步骤包括:
检测到所述数据源表对应的binlog时,判断所述binlog中事件信息的事件类型;
在所述事件类型为更新时,判断所述binlog的复杂度;
在所述复杂度小于阈值时,从所述binlog中获取待更新数据;
根据所述待更新数据,对所述目标宽表执行更新操作,得到实时宽表;
其中,所述在所述事件类型为更新时,判断所述binlog的复杂度的步骤之后,所述方法还包括:
在所述复杂度大于等于阈值时,从所述binlog中获取关联键值;
根据所述关联键值在所述数据源表获取待更新数据;
根据所述待更新数据,对所述目标宽表执行更新操作,得到实时宽表。
2.根据权利要求1所述的基于实时宽表的业务请求处理方法,其特征在于,所述将所述数据源表加载到所述宽表中,得到目标宽表的步骤之后,实时方法还包括:
使用DataX将所述目标宽表同步到Impala中。
3.根据权利要求1所述的基于实时宽表的业务请求处理方法,其特征在于,所述检测到所述数据源表对应的binlog时,根据所述binlog对应的事件信息,对所述目标宽表执行逻辑处理,得到实时宽表的步骤之后,所述方法还包括:
周期性备份所述实时宽表。
4.一种基于实时宽表的业务请求处理设备,其特征在于,所述基于实时宽表的业务请求处理设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述基于实时宽表的业务请求处理设备执行如权利要求1-3中任一项所述的基于实时宽表的业务请求处理方法。
5.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-3中任一项所述的基于实时宽表的业务请求处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311685582.7A CN117390040B (zh) | 2023-12-11 | 2023-12-11 | 基于实时宽表的业务请求处理方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311685582.7A CN117390040B (zh) | 2023-12-11 | 2023-12-11 | 基于实时宽表的业务请求处理方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117390040A CN117390040A (zh) | 2024-01-12 |
CN117390040B true CN117390040B (zh) | 2024-03-29 |
Family
ID=89472453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311685582.7A Active CN117390040B (zh) | 2023-12-11 | 2023-12-11 | 基于实时宽表的业务请求处理方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117390040B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106777368A (zh) * | 2017-01-24 | 2017-05-31 | 北京奇虎科技有限公司 | 数据库查询语言适配方法及装置、分布式数据存储系统 |
CN110502566A (zh) * | 2019-08-29 | 2019-11-26 | 江苏满运软件科技有限公司 | 近实时数据采集方法、装置、电子设备、存储介质 |
CN113297316A (zh) * | 2020-06-01 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种实现数据同步的方法及装置和系统 |
CN113760922A (zh) * | 2020-09-30 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种业务数据处理系统、方法、服务器和存储介质 |
CN114579584A (zh) * | 2022-05-06 | 2022-06-03 | 腾讯科技(深圳)有限公司 | 数据表处理方法、装置、计算机设备和存储介质 |
CN115062028A (zh) * | 2022-07-27 | 2022-09-16 | 中建电子商务有限责任公司 | 一种OLTP领域多表join查询的方法 |
CN115114319A (zh) * | 2022-06-15 | 2022-09-27 | 北京快乐茄信息技术有限公司 | 基于数据宽表进行数据查询的方法、装置及设备 |
CN116303814A (zh) * | 2022-12-23 | 2023-06-23 | 车主邦(北京)科技有限公司 | 数仓系统、数据处理方法、装置、介质及设备 |
CN116501715A (zh) * | 2023-04-28 | 2023-07-28 | 成都赛力斯科技有限公司 | 一种多表全量数据的实时关联更新方法及装置 |
-
2023
- 2023-12-11 CN CN202311685582.7A patent/CN117390040B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106777368A (zh) * | 2017-01-24 | 2017-05-31 | 北京奇虎科技有限公司 | 数据库查询语言适配方法及装置、分布式数据存储系统 |
CN110502566A (zh) * | 2019-08-29 | 2019-11-26 | 江苏满运软件科技有限公司 | 近实时数据采集方法、装置、电子设备、存储介质 |
CN113297316A (zh) * | 2020-06-01 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种实现数据同步的方法及装置和系统 |
CN113760922A (zh) * | 2020-09-30 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种业务数据处理系统、方法、服务器和存储介质 |
CN114579584A (zh) * | 2022-05-06 | 2022-06-03 | 腾讯科技(深圳)有限公司 | 数据表处理方法、装置、计算机设备和存储介质 |
CN115114319A (zh) * | 2022-06-15 | 2022-09-27 | 北京快乐茄信息技术有限公司 | 基于数据宽表进行数据查询的方法、装置及设备 |
CN115062028A (zh) * | 2022-07-27 | 2022-09-16 | 中建电子商务有限责任公司 | 一种OLTP领域多表join查询的方法 |
CN116303814A (zh) * | 2022-12-23 | 2023-06-23 | 车主邦(北京)科技有限公司 | 数仓系统、数据处理方法、装置、介质及设备 |
CN116501715A (zh) * | 2023-04-28 | 2023-07-28 | 成都赛力斯科技有限公司 | 一种多表全量数据的实时关联更新方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117390040A (zh) | 2024-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10554771B2 (en) | Parallelized replay of captured database workload | |
US10262002B2 (en) | Consistent execution of partial queries in hybrid DBMS | |
CN109918349B (zh) | 日志处理方法、装置、存储介质和电子装置 | |
JP5298117B2 (ja) | 分散コンピューティングにおけるデータマージング | |
CN108694195B (zh) | 一种分布式数据仓库的管理方法及系统 | |
CN111177178B (zh) | 一种数据处理方法及相关设备 | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
CN111026568B (zh) | 数据和任务关系构建方法、装置、计算机设备及存储介质 | |
US20160210316A1 (en) | Distributed system with accelerator-created containers | |
CN111008244A (zh) | 一种用于数据库的同步和分析方法及系统 | |
CN111046036A (zh) | 数据同步方法、装置、系统及存储介质 | |
CN113407600B (zh) | 一种动态实时同步多源大表数据的增强实时计算方法 | |
CN108268468B (zh) | 一种大数据的分析方法及系统 | |
WO2021031583A1 (zh) | 执行语句的方法、装置、服务器及存储介质 | |
CN115587118A (zh) | 任务数据的维表关联处理方法及装置、电子设备 | |
CN114756629A (zh) | 基于sql的多源异构数据交互分析引擎及方法 | |
CN110704442A (zh) | 一种大数据的实时获取方法及装置 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN110309206B (zh) | 订单信息采集方法及系统 | |
CN117390040B (zh) | 基于实时宽表的业务请求处理方法、设备及存储介质 | |
CN113297245A (zh) | 获取执行信息的方法及装置 | |
CN112835932B (zh) | 业务表的批量处理方法及装置、非易失性存储介质 | |
CN109902067B (zh) | 文件处理方法、装置、存储介质及计算机设备 | |
CN113268483A (zh) | 请求处理方法和装置、电子设备和存储介质 | |
CN113612832A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |