CN112632053A - 实现数据拼接的方法和实现数据拼接的系统 - Google Patents

实现数据拼接的方法和实现数据拼接的系统 Download PDF

Info

Publication number
CN112632053A
CN112632053A CN202011608637.0A CN202011608637A CN112632053A CN 112632053 A CN112632053 A CN 112632053A CN 202011608637 A CN202011608637 A CN 202011608637A CN 112632053 A CN112632053 A CN 112632053A
Authority
CN
China
Prior art keywords
data
splicing
database
data record
key
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
Application number
CN202011608637.0A
Other languages
English (en)
Inventor
石光川
王太泽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
4Paradigm Beijing Technology Co Ltd
Original Assignee
4Paradigm Beijing Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 4Paradigm Beijing Technology Co Ltd filed Critical 4Paradigm Beijing Technology Co Ltd
Priority to CN202011608637.0A priority Critical patent/CN112632053A/zh
Publication of CN112632053A publication Critical patent/CN112632053A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供一种实现数据拼接的方法和实现数据拼接的系统。所述方法包括:响应于接收到的数据拼接任务,读取待拼接的主表,其中,所述数据拼接任务是包括时间条件的数据拼接任务;基于所述主表的每个主键,在数据库中查询副表中相应主键的时间戳信息符合所述时间条件的数据记录;其中,所述副表中的每条数据记录具有时间戳信息,所述数据库针对所述副表中相同主键的数据记录,基于所述时间戳信息按时序保存所述副表中相同主键的每条数据记录;基于查询到的数据记录,生成所述主表与所述查询到的数据记录的拼接结果。

Description

实现数据拼接的方法和实现数据拼接的系统
技术领域
本公开涉及计算机技术领域,更具体地说,涉及一种实现数据拼接的方法和实现数据拼接的系统。
背景技术
在大数据、机器学习等数据驱动的领域中,数据处理平台(框架)起到重要的作用,例如常见的Spark、Hadoop、Storm、Flink等等开源数据处理框架广泛应用其中。从数据处理逻辑来看,数据处理可以分为单条数据处理(例如,过滤、变换等等)、多条数据处理(例如,聚合、拼接等等)两种。对于单条数据处理,由于可以很好的实现负载均衡,而且对于单条数据的处理耗时差异不大,所以可以通过数据并行做到很好的分布式处理性能。对于多条数据处理,基于不同的数据哈希散列机制,各种框架的处理性能和支持程度不尽相同。对于数据处理,存在批量、流式两种数据处理形式,这两个数据处理形式在机器学习领域经常并存,即,相同的数据处理逻辑需要同时支持批量、流式两种处理方式。因此,需要针对批量主流式两种处理方式分别设计两套执行逻辑框架来实现。然而,相同数据处理逻辑分别在两个框架下分别实现会导致额外的代码开发、维护成本,同时潜在的有两种处理方式结果不一致的风险。
发明内容
本公开的示例性实施例可至少部分地解决上述问题。
根据本公开的一方面,提供一种实现数据拼接的方法,其特征在于,包括:响应于接收到的数据拼接任务,读取待拼接的主表,其中,所述数据拼接任务是包括时间条件的数据拼接任务;基于所述主表的每个主键,在数据库中查询副表中相应主键的时间戳信息符合所述时间条件的数据记录;其中,所述副表中的每条数据记录具有时间戳信息,所述数据库针对所述副表中相同主键的数据记录,基于所述时间戳信息按时序保存所述副表中相同主键的每条数据记录;基于查询到的数据记录,生成所述主表与所述查询到的数据记录的拼接结果。
可选地,所述读取待拼接的主表,可包括:从存储所述主表的存储介质中,批量读取所述主表的数据;或者从所述主表的流式数据源,读取所述主表的数据。
可选地,所述副表的数据可被预先导入所述数据库中;或者,所述副表的一部分数据可被预先导入所述数据库中,所述副表的另一部分数据可在所述数据拼接任务执行过程中被导入所述数据库中。
可选地,所述副表的数据可从存储所述副表的存储介质中被批量读取并导入所述数据库中;或者所述副表的数据可从所述副表的流式数据源被读取并导入所述数据库中。
可选地,所述时间条件可为时间窗条件;所述基于所述主表的每个主键,在数据库中查询副表中相应主键的时间戳信息符合所述时间条件的数据记录,可包括:基于所述主表的每个主键,在所述数据库中查询所述副表中相应主键的时间戳信息落入所述时间窗内的数据记录。
可选地,所述基于所述主表的每个主键,在所述数据库中查询所述副表中相应主键的时间戳信息落入所述时间窗内的数据记录,可包括:针对每个主键,基于所述时间窗的起始时间点、结束时间点以及所述副表中相应主键的数据记录的时间戳信息,查询所述副表中相应主键的起始数据记录和结束数据记录,并获取起始数据记录和结束数据记录之间的所有数据记录,从而实现一次查询到相应主键的时间戳信息落入所述时间窗内的全量数据记录。
可选地,在针对相同主键查询到的数据记录包括多条数据记录的情况下,所述基于查询到的数据记录,生成所述主表与所述查询到的数据记录的拼接结果,可包括:对相同主键的所述多条数据记录执行数据聚合处理,获得聚合结果数据;基于所述聚合结果数据,生成所述拼接结果。
可选地,所述对所述多条数据记录执行数据聚合,可包括:在所述数据库中对相同主键的所述多条数据记录执行数据聚合。
可选地,所述方法还可包括:对所述聚合结果数据执行缓存处理。
可选地,所述对所述聚合结果数据执行缓存处理,可包括:在所述数据库中执行数据聚合的情况下,将所述聚合结果数据缓存在所述数据库中。
根据本公开的另一方面,提供一种实现数据拼接的系统,其特征在于,包括:读取装置,被配置为:响应于接收到的数据拼接任务,读取待拼接的主表,其中,所述数据拼接任务是包括时间条件的数据拼接任务;查询装置,被配置为:基于所述主表的每个主键,在数据库中查询副表中相应主键的时间戳信息符合所述时间条件的数据记录;其中,所述副表中的每条数据记录具有时间戳信息,所述数据库针对所述副表中相同主键的数据记录,基于所述时间戳信息按时序保存所述副表中相同主键的每条数据记录;拼接装置,被配置为:基于查询到的数据记录,生成所述主表与所述查询到的数据记录的拼接结果。
可选地,读取装置可被配置为:从存储所述主表的存储介质中,批量读取所述主表的数据;或者从所述主表的流式数据源,读取所述主表的数据。
可选地,所述副表的数据可被预先导入所述数据库中;或者,所述副表的一部分数据可被预先导入所述数据库中,所述副表的另一部分数据可在所述数据拼接任务执行过程中被导入所述数据库中。
可选地,所述副表的数据可从存储所述副表的存储介质中被批量读取并导入所述数据库中;或者所述副表的数据可从所述副表的流式数据源被读取并导入所述数据库中。
可选地,所述时间条件可为时间窗条件;查询装置可被配置为:基于所述主表的每个主键,在所述数据库中查询所述副表中相应主键的时间戳信息落入所述时间窗内的数据记录。
可选地,查询装置可被配置为:针对每个主键,基于所述时间窗的起始时间点、结束时间点以及所述副表中相应主键的数据记录的时间戳信息,查询所述副表中相应主键的起始数据记录和结束数据记录,并获取起始数据记录和结束数据记录之间的所有数据记录,从而实现一次查询到相应主键的时间戳信息落入所述时间窗内的全量数据记录。
可选地,在针对相同主键查询到的数据记录包括多条数据记录的情况下,拼接装置可被配置为:对相同主键的所述多条数据记录执行数据聚合处理,获得聚合结果数据;基于所述聚合结果数据,生成所述拼接结果。
可选地,拼接装置可被配置为:在所述数据库中对相同主键的所述多条数据记录执行数据聚合。
可选地,所述系统还可包括:缓存装置,被配置为:对所述聚合结果数据执行缓存处理。
可选地,缓存装置可被配置为:在所述数据库中执行数据聚合的情况下,将所述聚合结果数据缓存在所述数据库中。
根据本公开的另一方面,提供一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行根据本公开的实现数据拼接的方法。
根据本公开的另一方面,提供一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行根据本公开的实现数据拼接的方法。
根据本公开的实现数据拼接的方法和系统,针对多条处理拼接问题,提出基于时序数据库的时序数据拼接方案,对于获取聚合数据和执行聚合计算的操作,批量和流式两种数据处理方式可复用相同的实现逻辑,可避免分别实现两套数据处理逻辑,进而避免处理结果不一致的风险。
此外,根据本公开的实现数据拼接的方法和系统,能够在时序数据库中完成数据查询和数据聚合的操作,可将在时序数据库中执行数据聚合后的聚合结果通过网络传输到分布式任务的计算节点服务器中,从而避免将某些主体的大量数据记录一一传输到计算节点服务器的现象,这样可以减少时序数据库和计算所在服务器之间的网络通讯开销,有效提升计算性能,从而避免因数据倾斜现象导致的计算性能下降。
此外,根据本公开的实现数据拼接的方法和系统,能够对数据聚合结果进行缓存,以供后续相同操作使用直接返回结果,利用缓存机制来提供针对高频操作的计算性能。
附图说明
通过结合附图,从实施例的下面描述中,本公开这些和/或其它方面及优点将会变得清楚,并且更易于理解,其中:
图1是示出根据本公开的示例性实施例的数据拼接流程的示意图。
图2是示出根据本公开的示例性实施例的实现数据拼接的方法的流程图。
图3是示出根据本公开的示例性实施例的实现数据拼接的系统的框图。
具体实施方式
提供参照附图的以下描述以帮助对由权利要求及其等同物限定的本公开的实施例的全面理解。包括各种特定细节以帮助理解,但这些细节仅被视为是示例性的。因此,本领域的普通技术人员将认识到在不脱离本公开的范围和精神的情况下,可对描述于此的实施例进行各种改变和修改。此外,为了清楚和简洁,省略对公知的功能和结构的描述。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
目前,批量和流式两种数据处理形式在机器学习领域经常并存,但现有的数据处理框架对于多条数据处理通常都是针对一种处理方式进行优化和设计,而对另一种处理方式支持不足,例如,以Spark为代表的基于哈希散列(partition)的面向批量处理方式和以Flink为代表的基于水位线(watermark)的面向流式处理方式。相同数据处理逻辑分别在两个框架下分别实现会导致额外的代码开发、维护成本,同时潜在的有两种处理方式结果不一致的风险。
为了解决上述技术问题,本公开提供了一种新颖的实现数据拼接的方法和实现数据拼接的系统,具体地说,针对多条处理拼接问题,提出基于时序数据库的时序数据拼接方案,由于时序数据库对于每一条数据记录都保留了历史数据取值及其相应的时间戳信息,可以查询数据记录在某个历史时间戳的取值,并可根据时间戳信息仅通过一次查询就获取某个时间区域内的全量数据,便于执行数据获取和聚合,因此,基于时序数据库的时序数据拼接方案,对于获取聚合数据和执行聚合计算的操作,批量和流式两种数据处理方式可复用相同的实现逻辑,两者区别仅仅在于数据读取和写入的方式不同,因此可避免分别实现两套数据处理逻辑,进而避免处理结果不一致的风险。
此外,在机器学习过程中,数据清洗、数据变换、特征工程等数据处理任务占据了非常大的比重,拼接和时序数据处理作为常用的操作,框架的支持程度和性能很大程度上决定了最终机器学习效果的天花板。目前已有的分布式数据处理框架在拼接和时序处理中普遍存在数据倾斜导致慢节点的问题。具体来说,将数据进行哈希散列后,每个计算单元接收到的数据量差异很大,即数据倾斜现象,进而导致整个分布式任务中存在少数计算节点的耗时明显多于其他节点的现象,最终导致整个任务整体耗时较高。然而,在机器学习领域,数据分布二八现象非常普遍(即20%的主体贡献了80%的数据,例如,微博20%的活跃用户贡献了80%的文章发表),对于此种数据的多条数据处理经常会产生数据倾斜现象,进而影响整个数据处理任务的性能。
在分布式任务中,由于某些主体的数据量超大,因此将这类主体的数据记录传输到计算节点服务器中需要耗费大量时间,导致相应计算节点服务器处理速度慢。为此,本公开提出的实现数据拼接的方法和实现数据拼接的系统能够在时序数据库中完成数据查询和数据聚合的操作,可将在时序数据库中执行数据聚合后的聚合结果通过网络传输到分布式任务的计算节点服务器中,从而避免将某些主体的大量数据记录一一传输到计算节点服务器的现象,这样可以减少时序数据库和计算所在服务器之间的网络通讯开销,有效提升计算性能,从而避免因数据倾斜现象导致的计算性能下降。
此外,本公开提出的实现数据拼接的方法和实现数据拼接的系统还能够对数据聚合结果进行缓存,以供后续相同操作使用直接返回结果,利用缓存机制来提升针对高频操作的计算性能。
下面,将参照图1至图3具体描述根据本公开的示例性实施例的实现数据拼接的方法和实现数据拼接的系统。
图1是示出根据本公开的示例性实施例的数据拼接流程的示意图。
参照图1,数据拼接任务主要涉及主表读取、查询数据和数据聚合。数据拼接任务涉及的数据主要包括主表数据、副表数据和结果数据。主表数据、副表数据和结果数据可被保存在数据存储介质中。当然,图1仅是示例性的,不代表主表数据、副表数据和结果数据存储在同一数据存储介质中,可以是任何分布式的存储方式,本公开对主表数据、副表数据和结果数据的存储不作任何限制。此外,主表数据和副表数据还可从流式数据源获取,而不保存在数据存储介质中。时序数据库用于导入副表数据。时序数据库的特点在于:当将副表数据插入时序数据库时,对于相同主键的数据记录,可按时序有序地保存数据记录;当在时序数据库中执行数据查询时,可按主键全量查询数据记录;当在时序数据库中执行区间数据查询时,可按主键查询某时间区域内的所有数据记录。而普通数据库在插入数据时通常是使用覆盖更新命令,无法查询历史数据或历史时间区域内的数据。下面,将具体描述根据本公开的示例性实施例的数据拼接流程。
具体地说,在步骤S1,可将副表数据导入到时序数据库中。对于批量处理的情况,可从存储介质(例如,硬盘)批量读取副表数据并将副表数据导入时序数据库。对于流式处理的情况,可从副表的流式数据源读取副表数据并将副表数据导入时序数据库。当将副表数据导入到时序数据库中时,可将副表数据的时间戳信息作为时序游标,以用于按时序保存相同主键的数据记录。
在步骤S2,可读取主表数据。对于批量处理的情况,可从存储介质(例如,硬盘)批量读取主表数据。对于流式处理的情况,可从主表的流式数据源读取主表数据。这里,对于同一数据拼接任务,主表和副表的处理方式不作限制,例如,主表和副表的处理方式都是批量处理,或者主表和副表的处理方式都是流式处理,或者主表的处理方式是批量处理而副表的处理方式是流式处理,或者主表的处理方式是流式处理而副表的处理方式是批量处理。
在步骤S3,可基于主表中的主键,查询时序数据库,从而获取符合查询条件的副表数据记录。在步骤S4,可对查询结果进行数据聚合,获得聚合结果。在步骤S5,可将聚合结果保存到数据存储介质或写入到流式数据源,作为结果数据。对于批量处理和流式处理来说,差异仅体现在步骤S1、S2和S5,即数据读取和写入方式存在差异,而步骤S3至S4的处理逻辑是一致的,不需要为了批量处理和流式处理而开发两套处理框架,从而节约了代码开发的成本,还能够避免两种方式处理结果不一致的风险。
此外,步骤S3和S4可以合并成一个步骤,在时序数据库中同时完成数据查询和数据聚合的操作,可以减少时序数据库和计算所在服务器之间因传输大量数据记录而造成的网络通讯开销,有效提升计算性能,从而避免因数据倾斜现象导致的计算性能下降。
此外,可对步骤S4获得的聚合结果进行缓存,用于后续复用,从而对于高频操作利用缓存机制有效提升计算性能。
图2是示出根据本公开的示例性实施例的实现数据拼接的方法的流程图。
参照图2,在步骤201,可响应于接收到的数据拼接任务,读取待拼接的主表。这里,数据拼接任务可以是包括时间条件的数据拼接任务。根据本公开的示例性实施例,时间条件可以是查询某个时间点的数据记录的条件。例如,当时间条件设置为12月份最后一条数据记录时,数据拼接任务则是将12月份最后一条数据记录进行拼接。根据本公开的示例性实施例,时间条件可以是查询某个时间区间的数据记录的条件。例如,当时间条件设置为最近一个月内时,数据拼接任务则是将最近一个月内的数据记录进行拼接。
根据本公开的示例性实施例,可从存储待拼接的主表的存储介质(例如,硬盘)中批量读取待拼接的主表的数据。此读取方式适用于主表是批量处理的情况。
根据本公开的示例性实施例,可从待拼接的主表的流式数据源,读取待拼接的主表的数据。这里,流式数据源指可以通过接口获取新增数据且不存在数据读取完成状态的数据提供装置,例如,消息队列、数据生成服务等等。例如,可从消息队列(Message Queue,例如Kafka)读取待拼接的主表的数据。又例如,可直接通过服务请求接收待拼接的主表的数据,例如,数据生成服务本身对外暴露一个restful接口,拼接任务通过restful调用读取待拼接的主表的数据。
在步骤202,可基于主表的每个主键,在数据库中查询副表中相应主键的时间戳信息符合时间条件的数据记录。这里,副表中的每条数据记录具有时间戳信息。数据库可实现为上述的时序数据库,即,可针对副表中相同主键的数据记录,基于时间戳信息按时序保存副表中相同主键的每条数据记录。
根据本公开的示例性实施例,副表的数据可被预先导入数据库中。例如,对于批量处理的情况,副表的数据可从存储副表的存储介质(例如,硬盘)中被批量读取并导入数据库中。
根据本公开的示例性实施例,副表的一部分数据被预先导入数据库中,副表的另一部分数据在数据拼接任务执行过程中被导入数据库中。例如,对于流式处理的情况,副表的数据从副表的流式数据源被读取并导入数据库中。由于流式处理的特点,在数据拼接任务执行过程中,还可能从副表的流式数据源实时获取到副表的数据,实时获取到的副表的数据可在数据拼接任务执行过程中被导入数据库。例如,可从消息队列(Message Queue,例如Kafka)读取副表的数据。又例如,可直接通过服务请求接收副表的数据,例如,数据生成服务本身对外暴露一个restful接口,拼接任务通过restful调用读取副表的数据。
根据本公开的示例性实施例,在时间条件是查询某个时间点的数据记录的条件的情况下,可基于主表的每个主键,在数据库中查询副表中相应主键的时间戳信息符合该时间点的数据记录。例如,在时间条件设置为12月份最后一条数据记录的情况下,可基于主表的每个主键,在数据库中查询副表中相应主键的12月份最后一条数据记录。
根据本公开的示例性实施例,在时间条件是查询某个时间窗的数据记录的条件的情况下,可基于主表的每个主键,在数据库中查询副表中相应主键的时间戳信息落入该时间窗的数据记录。例如,在时间条件设置为最近一个月内的情况下,可基于主表的每个主键,在数据库中查询副表中相应主键的最近一个月内的数据记录。
根据本公开的示例性实施例,可针对每个主键,基于时间窗的起始时间点、结束时间点以及副表中相应主键的数据记录的时间戳信息,查询副表中相应主键的起始数据记录和结束数据记录,并获取起始数据记录和结束数据记录之间的所有数据记录,从而实现一次查询到相应主键的时间戳信息落入时间窗内的全量数据记录。例如,可将时间窗的起始时间点与副表中相应主键的数据记录的时间戳信息进行比较,找到符合该时间窗的起始时间点的起始数据记录,并可将将时间窗的结束时间点与副表中相应主键的数据记录的时间戳信息进行比较,找到符合该时间窗的结果时间点的结束数据记录,由于在数据库中,副表的数据记录是基于时间戳信息按时序有序存储的,因此,当找到起始数据记录和结束数据记录,可直接获取起始数据记录和结束数据记录之间的所有数据记录,作为该时间窗的数据记录。因此,仅通过一条查询语句就能查询出数据库中该时间窗内的所有数据记录,而无需一条一条的查询。
在步骤203,可基于查询到的数据记录,生成主表与查询到的数据记录的拼接结果。例如,在批量处理的情况下,生成的拼接结果可被保存到存储介质(例如,硬盘)中。在流式处理的情况下,生成的拼接结果可被写入到流式数据源中。
根据本公开的示例性实施例,在针对相同主键查询到的数据记录包括多条数据记录的情况下,可对相同主键的多条数据记录执行数据聚合处理,获得聚合结果数据;基于聚合结果数据,生成拼接结果。例如,可将相同主键的多条数据记录发送到计算节点服务器,在计算节点服务器上执行数据聚合处理。又例如,可先在数据库中执行针对相同主键的多条数据记录的聚合处理,再将聚合结果数据发送到计算节点服务器,这样可减少时序数据库和计算节点服务器之间的网络通讯开销,有效提升计算性能。
此外,在获取聚合结果数据后,可对聚合结果数据执行缓存处理,以用于后续复用,从而对于高频操作利用缓存机制有效提升计算性能。例如,当在计算节点服务器上执行数据聚合处理的情况下,可将聚合结果数据缓存在计算节点服务器的存储器中。又例如,当在数据库中执行数据聚合的情况下,可将聚合结果数据缓存在数据库中。
下面,以统计用户最近一个月消费总额的数据拼接任务为例,说明根据本公开的示例性实施例的实现数据拼接的方法。例如,主表可以是用户信息表(userInfo),包括如下信息:用户标识(userId)(例如,身份证号、系统内部分配的用户唯一标识uid等等)、性别、年龄等。副表可以是消费记录(txRecord),包括如下信息:本次消费的用户对应的用户标识(txUserId)、本次消费的时间(txTimestamp)、本次消费金额(txAmt)。主表的主键可以为用户标识(userId),副表的主键可以为用户标识(txUserId),userId和txUserId可以是相同或相应的信息。副表的数据可被导入时序数据库中,并以时间(txTimestamp)为时序游标,对相同主键的数据记录按时序有序地保存。
当接收到统计用户最近一个月消费总额的数据拼接任务时,可读取主表,并基于主键userId查询时序数据库,获取同相主键userId的txTimestamp落入最近一个月的所有消费记录。用类SQL语言描述如下:
SELECT*FROM txRecord WHERE txUserId=userId AND txTimestamp BETWEEN[currentTime-1month,currentTime]
当获取到相同主键的最近一个月的所有消费记录时,可对所有消费记录的消费金额字段txAmt相加,得到最近一个月的消费总额,从而完成数据聚合。
此外,数据查询和数据聚合可合成一个操作,在时序数据库中完成数据查询和数据聚合。用类SQL语言描述如下:
SELECT SUM(txAmt)FROM txRecord WHERE txUserId=userId AND txTimestampBETWEEN[currentTime-1month,currentTime]
此外,当获得数据聚合结果时,可对数据聚合结果进行缓存,即,对用户最近一个月消费总额的记录进行保存。例如,如果后续接收到需要统计最近两个月内的消费总额的数据拼接任务,可复用该数据聚合结果。
图3是示出根据本公开的示例性实施例的实现数据拼接的系统的框图。
参照图3,根据本公开的示例性实施例的实现数据拼接的系统300可包括读取装置301、查询装置302、拼接装置303。
读取装置301可响应于接收到的数据拼接任务,读取待拼接的主表。这里,数据拼接任务可以是包括时间条件的数据拼接任务。根据本公开的示例性实施例,时间条件可以是查询某个时间点的数据记录的条件。例如,当时间条件设置为12月份最后一条数据记录时,数据拼接任务则是将12月份最后一条数据记录进行拼接。根据本公开的示例性实施例,时间条件可以是查询某个时间区间的数据记录的条件。例如,当时间条件设置为最近一个月内时,数据拼接任务则是将最近一个月内的数据记录进行拼接。
根据本公开的示例性实施例,读取装置301可从存储待拼接的主表的存储介质(例如,硬盘)中批量读取待拼接的主表的数据。此读取方式适用于主表是批量处理的情况。
根据本公开的示例性实施例,读取装置301可从待拼接的主表的流式数据源,读取待拼接的主表的数据。这里,流式数据源指可以通过接口获取新增数据且不存在数据读取完成状态的数据提供装置,例如,消息队列、数据生成服务等等。例如,读取装置301可从消息队列(Message Queue,例如Kafka)读取待拼接的主表的数据。又例如,读取装置301可直接通过服务请求接收待拼接的主表的数据,例如,数据生成服务本身对外暴露一个restful接口,拼接任务通过restful调用读取待拼接的主表的数据。
查询装置302可基于主表的每个主键,在数据库中查询副表中相应主键的时间戳信息符合时间条件的数据记录。这里,副表中的每条数据记录具有时间戳信息。数据库可实现为上述的时序数据库,即,可针对副表中相同主键的数据记录,基于时间戳信息按时序保存副表中相同主键的每条数据记录。
根据本公开的示例性实施例,副表的数据可被预先导入数据库中。例如,对于批量处理的情况,副表的数据可从存储副表的存储介质(例如,硬盘)中被批量读取并导入数据库中。
根据本公开的示例性实施例,副表的一部分数据被预先导入数据库中,副表的另一部分数据在数据拼接任务执行过程中被导入数据库中。例如,对于流式处理的情况,副表的数据从副表的流式数据源被读取并导入数据库中。由于流式处理的特点,在数据拼接任务执行过程中,还可能从副表的流式数据源实时获取到副表的数据,实时获取到的副表的数据可在数据拼接任务执行过程中被导入数据库。例如,可从消息队列(Message Queue,例如Kafka)读取副表的数据。又例如,可直接通过服务请求接收副表的数据,例如,数据生成服务本身对外暴露一个restful接口,拼接任务通过restful调用读取副表的数据。
根据本公开的示例性实施例,在时间条件是查询某个时间点的数据记录的条件的情况下,查询装置302可基于主表的每个主键,在数据库中查询副表中相应主键的时间戳信息符合该时间点的数据记录。例如,在时间条件设置为12月份最后一条数据记录的情况下,查询装置302可基于主表的每个主键,在数据库中查询副表中相应主键的12月份最后一条数据记录。
根据本公开的示例性实施例,在时间条件是查询某个时间窗的数据记录的条件的情况下,查询装置302可基于主表的每个主键,在数据库中查询副表中相应主键的时间戳信息落入该时间窗的数据记录。例如,在时间条件设置为最近一个月内的情况下,可基于主表的每个主键,在数据库中查询副表中相应主键的最近一个月内的数据记录。
根据本公开的示例性实施例,查询装置302可针对每个主键,基于时间窗的起始时间点、结束时间点以及副表中相应主键的数据记录的时间戳信息,查询副表中相应主键的起始数据记录和结束数据记录,并获取起始数据记录和结束数据记录之间的所有数据记录,从而实现一次查询到相应主键的时间戳信息落入时间窗内的全量数据记录。例如,查询装置302可将时间窗的起始时间点与副表中相应主键的数据记录的时间戳信息进行比较,找到符合该时间窗的起始时间点的起始数据记录,并可将将时间窗的结束时间点与副表中相应主键的数据记录的时间戳信息进行比较,找到符合该时间窗的结果时间点的结束数据记录,由于在数据库中,副表的数据记录是基于时间戳信息按时序有序存储的,因此,当找到起始数据记录和结束数据记录,可直接获取起始数据记录和结束数据记录之间的所有数据记录,作为该时间窗的数据记录。因此,查询装置302仅通过一条查询语句就能查询出数据库中该时间窗内的所有数据记录,而无需一条一条的查询。
拼接装置303可基于查询到的数据记录,生成主表与查询到的数据记录的拼接结果。例如,在批量处理的情况下,生成的拼接结果可被保存到存储介质(例如,硬盘)中。在流式处理的情况下,生成的拼接结果可被写入到流式数据源中。
根据本公开的示例性实施例,在针对相同主键查询到的数据记录包括多条数据记录的情况下,拼接装置可对相同主键的多条数据记录执行数据聚合处理,获得聚合结果数据;基于聚合结果数据,生成拼接结果。例如,拼接装置可将相同主键的多条数据记录发送到计算节点服务器,在计算节点服务器上执行数据聚合处理。又例如,拼接装置可先在数据库中执行针对相同主键的多条数据记录的聚合处理,再将聚合结果数据发送到计算节点服务器,这样可减少时序数据库和计算节点服务器之间的网络通讯开销,有效提升计算性能。
此外,根据本公开的示例性实施例的实现数据拼接的系统还可包括缓存装置(未示出)。在获取聚合结果数据后,缓存装置可对聚合结果数据执行缓存处理,以用于后续复用,从而对于高频操作利用缓存机制有效提升计算性能。例如,当在计算节点服务器上执行数据聚合处理的情况下,缓存装置可将聚合结果数据缓存在计算节点服务器的存储器中。又例如,当在数据库中执行数据聚合的情况下,缓存装置可将聚合结果数据缓存在数据库中。
根据本公开的实现数据拼接的方法和系统,针对多条处理拼接问题,提出基于时序数据库的时序数据拼接方案,对于获取聚合数据和执行聚合计算的操作,批量和流式两种数据处理方式可复用相同的实现逻辑,可避免分别实现两套数据处理逻辑,进而避免处理结果不一致的风险。
此外,根据本公开的实现数据拼接的方法和系统,能够在时序数据库中完成数据查询和数据聚合的操作,可将在时序数据库中执行数据聚合后的聚合结果通过网络传输到分布式任务的计算节点服务器中,从而避免将某些主体的大量数据记录一一传输到计算节点服务器的现象,这样可以减少时序数据库和计算所在服务器之间的网络通讯开销,有效提升计算性能,从而避免因数据倾斜现象导致的计算性能下降。
此外,根据本公开的实现数据拼接的方法和系统,能够对数据聚合结果进行缓存,以供后续相同操作使用直接返回结果,利用缓存机制来提升针对高频操作的计算性能。
以上已参照图1至图3描述了根据本公开示例性实施例的实现数据拼接的方法和系统。
图3所示出的实现数据拼接的系统中的各个装置可被配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,各个装置可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。此外,各个装置所实现的一个或多个功能也可由物理实体设备(例如,处理器、客户端或服务器等)中的组件来统一执行。
此外,参照图2所描述的实现数据拼接的方法可通过记录在计算机可读存储介质上的程序(或指令)来实现。例如,根据本公开的示例性实施例,可提供存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行根据本公开的实现数据拼接的方法。
上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,应注意,计算机程序还可用于执行除了上述步骤以外的附加步骤或者在执行上述步骤时执行更为具体的处理,这些附加步骤和进一步处理的内容已经在参照图2进行相关方法的描述过程中提及,因此这里为了避免重复将不再进行赘述。
应注意,根据本公开示例性实施例实现数据拼接的系统中的各个装置可完全依赖计算机程序的运行来实现相应的功能,即,各个装置中的计算机程序的功能架构中与各步骤相应,使得整个系统通过专门的软件包(例如,lib库)而被调用,以实现相应的功能。
另一方面,图3中的各个装置也可以通过硬件、软件、固件、中间件、微代码或其任意组合来实现。当以软件、固件、中间件或微代码实现时,用于执行相应操作的程序代码或者代码段可以存储在诸如存储介质的计算机可读介质中,使得处理器可通过读取并运行相应的程序代码或者代码段来执行相应的操作。
例如,本公开的示例性实施例还可以实现为计算装置,该计算装置包括存储部件和处理器,存储部件中存储有计算机可执行指令集合,当计算机可执行指令集合被处理器执行时,执行根据本公开的示例性实施例的实现数据拼接的方法。
具体说来,计算装置可以部署在服务器或客户端中,也可以部署在分布式网络环境中的节点装置上。此外,计算装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其他能够执行上述指令集合的装置。
这里,计算装置并非必须是单个的计算装置,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。计算装置还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子装置。
在计算装置中,处理器可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
根据本公开示例性实施例的实现数据拼接的方法中所描述的某些操作可通过软件方式来实现,某些操作可通过硬件方式来实现,此外,还可通过软硬件结合的方式来实现这些操作。
处理器可运行存储在存储部件之一中的指令或代码,其中,存储部件还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储部件可与处理器集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储部件可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储部件和处理器可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器能够读取存储在存储部件中的文件。
此外,计算装置还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。计算装置的所有组件可经由总线和/或网络而彼此连接。
根据本公开示例性实施例的实现数据拼接的方法可被描述为各种互联或耦合的功能块或功能示图。然而,这些功能块或功能示图可被均等地集成为单个的逻辑装置或按照非确切的边界进行操作。
因此,参照图2所描述的实现数据拼接的方法可通过包括至少一个计算装置和至少一个存储指令的存储装置的系统来实现。
根据本公开的示例性实施例,至少一个计算装置是根据本公开示例性实施例的用于执行实现数据拼接的方法的计算装置,存储装置中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个计算装置执行时,执行根据本公开的实现数据拼接的方法。
以上描述了本公开的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本公开不限于所披露的各示例性实施例。在不偏离本公开的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本公开的保护范围应该以权利要求的范围为准。

Claims (10)

1.一种实现数据拼接的方法,其特征在于,包括:
响应于接收到的数据拼接任务,读取待拼接的主表,其中,所述数据拼接任务是包括时间条件的数据拼接任务;
基于所述主表的每个主键,在数据库中查询副表中相应主键的时间戳信息符合所述时间条件的数据记录;其中,所述副表中的每条数据记录具有时间戳信息,所述数据库针对所述副表中相同主键的数据记录,基于所述时间戳信息按时序保存所述副表中相同主键的每条数据记录;
基于查询到的数据记录,生成所述主表与所述查询到的数据记录的拼接结果。
2.如权利要求1所述的方法,其特征在于,所述读取待拼接的主表,包括:
从存储所述主表的存储介质中,批量读取所述主表的数据;或者
从所述主表的流式数据源,读取所述主表的数据。
3.如权利要求1所述的方法,其特征在于,
所述副表的数据被预先导入所述数据库中;
或者,
所述副表的一部分数据被预先导入所述数据库中,所述副表的另一部分数据在所述数据拼接任务执行过程中被导入所述数据库中。
4.如权利要求1所述的方法,其特征在于,所述副表的数据从存储所述副表的存储介质中被批量读取并导入所述数据库中;或者
所述副表的数据从所述副表的流式数据源被读取并导入所述数据库中。
5.如权利要求1所述的数据拼接方法,其特征在于,所述时间条件为时间窗条件;
所述基于所述主表的每个主键,在数据库中查询副表中相应主键的时间戳信息符合所述时间条件的数据记录,包括:
基于所述主表的每个主键,在所述数据库中查询所述副表中相应主键的时间戳信息落入所述时间窗内的数据记录。
6.如权利要求5所述的方法,其特征在于,所述基于所述主表的每个主键,在所述数据库中查询所述副表中相应主键的时间戳信息落入所述时间窗内的数据记录,包括:
针对每个主键,基于所述时间窗的起始时间点、结束时间点以及所述副表中相应主键的数据记录的时间戳信息,查询所述副表中相应主键的起始数据记录和结束数据记录,并获取起始数据记录和结束数据记录之间的所有数据记录,从而实现一次查询到相应主键的时间戳信息落入所述时间窗内的全量数据记录。
7.如权利要求1所述的方法,其特征在于,在针对相同主键查询到的数据记录包括多条数据记录的情况下,所述基于查询到的数据记录,生成所述主表与所述查询到的数据记录的拼接结果,包括:
对相同主键的所述多条数据记录执行数据聚合处理,获得聚合结果数据;
基于所述聚合结果数据,生成所述拼接结果。
8.一种实现数据拼接的系统,其特征在于,包括:
读取装置,被配置为:响应于接收到的数据拼接任务,读取待拼接的主表,其中,所述数据拼接任务是包括时间条件的数据拼接任务;
查询装置,被配置为:基于所述主表的每个主键,在数据库中查询副表中相应主键的时间戳信息符合所述时间条件的数据记录;其中,所述副表中的每条数据记录具有时间戳信息,所述数据库针对所述副表中相同主键的数据记录,基于所述时间戳信息按时序保存所述副表中相同主键的每条数据记录;
拼接装置,被配置为:基于查询到的数据记录,生成所述主表与所述查询到的数据记录的拼接结果。
9.一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1至7中的任一权利要求所述的实现数据拼接的方法。
10.一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求1至7中的任一权利要求所述的实现数据拼接的方法。
CN202011608637.0A 2020-12-30 2020-12-30 实现数据拼接的方法和实现数据拼接的系统 Pending CN112632053A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011608637.0A CN112632053A (zh) 2020-12-30 2020-12-30 实现数据拼接的方法和实现数据拼接的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011608637.0A CN112632053A (zh) 2020-12-30 2020-12-30 实现数据拼接的方法和实现数据拼接的系统

Publications (1)

Publication Number Publication Date
CN112632053A true CN112632053A (zh) 2021-04-09

Family

ID=75286865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011608637.0A Pending CN112632053A (zh) 2020-12-30 2020-12-30 实现数据拼接的方法和实现数据拼接的系统

Country Status (1)

Country Link
CN (1) CN112632053A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140317087A1 (en) * 2013-04-22 2014-10-23 Salesforce.Com, Inc. Systems and methods for implementing and maintaining sampled tables in a database system
CN109739855A (zh) * 2018-12-28 2019-05-10 第四范式(北京)技术有限公司 实现数据表拼接及自动训练机器学习模型的方法和系统
CN110263105A (zh) * 2019-05-21 2019-09-20 北京百度网讯科技有限公司 查询处理方法、查询处理系统、服务器和计算机可读介质
CN111177196A (zh) * 2019-12-25 2020-05-19 海尔优家智能科技(北京)有限公司 时间窗聚合计算方法及装置
CN111488340A (zh) * 2019-01-29 2020-08-04 菜鸟智能物流控股有限公司 数据处理方法、装置及电子设备
CN111522846A (zh) * 2020-04-09 2020-08-11 浙江邦盛科技有限公司 一种基于时序中间态数据结构的数据聚合方法
CN111831383A (zh) * 2020-07-20 2020-10-27 北京百度网讯科技有限公司 窗口拼接方法、装置、设备以及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140317087A1 (en) * 2013-04-22 2014-10-23 Salesforce.Com, Inc. Systems and methods for implementing and maintaining sampled tables in a database system
CN109739855A (zh) * 2018-12-28 2019-05-10 第四范式(北京)技术有限公司 实现数据表拼接及自动训练机器学习模型的方法和系统
CN111488340A (zh) * 2019-01-29 2020-08-04 菜鸟智能物流控股有限公司 数据处理方法、装置及电子设备
CN110263105A (zh) * 2019-05-21 2019-09-20 北京百度网讯科技有限公司 查询处理方法、查询处理系统、服务器和计算机可读介质
CN111177196A (zh) * 2019-12-25 2020-05-19 海尔优家智能科技(北京)有限公司 时间窗聚合计算方法及装置
CN111522846A (zh) * 2020-04-09 2020-08-11 浙江邦盛科技有限公司 一种基于时序中间态数据结构的数据聚合方法
CN111831383A (zh) * 2020-07-20 2020-10-27 北京百度网讯科技有限公司 窗口拼接方法、装置、设备以及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李娜;邢长征: "时间滑动窗口内基于密度的数据流聚类算法", 《计算机应用》, vol. 31, no. 5, pages 1363 - 1366 *

Similar Documents

Publication Publication Date Title
US10831562B2 (en) Method and system for operating a data center by reducing an amount of data to be processed
CN111368520A (zh) 一种电子表格的编辑方法及设备
CN111339073A (zh) 实时数据处理方法、装置、电子设备及可读存储介质
CN110489440B (zh) 数据查询方法和装置
WO2021189953A1 (zh) 日志数据处理方法、装置、计算机设备和存储介质
US20220292083A1 (en) System and method for batch and real-time feature computation
CN112199442B (zh) 分布式批量下载文件方法、装置、计算机设备及存储介质
CN109871354B (zh) 一种文件处理的方法及装置
US10725799B2 (en) Big data pipeline management within spreadsheet applications
EP3848815B1 (en) Efficient shared bulk loading into optimized storage
CN111107022B (zh) 数据传输优化方法、设备及可读存储介质
CN112307062A (zh) 数据库聚合查询方法、装置及系统
CN115470156A (zh) 基于rdma的内存使用方法、系统、电子设备和存储介质
CN113010542B (zh) 业务数据处理方法、装置、计算机设备及存储介质
US10552419B2 (en) Method and system for performing an operation using map reduce
CN110955461B (zh) 计算任务的处理方法、装置、系统、服务器和存储介质
CN112632053A (zh) 实现数据拼接的方法和实现数据拼接的系统
CN113626099B (zh) 应用程序的启动方法、装置及电子设备
CN111078736A (zh) 一种数据聚合处理方法、装置、终端及存储介质
JP5351746B2 (ja) データ処理装置及び方法
CN111611245B (zh) 处理数据表的方法和系统
CN111324310A (zh) 一种数据的读取方法、装置及计算机系统
CN112906309B (zh) 机器学习模型的分布式训练方法、装置和系统
US11687542B2 (en) Techniques for in-memory data searching
CN112925801A (zh) 基于sql查询语句实现实时查询服务的方法和系统

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