CN106933903A - 应用于分布式存储的存储方法及装置 - Google Patents
应用于分布式存储的存储方法及装置 Download PDFInfo
- Publication number
- CN106933903A CN106933903A CN201511032294.7A CN201511032294A CN106933903A CN 106933903 A CN106933903 A CN 106933903A CN 201511032294 A CN201511032294 A CN 201511032294A CN 106933903 A CN106933903 A CN 106933903A
- Authority
- CN
- China
- Prior art keywords
- session
- storage
- character string
- information
- session information
- 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.)
- Granted
Links
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/2453—Query optimisation
-
- 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
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种应用于分布式存储的存储方法及装置。其中,该方法包括:采用对分布式存储中的原始数据表进行查询,其中,原始数据表用于存储各种会话类型的会话信息;获取与会话类型对应的会话信息;按照预先设定的存储规则生成与会话类型对应的会话字符串,其中,会话字符串用于记录会话信息中的全部信息;将会话字符串存储至会话数据表中与会话类型对应的存储字段,其中,会话数据表用于存储会话的全部信息。本发明解决了在列存储引擎中对具有多对多关联的数据表进行查询时,由于表连接性能差导致的查询效率低下的技术问题。
Description
技术领域
本发明涉及数据存储领域,具体而言,涉及一种应用于分布式存储的存储方法及装置。
背景技术
目前,通常以会话(Session)的形式对网站进行分析。在每个会话里,访客可以浏览多个网页页面(PV),触发多个事件(Event),生成多个购买订单(Ecommerce)。上述Session、PV、Event、Ecommcer等信息分别记录在多个数据存储表当中。在各个数据存储表之间会通过Session进行关联,其中,Session和其他信息实体都是一对多的关系。
在对大数据进行存储时,通常会采用Impala等列存储引擎。对于具有多对多关联的数据表,往往存在着在实体与实体之间的多对多关联。在上述具有多对多关联的数据表进行查询时,表连接Shuffle开销比较大,查询性能不是很高。同时,类似于Session这种在各实体中都公用的维度,在各数据表上均有很多列派生的信息。不仅结构过于复杂,还占据了一定的存储空间。同时也给后续的维护带来了一定的负担,例如,想要更改一列的数值、增加或减少一列数值,都需要对所有的数据表以及所有的列式存储Parquet文件进行操作,负担极重。
因此,目前在列存储引擎中对具有多对多关联的数据表进行存储时,存在表连接性能较低的问题。并且,通过Session维度派生到其它数据表,也会导致表结构复杂,占用存储空间,增加维护负担的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种应用于分布式存储的存储方法及装置,以至少解决在列存储引擎中对具有多对多关联的数据表进行查询时,由于表连接性能差导致的查询效率低下的技术问题。
根据本发明实施例的一个方面,提供了一种应用于分布式存储的存储方法,包括:采用对分布式存储中的原始数据表进行查询,其中,原始数据表用于存储各种会话类型的会话信息;获取与会话类型对应的会话信息;按照预先设定的存储规则生成与会话类型对应的会话字符串,其中,会话字符串用于记录会话信息中的全部信息;将会话字符串存储至会话数据表中与会话类型对应的存储字段,其中,会话数据表用于存储会话的全部信息。
进一步地,在将会话字符串存储至会话数据表中与会话类型对应的存储字段之后,方法还包括:根据预先设置的筛选参数对会话字符串中的会话信息进行筛选,生成会话信息集合;根据预先设置的查询函数对会话信息集合进行聚合处理,得到聚合指标。
进一步地,按照预先设定的存储规则生成与会话类型对应的会话字符串,包括:根据会话信息的内容,确定会话信息的会话类型,其中,会话类型至少包括:浏览页面、触发事件和生成订单;根据会话类型,生成与会话类型对应的会话信息集合;按照存储规则将各个会话信息集合中的会话信息进行合并,生成与会话类型对应的会话字符串。
进一步地,存储规则至少包括:格式规则和合并规则,其中,根据获取到的会话信息,按照存储规则将各个会话信息集合中的会话信息进行合并,生成与会话类型对应的会话字符串,包括:获取会话信息集合中的会话信息;按照格式规则对会话信息进行归一化处理,生成具有统一格式的子字符串,其中,子字符串采用JSON数据格式进行记录;将子字符串按照合并规则进行合并,生成会话字符串,其中,会话字符串采用数组的形式进行记录。
进一步地,会话信息至少包括:地址信息和网页名称信息,其中,获取会话信息集合中的会话信息,包括:获取会话中包含的网页的地址信息;根据地址信息,获取与网页对应的网页名称信息。
进一步地,将会话字符串存储至会话数据表中与会话类型对应的存储字段,包括:根据会话类型确定与会话类型相应的字段名称;根据字段名称查询在会话数据表中是否存在存储字段;当存在存储字段时,将会话字符串存储至与会话对应的存储字段;当不存在存储字段时,根据字段名称在数据表中创建存储字段,并将会话字符串存储至创建的存储字段。
根据本发明实施例的另一方面,还提供了一种应用于分布式存储的存储装置,包括:查询模块,用于对分布式存储中的原始数据表进行查询,其中,原始数据表用于存储各种会话类型的会话信息;获取模块,用于获取与会话类型对应的会话信息;生成模块,用于按照预先设定的存储规则生成与会话类型对应的会话字符串,其中,会话字符串用于记录会话信息中的全部信息;存储模块,用于将会话字符串存储至会话数据表中与会话类型对应的存储字段,其中,会话数据表用于存储会话的全部信息。
进一步地,装置还包括:筛选模块,用于根据预先设置的筛选参数对会话字符串中的会话信息进行筛选,生成会话信息集合;处理模块,用于根据预先设置的查询函数对会话信息集合进行聚合处理,得到聚合指标。
进一步地,生成模块包括:第一子确定模块,用于根据会话信息的内容,确定会话信息的会话类型,其中,会话类型至少包括:浏览页面、触发事件和生成订单;第一子生成模块,用于根据会话类型,生成与会话类型对应的会话信息集合;第二子生成模块,用于按照存储规则将各个会话信息集合中的会话信息进行合并,生成与会话类型对应的会话字符串。
进一步地,存储模块包括:第二子确定模块,用于确定与会话类型相应的字段名称;子查询模块,用于根据字段名称查询在会话数据表中是否存在存储字段;第一子存储模块,用于当存在存储字段时,将会话字符串存储至与会话对应的存储字段;第二子存储模块,用于当不存在存储字段时,根据字段名称在数据表中创建存储字段,并将会话字符串存储至创建的存储字段。
在本发明实施例中,采用对分布式存储中的原始数据表进行查询,其中,原始数据表用于存储各种会话类型的会话信息;获取与会话类型对应的会话信息;按照预先设定的存储规则生成与会话类型对应的会话字符串,其中,会话字符串用于记录会话信息中的全部信息;将会话字符串存储至会话数据表中与会话类型对应的存储字段,其中,会话数据表用于存储会话的全部信息的方式,达到了减少对列存储引擎中在数据表之间的调用的目的,从而实现了改善查询效率的技术效果,进而解决了在列存储引擎中对具有多对多关联的数据表进行查询时,由于表连接性能差导致的查询效率低下的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的应用于分布式存储的存储方法的流程图;以及
图2是根据本发明实施例的应用于分布式存储的存储装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种应用于分布式存储的存储方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的应用于分布式存储的存储方法的流程图,如图1所示,该方法包括如下步骤:
步骤S21,对分布式存储中的原始数据表进行查询,其中,原始数据表用于存储各种会话类型的会话信息。
步骤S23,获取与会话类型对应的会话信息。
步骤S25,按照预先设定的存储规则生成与会话类型对应的会话字符串,其中,会话字符串用于记录会话信息中的全部信息。
步骤S27,将会话字符串存储至会话数据表中与会话类型对应的存储字段,其中,会话数据表用于存储会话的全部信息。
具体的,在通常情况下,各个类型的会话所包含的各种信息,会存储在不同数据表的不同字段当中。在例如Impala这类分布式存储引擎中,不同的数据表往往会分布在不同的数据库服务器当中。因此,在对某个字段中的内容其进行查询时,需要访问存储有该字段信息的数据表所在的数据库服务器,使得访问效率低下。因此,可以通过上述步骤S21至步骤S27,在获取到各个类型的会话信息之后,将同一个会话中的具有相同会话类型的会话信息进行合并,按照预先设置的存储规则合并成一个会话字符串。然后将各个会话类型的会话字符串存储至会话数据表中相应的字段内。
利用上述方法,通过将各种会话类型的会话信息存储在同一个会话数据表中,达到了减少对列存储引擎中在数据表之间的调用的目的,从而实现了改善查询效率的技术效果,进而解决了在列存储引擎中对具有多对多关联的数据表进行查询时,由于表连接性能差导致的查询效率低下的技术问题。
在实际应用当中,可以以会话的编号SessionId作为查询条件,对存储于分布式存储的各个数据库中的会话信息进行一次性的查询,并将查询得到的结果全部存储于一张临时数据表中。临时数据表可以以缓存的形式进行存储于应用服务器的本地磁盘当中,也可以存储于系统内存当中,还可以在数据库中创建用于保存会话信息的数据表。具体方式此处不做具体限定。
作为一种可选的实施方式,在实际应用当中,以会话ID为12545,包含用户浏览www.abc.com网站中各个子页面的会话为例进行说明。在应用分布式存储的存储引擎当中,会话中用户浏览www.abc.com中各级子页面的浏览信息很可能会存储在与页面对应的不同数据表中,而数据表通常由不同的数据库服务器进行保存。因此,在对会话浏览信息进行查询时,需要依次访问不同的数据库服务器调取数据表信息,造成运行效率低下等问题。因此,可以根据会话ID,一次性对该会话中用户浏览www.abc.com的相关的浏览信息进行获取,并以预设字符“,”和“{}”作为分隔将,并结合生成规则将所有浏览信息合并成为一个特定格式字符串,记录于一张数据表中。具体步骤如下:
步骤1,按照会话ID获取该会话中用户访问www.abc.com的浏览信息,其中,浏览信息可以包括用户访问各级页面的网页地址、网页名称以及浏览顺序;
步骤2,将该会话中的全部浏览信息,按照预先设置的规则合并成一个字符串,例如:以Json数组的形式,按照浏览顺序对网址和网页名称进行合并,
[{url:”http://www.abc.com/a”,title:”a”},{url:”http://www.abc.com/b”,title:”b”},{url:”http://www.abc.com/c”,title:”c”}];
步骤3,将合并后的字符串插入数据表中与会话ID对应的相应字段当中进行保存。
通过上述方法,即可实现对会话的浏览信息在同一个数据表中进行存储,以提高分布式存储的读取效率。与此同时,由于相同会话的浏览信息都存储于同一字段当中,不会造成数据表中的字段繁多,使后期对于数据表的维护更加方便。
作为一种可选的实施方式,在步骤S27将会话字符串存储至会话数据表中与会话类型对应的存储字段之后,方法还包括:
步骤S28,根据预先设置的筛选参数对会话字符串中的会话信息进行筛选,生成会话信息集合。
步骤S29,根据预先设置的查询函数对会话信息集合进行聚合处理,得到聚合指标。
具体的,在步骤S28至步骤S29中,可以利用预先设置的筛选参数,对存储有会话的全部信息的会话数据表进行筛选,从会话字符串中筛选得到需要进行聚合处理的会话信息,得到会话信息集合。并进一步根据预先设置的查询函数,对会话信息集合中查询得到相应的会话数据,并根据查询函数中包含的聚合参数对会话数据进行聚合处理,最终得到与聚合参数相应的聚合指标。
作为一种可选的实施方式,在实际应用当中,用于通过AggregateMeasure函数可以实现上述步骤的功能。
具体的,上述AggregateMeasure函数的函数格式可以被设计为:
String AggregateMeasure(string filter,string measure);
其中,函数名为AggregateMeasure,意为聚合指标,在AggregateMeasure前面的String为返回值,用于返回聚合指标的结果;string filter为筛选参数,例如:UrlContains“xxx”(Url包含”xxx”),如有多个筛选参数,则可通过预设字符(例如分号)进行分隔;string measure代表聚合方式的聚合方式信息,如sum(pvduration),表示对pvduration进行求和,生成相应的聚合指标。利用上述函数可以直接对会话数据表中的信息进行统计、分析等处理,从而得到聚合指标。可以实现通过对同一个会话数据表的一次查询操作,即可完成求和、计数等聚合操作。
作为一种可选的实施方式,在步骤S25按照预先设定的存储规则生成与会话类型对应的会话字符串中,可以包括:
步骤S251,根据会话信息的内容,确定会话信息的会话类型,其中,会话类型至少包括:浏览页面、触发事件和生成订单。
步骤S253,根据会话类型,生成与会话类型对应的会话信息集合。
步骤S255,按照存储规则将各个会话信息集合中的会话信息进行合并,生成与会话类型对应的会话字符串。
具体的,在步骤S251至步骤S255中,通过会话信息中的内容,可以确定会话的会话类型。将会话中属于同样会话类型的会话信息进行获取,并生成会话信息集合。最后,将会话信息集合中的会话信息,按照预先设定的存储规则进行合并,生成会话字符串。
作为一种可选的实施方式,在同一个会话当中,有可能包含多种会话类型的会话信息,因此,在一个会话中,可能会存在与其对应的多种会话类型的会话信息集合。根据每个会话类型对应的会话信息集合,生成与会话类型对应的会话字符串。
作为一种可选的实施方式,在存储规则中至少包括:格式规则和合并规则,其中,在步骤S255按照存储规则将各个会话信息集合中的会话信息进行合并,生成与会话类型对应的会话字符串中,可以包括:
步骤S51,获取会话信息集合中的会话信息。
步骤S53,按照格式规则对会话信息进行归一化处理,生成具有统一格式的子字符串,其中,子字符串采用JSON数据格式进行记录。
步骤S55,将子字符串按照合并规则进行合并,生成会话字符串,其中,会话字符串采用数组的形式进行记录。
具体的,通过步骤S51至步骤S55,在将会话信息集合中的各条会话信息进行合并时,可以首先利用格式规则,对会话信息进行归一化处理,生成具有统一格式的,与会话信息对应的子字符串。然后再利用合并规则,将具有统一格式的子字符串进行合并,生成最终的会话字符串。其中,格式规则可以使用已有的例如JSON数据格式规则等,也可以使用自定义的格式规则。而合并规则,可以将单独的子字符串作为数组元素,以数组的形式合并成为会话字符串。
作为一种可选的实施方式,会话信息至少包括:地址信息和网页名称信息,其中,在步骤S51获取会话信息集合中的会话信息中,可以包括:
步骤S511,获取会话中包含的网页的地址信息。
步骤S513,根据地址信息,获取与网页对应的网页名称信息。
具体的,在每个会话中通常会包含着多个网页的地址信息,每个网页都对应着在会话中的不同操作内容。因此,可以通过步骤S511至步骤S513,获取会话信息中包含的各个网页的地址信息。并可以根据网页的地址信息获取网页的名称信息。当然,网页的名称信息除了通过访问地址信息对应的网页进行获取,还可以根据实际情况进行自定义,例如:按照访问顺序以数字进行命名,按访问时间进行命名,或者根据页面正文信息进行命名等,此处不做具体限定。
作为一种可选的实施方式,以Impala分布式存储引擎为例进行说明。在实际应用当中,在对会话Session的数据进行存储时,可以将每个会话Session中的所有数据均存储在一张表的同一行上。每行对应了一个Session。其中,与会话Session具有一对一关系的列均保留现有的原生字段进行存储,例如:资源类型SourceType、登陆页面LandingPage等字段;而与会话Session具有一对多或多对多关系的列,则采用通用的Json数据格式的数组的格式进行存储,例如:页面浏览数组PVArray列、事件数组EventArray列和订单数组EcomArray列等。PVArray列用于存储Json数据格式的数组,数组中的每个对象均为PVObject,并且在PVObject中有且仅包含页面浏览信息PV或各实体自己的独有属性。示例数据可以参照如下表:
SessionId | Sourcetype | LandingPage | IsPaidSearch | … | PVArray |
Sid1 | direct | http://... | 0 | … | [{url:”http:...”,title:”a”,…},{url:”http:...”,title:”b”,…}] |
Sid2 | referrel | http://... | 0 | … | [{url:”http:...”,title:”c”,…},{url:”http:...”,title:”d”,…}] |
通过上述方式对会话Session的数据进行存储,在查询时可以直接对数组中的Json子字符串进行过滤,如包含Url,则匹配url:“*xxx*”即可(所有左匹配,右匹配还是包含均可以用Impala里自带的正则进行高并向的字符串匹配),此情况下只需要在Where里判断此行会话Session究竟满不满足条件即可,不关注PVArray里究竟有几个Url满足了条件。
作为一种可选的实施方式,在步骤S27将会话字符串存储至会话数据表中与会话类型对应的存储字段中,步骤可以包括:
步骤S271,确定与会话类型相应的字段名称。
步骤S273,根据字段名称查询在会话数据表中是否存在存储字段。
步骤S275,当存在存储字段时,将会话字符串存储至与会话对应的存储字段。
步骤S277,当不存在存储字段时,根据字段名称在数据表中创建存储字段,并将会话字符串存储至创建的存储字段。
具体的,在将生成的会话字符串存储至数据表时,可以通过步骤S271至步骤S277,首先根据会话类型或者会话字符串对应的会话类型,并根据字符串的会话类型确定用于存储该会话字符串的存储字段的字段名称。然后,根据字段名称在数据表中进行查询,确定在数据表中是否存在与字段名称对应的字段。当存在对应的字段时,将会话字符串直接存储至与会话对应的字段位置当中。如果不存在对应的字段时,根据字段名称在会话数据表中以该字段名称创建新存储字段,并将会话字符串存储至与会话对应的字段位置当中。
图2是根据本发明实施例的应用于分布式存储的存储装置的示意图。如图2所示,该装置包括:查询模块21、获取模块23、生成模块25和存储模块27。
其中,查询模块21,用于对分布式存储中的原始数据表进行查询,其中,原始数据表用于存储各种会话类型的会话信息;获取模块23,用于获取与会话类型对应的会话信息;生成模块25,用于按照预先设定的存储规则生成与会话类型对应的会话字符串;存储模块27,用于将会话字符串存储至会话数据表中与会话类型对应的存储字段,其中,会话数据表用于存储会话的全部信息。
具体的,在通常情况下,各个类型的会话所包含的各种信息,会存储在不同数据表的不同字段当中。在例如Impala这类分布式存储引擎中,不同的数据表往往会分布在不同的数据库服务器当中。因此,在对某个字段中的内容其进行查询时,需要访问存储有该字段信息的数据表所在的数据库服务器,使得访问效率低下。因此,可以通过上述查询模块21、获取模块23、生成模块25和存储模块27,在获取到各个类型的会话信息之后,将同一个会话中的具有相同会话类型的会话信息进行合并,按照预先设置的存储规则合并成一个会话字符串。然后将各个会话类型的会话字符串存储至会话数据表中相应的字段内。
利用上述装置,通过将各种会话类型的会话信息存储在同一个会话数据表中,达到了减少对列存储引擎中在数据表之间的调用的目的,从而实现了改善查询效率的技术效果,进而解决了在列存储引擎中对具有多对多关联的数据表进行查询时,由于表连接性能差导致的查询效率低下的技术问题。
作为一种可选的实施方式,装置还可以包括:筛选模块28和处理模块29。
其中,筛选模块28,用于根据预先设置的筛选参数对会话字符串中的会话信息进行筛选,生成会话信息集合;
处理模块29,用于根据预先设置的查询函数对会话信息集合进行聚合处理,得到聚合指标。
具体的,在上述筛选模块28和处理模块29中,可以利用预先设置的筛选参数,对存储有会话的全部信息的会话数据表进行筛选,从会话字符串中筛选得到需要进行聚合处理的会话信息,得到会话信息集合。并进一步根据预先设置的查询函数,对会话信息集合中查询得到相应的会话数据,并根据查询函数中包含的聚合参数对会话数据进行聚合处理,最终得到与聚合参数相应的聚合指标。
作为一种可选的实施方式,在上述生成模块25中,可以包括:第一子确定模块251、第一子生成模块253和第二子生成模块255。
其中,第一子确定模块251,用于根据会话信息的内容,确定会话信息的会话类型,其中,会话类型至少包括:浏览页面、触发事件和生成订单;第一子生成模块253,用于根据会话类型,生成与会话类型对应的会话信息集合;第二子生成模块255,用于按照存储规则将各个会话信息集合中的会话信息进行合并,生成与会话类型对应的会话字符串。
具体的,在上述第一子确定模块251、第一子生成模块253和第二子生成模块255中,通过会话信息中的内容,可以确定会话的会话类型。将会话中属于同样会话类型的会话信息进行获取,并生成会话信息集合。最后,将会话信息集合中的会话信息,按照预先设定的存储规则进行合并,生成会话字符串。
作为一种可选的实施方式,存储规则至少包括:格式规则和合并规则,其中,在上述第二子生成模块255中,可以包括:第一子获取模块、子处理模块和第三子生成模块。
其中,第一子获取模块,用于获取会话信息集合中的会话信息;子处理模块,用于按照格式规则对会话信息进行归一化处理,生成具有统一格式的子字符串,其中,子字符串采用JSON数据格式进行记录;第三子生成模块,用于将子字符串按照合并规则进行合并,生成会话字符串,其中,会话字符串采用数组的形式进行记录。
具体的,通过上述第一子获取模块、子处理模块和第三子生成模块,在将会话信息集合中的各条会话信息进行合并时,可以首先利用格式规则,对绘画信息进行归一化处理,生成具有统一格式的,与会话信息对应的子字符串。然后在利用合并规则,将具有统一格式的子字符串进行合并,生成最终的会话字符串。其中,格式规则可以使用已有的例如JSON数据格式规则等,也可以使用自定义的格式规则。而合并规则,可以将单独的子字符串作为数组元素,以数组的形式合并成为会话字符串。
作为一种可选的实施方式,会话信息至少包括:地址信息和网页名称信息,其中,在上述第一子获取模块中,可以包括:第二子获取模块和第三子获取模块。
其中,第二子获取模块,用于获取会话中包含的网页的地址信息;第三子获取模块,用于根据地址信息,获取与网页对应的网页名称信息。
具体的,在每个会话中通常会包含着多个网页的地址信息,每个网页都对应着在会话中的不同操作内容。因此,可以通过上述第二子获取模块和第三子获取模块,获取会话信息中包含的各个网页的地址信息。并可以根据网页的地址信息获取网页的名称信息。当然,网页的名称信息除了通过访问地址信息对应的网页进行获取,还可以根据实际情况进行自定义,例如:按照访问顺序以数字进行命名,按访问时间进行命名,或者根据页面正文信息进行命名等,此处不做具体限定。
作为一种可选的实施方式,在上述存储模块27中,可以包括:第二子确定模块271、子查询模块273、第一子存储模块275和第二子存储模块277。
其中,第二子确定模块271,用于确定与会话类型相应的字段名称;子查询模块273,用于根据字段名称查询在会话数据表中是否存在存储字段;第一子存储模块275,用于当存在存储字段时,将会话字符串存储至与会话对应的存储字段;第二子存储模块277,用于当不存在存储字段时,根据字段名称在数据表中创建存储字段,并将会话字符串存储至创建的存储字段。
具体的,在将生成的会话字符串存储至数据表时,可以通过上述第二子确定模块271、子查询模块273、第一子存储模块275和第二子存储模块277,首先根据会话类型或者会话字符串对应的会话类型,并根据字符串的会话类型确定用于存储该会话字符串的存储字段的字段名称。然后,根据字段名称在数据表中进行查询,确定在数据表中是否存在于字段名称对应的字段。当存在对应的字段时,将会话字符串直接存储至与会话对应的字段位置当中。如果不存在对应的字段时,根据字段名称在会话数据表中以该字段名称创建新存储字段,并将会话字符串存储至与会话对应的字段位置当中。
所述应用于分布式存储的存储装置包括处理器和存储器,上述获取模块、生成模块和存储模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元。上述预先设定的存储规则可以存储在存储器中。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数解析文本内容。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取各种会话类型会话的会话信息;按照预先设定的存储规则生成与会话类型对应的会话字符串;将会话字符串存储至会话数据表中与会话类型对应的存储字段,其中,会话数据表用于存储会话的全部信息。
应用于分布式存储的存储装置包括处理器和存储器,上述获取单元、划分单元、解析单元、检测单元和判断单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元。上述第一预设规则、第二预设规则都可以存储在存储器中。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数解析文本内容。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:采用对分布式存储中的原始数据表进行查询,其中,原始数据表用于存储各种会话类型的会话信息;获取与会话类型对应的会话信息;按照预先设定的存储规则生成与会话类型对应的会话字符串,其中,会话字符串用于记录会话信息中的全部信息;将会话字符串存储至会话数据表中与会话类型对应的存储字段,其中,会话数据表用于存储会话的全部信息。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种应用于分布式存储的存储方法,其特征在于,包括:
对分布式存储中的原始数据表进行查询,其中,所述原始数据表用于存储各种会话类型的会话信息;
获取与所述会话类型对应的所述会话信息;
按照预先设定的存储规则生成与所述会话类型对应的会话字符串,其中,所述会话字符串用于记录所述会话信息中的全部信息;
将所述会话字符串存储至会话数据表中与所述会话类型对应的存储字段,其中,所述会话数据表用于存储所述会话的全部信息。
2.根据权利要求1所述的方法,其特征在于,在将所述会话字符串存储至会话数据表中与所述会话类型对应的存储字段之后,所述方法还包括:
根据预先设置的筛选参数对所述会话字符串中的所述会话信息进行筛选,生成会话信息集合;
根据预先设置的查询函数对所述会话信息集合进行聚合处理,得到聚合指标。
3.根据权利要求1所述的方法,其特征在于,按照预先设定的存储规则生成与所述会话类型对应的会话字符串,包括:
根据所述会话信息的内容,确定所述会话信息的会话类型,其中,所述会话类型至少包括:浏览页面、触发事件和生成订单;
根据所述会话类型,生成与所述会话类型对应的会话信息集合;
按照所述存储规则将各个所述会话信息集合中的所述会话信息进行合并,生成与所述会话类型对应的会话字符串。
4.根据权利要求3所述的方法,其特征在于,所述存储规则至少包括:格式规则和合并规则,其中,根据获取到的所述会话信息,按照所述存储规则将各个所述会话信息集合中的所述会话信息进行合并,生成与所述会话类型对应的会话字符串,包括:
获取所述会话信息集合中的所述会话信息;
按照所述格式规则对所述会话信息进行归一化处理,生成具有统一格式的子字符串,其中,所述子字符串采用JSON数据格式进行记录;
将所述子字符串按照所述合并规则进行合并,生成所述会话字符串,其中,所述会话字符串采用数组的形式进行记录。
5.根据权利要求4所述的方法,其特征在于,所述会话信息至少包括:地址信息和网页名称信息,其中,获取所述会话信息集合中的所述会话信息,包括:
获取所述会话中包含的网页的地址信息;
根据所述地址信息,获取与所述网页对应的网页名称信息。
6.根据权利要求1所述的方法,其特征在于,将所述会话字符串存储至会话数据表中与所述会话类型对应的存储字段,包括:
确定与所述会话类型相应的字段名称;
根据所述字段名称查询在所述会话数据表中是否存在所述存储字段;
当存在所述存储字段时,将所述会话字符串存储至与所述会话对应的所述存储字段;
当不存在所述存储字段时,根据所述字段名称在所述数据表中创建所述存储字段,并将所述会话字符串存储至创建的所述存储字段。
7.一种应用于分布式存储的存储装置,其特征在于,包括:
查询模块,用于对分布式存储中的原始数据表进行查询,其中,所述原始数据表用于存储各种会话类型的会话信息;
获取模块,用于获取与所述会话类型对应的所述会话信息;
生成模块,用于按照预先设定的存储规则生成与所述会话类型对应的会话字符串,其中,所述会话字符串用于记录所述会话信息中的全部信息;
存储模块,用于将所述会话字符串存储至会话数据表中与所述会话类型对应的存储字段,其中,所述会话数据表用于存储所述会话的全部信息。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
筛选模块,用于根据预先设置的筛选参数对所述会话字符串中的所述会话信息进行筛选,生成会话信息集合;
处理模块,用于根据预先设置的查询函数对所述会话信息集合进行聚合处理,得到聚合指标。
9.根据权利要求7所述的装置,其特征在于,所述生成模块包括:
第一子确定模块,用于根据所述会话信息的内容,确定所述会话信息的会话类型,其中,所述会话类型至少包括:浏览页面、触发事件和生成订单;
第一子生成模块,用于根据所述会话类型,生成与所述会话类型对应的会话信息集合;
第二子生成模块,用于按照所述存储规则将各个所述会话信息集合中的所述会话信息进行合并,生成与所述会话类型对应的会话字符串。
10.根据权利要求7所述的装置,其特征在于,所述存储模块包括:
第二子确定模块,用于根据所述会话类型确定与其相应的字段名称;
子查询模块,用于根据所述字段名称查询在所述会话数据表中是否存在所述存储字段;
第一子存储模块,用于当存在所述存储字段时,将所述会话字符串存储至与所述会话对应的所述存储字段;
第二子存储模块,用于当不存在所述存储字段时,根据所述字段名称在所述数据表中创建所述存储字段,并将所述会话字符串存储至创建的所述存储字段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032294.7A CN106933903B (zh) | 2015-12-31 | 2015-12-31 | 应用于分布式存储的存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032294.7A CN106933903B (zh) | 2015-12-31 | 2015-12-31 | 应用于分布式存储的存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106933903A true CN106933903A (zh) | 2017-07-07 |
CN106933903B CN106933903B (zh) | 2020-02-07 |
Family
ID=59444772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511032294.7A Active CN106933903B (zh) | 2015-12-31 | 2015-12-31 | 应用于分布式存储的存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106933903B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108710661A (zh) * | 2018-05-11 | 2018-10-26 | 武汉轻工大学 | 一种基于内存顺序表实现文本文件的数据管理方法和装置 |
CN109559808A (zh) * | 2018-11-07 | 2019-04-02 | 平安医疗健康管理股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN113064987A (zh) * | 2021-04-30 | 2021-07-02 | 中国工商银行股份有限公司 | 数据处理方法、装置、电子设备、介质和程序产品 |
CN113076462A (zh) * | 2021-03-25 | 2021-07-06 | 恒安嘉新(北京)科技股份公司 | 网络会话数据查询方法、装置、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101566986A (zh) * | 2008-04-21 | 2009-10-28 | 阿里巴巴集团控股有限公司 | 联机事务处理中的数据处理方法和装置 |
CN102682060A (zh) * | 2011-01-28 | 2012-09-19 | 西门子公司 | 在网页之间切换的同时使得能实现信息交换 |
-
2015
- 2015-12-31 CN CN201511032294.7A patent/CN106933903B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101566986A (zh) * | 2008-04-21 | 2009-10-28 | 阿里巴巴集团控股有限公司 | 联机事务处理中的数据处理方法和装置 |
CN102682060A (zh) * | 2011-01-28 | 2012-09-19 | 西门子公司 | 在网页之间切换的同时使得能实现信息交换 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108710661A (zh) * | 2018-05-11 | 2018-10-26 | 武汉轻工大学 | 一种基于内存顺序表实现文本文件的数据管理方法和装置 |
CN108710661B (zh) * | 2018-05-11 | 2020-10-27 | 武汉轻工大学 | 一种基于内存顺序表实现文本文件的数据管理方法和装置 |
CN109559808A (zh) * | 2018-11-07 | 2019-04-02 | 平安医疗健康管理股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN113076462A (zh) * | 2021-03-25 | 2021-07-06 | 恒安嘉新(北京)科技股份公司 | 网络会话数据查询方法、装置、设备及介质 |
CN113076462B (zh) * | 2021-03-25 | 2024-04-30 | 恒安嘉新(北京)科技股份公司 | 网络会话数据查询方法、装置、设备及介质 |
CN113064987A (zh) * | 2021-04-30 | 2021-07-02 | 中国工商银行股份有限公司 | 数据处理方法、装置、电子设备、介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN106933903B (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104424287B (zh) | 数据查询方法和装置 | |
CN106933903A (zh) | 应用于分布式存储的存储方法及装置 | |
CN107292463A (zh) | 一种对应用程序进行项目评估的方法及系统 | |
CN108021651A (zh) | 一种网络舆情风险评估方法及装置 | |
CN106534164A (zh) | 计算机中基于网络空间用户标识的有效虚拟身份刻画方法 | |
CN109472568A (zh) | 一种区块链交易方法、装置、管理系统、设备及存储介质 | |
CN103235803B (zh) | 一种从文本中获取物品属性值的方法和装置 | |
CN107967347A (zh) | 批量数据处理方法、服务器、系统及存储介质 | |
CN105631007A (zh) | 一种行业技术信息搜集方法及系统 | |
CN103699544B (zh) | 跨页选择数据的方法和系统 | |
CN110399546A (zh) | 基于网络爬虫的链接去重方法、装置、设备及存储介质 | |
CN110209909A (zh) | 数据爬取方法、装置、计算机设备和存储介质 | |
CN106168968A (zh) | 一种网站分类方法及装置 | |
CN107632971A (zh) | 用于生成多维报表的方法和装置 | |
CN109978547A (zh) | 风险行为控制方法及系统、设备和存储介质 | |
CN103577585B (zh) | 互联网中用户的标识方法和装置 | |
CN106933905A (zh) | 网页访问数据的监测方法和装置 | |
CN103020214B (zh) | 访问网站历史记录信息处理方法和设备 | |
Vidya et al. | Web mining-concepts and application | |
CN108108381A (zh) | 页面的监测方法及装置 | |
CN106933920A (zh) | 会话的筛选方法和装置 | |
CN106960052B (zh) | 一种征信数据采集方法与系统 | |
CN103036963B (zh) | 清除访问网站的历史记录信息的方法和设备 | |
KR20120090131A (ko) | 검색결과 제공 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
Yu et al. | Application of closed gap-constrained sequential pattern mining in web log data |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |