CN116126918A - 数据生成方法、信息筛选方法、设备以及介质 - Google Patents
数据生成方法、信息筛选方法、设备以及介质 Download PDFInfo
- Publication number
- CN116126918A CN116126918A CN202210775598.6A CN202210775598A CN116126918A CN 116126918 A CN116126918 A CN 116126918A CN 202210775598 A CN202210775598 A CN 202210775598A CN 116126918 A CN116126918 A CN 116126918A
- Authority
- CN
- China
- Prior art keywords
- data
- definition
- event
- basic
- structured 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.)
- 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/2457—Query processing with adaptation to user needs
-
- 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/242—Query formulation
- G06F16/243—Natural language query formulation
-
- 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
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)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据生成方法、信息筛选方法、设备以及介质,该数据生成方法包括:接收对基础数据的定义进行组合的操作指令,所述定义包括所述基础数据的注释、字段名称、存储类型、表名称、字段内容、字段阈值、组合关系、关系名称的至少一个或两个以上的组合;响应于所述操作指令,基于结构化组合的规则和/或条件将至少部分所述定义进行组合,得到第一结构化数据,所述定义至少部分来源于关联数据集合,所述关联数据集合限定所述基础数据及其所述定义的关联关系。本申请能够方便将基础数据的定义进行按需组合以构成第一结构化数据,因此能够降低用户定位基础数据中目标内容的门槛,提高用户工作效率。
Description
技术领域
本申请涉及计算机信息技术领域,特别是涉及数据生成方法、信息筛选方法、设备以及介质。
背景技术
目前,对于查询数据库中的数据,一般来说,现有技术大都是直接通过编写固定的查询语句来获取,但是固定的查询语句需要专门的技术人员来开发编写,导致门槛过高的问题。
发明内容
本申请主要解决的技术问题是提供一种数据生成方法、信息筛选方法、电子设备以及存储介质,以解决需要专门的技术人员来开发编写固定的第一结构化数据的问题。
为解决上述技术问题,本申请第一方面提供了一种数据的生成方法,该方法包括:接收对基础数据的定义进行组合的操作指令,所述定义包括所述基础数据的注释、字段名称、存储类型、表名称、字段内容、字段阈值、组合关系、关系名称的至少一个或两个以上的组合;
响应于所述操作指令,基于结构化组合的规则和/或条件将至少部分所述定义进行组合,得到第一结构化数据,所述定义至少部分来源于关联数据集合,所述关联数据集合限定所述基础数据及其所述定义的关联关系。
为解决上述技术问题,本申请第二方面提供了一种用户信息的筛选方法,所述方法包括:
获得如上述任一项方法得到的所述第二结构化数据;
执行所述第二结构化数据以在所述基础数据中得到用户群信息。
为解决上述技术问题,本申请第三方面提供一种电子设备,该电子设备包括存储器和处理器,所述存储器连接所处理器,用于存储程序数据,处理器用于执行程序数据以实现如上述方法。
为解决上述技术问题,本申请第四方面提供一种计算机可读存储介质,该计算机可读存储介质存储有程序数据,程序数据在被处理器执行时,用于实现如上述方法。
本申请的有益效果是:区别于现有技术,本申请在基础数据上、查询语言之下增设一定义层,能够方便将基础数据的定义进行按需组合,灵活构成用户需要的第一结构化数据,因此能够降低用户定位基础数据中目标内容的门槛,提高用户工作效率。
进一步,利用第一结构化数据和第二结构化数据之间的转换解决基于定义组合的简便查询问题。也就是说,本申请通过先对基础数据进行定义,以及将基础数据的定义进行灵活组合,以组装成第一结构化数据,再将第一结构化数据解析转换为可执行的第二结构化数据,通过第二结构化数据查询获取所需的基础数据,使得用户不需要具备专业知识,就可以对所设置的定义进行交互操作,准确地筛查询出用户所需要的数据。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的数据生成方法第一实施例的流程示意图;
图2是本申请提供的数据生成方法中将基础数据的定义进行组合操作的流程示意图;
图3是本申请提供的数据生成方法中将基础数据的定义进行组合操作的另一流程示意图;
图4是本申请提供的数据生成方法中利用交互界面对基础数据的定义进行组合的示意图;
图5是本申请提供的数据生成方法中第一结构化数据转换为第二结构化数据的流程示意图;
图6是本申请提供的电子设备一实施例的结构示意图;
图7是本申请提供的计算机可读存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在大数据时代,数据库中存储有海量数据,从数据库中查询满足要求的数据形成一个数据类,可以用于解决一些实际的问题。以StarRocks数据库为例,StarRocks是开源的新一代极速全场景MPP(Massively Parallel Processor,大规模并行处理)数据库。它采用新一代的弹性MPP架构,可以高效支持大数据量级的多维分析、实时分析、高并发分析等多种数据分析场景。
在一应用场景中,StarRocks数据库存储有海量的用户数据,在需要对用户数据进行分类形成用户画像时,需要在数据库中查询来获取,但是对于StarRocks数据库等比较专业的数据库,其查询语句具有一定的固有格式,需要专门的技术人员来开发编写,导致门槛过高。
本申请的实施例主要应用于用户终端(如电脑、手机等),以使用户可以在用户终端方便的对StarRocks数据库中需要的数据进行查询,以获取满足要求的用户群信息。
请参阅图1,图1是本申请提供的数据生成方法第一实施例的流程示意图,该方法包括:
步骤110:接收对基础数据的定义进行组合的操作指令,定义包括基础数据的注释、字段名称、存储类型、表名称、字段内容、字段阈值、组合关系、关系名称的至少一个或两个以上的组合。
本步骤是用户在获得第一结构化数据之前的操作,不同于传统方式,本申请实施例在基础数据上增设了一“定义层”,本步骤中进行结构化组合的“定义”可以来自于该“定义层”,用户在组合基础数据的定义时是对这一“定义层”进行的操作指令。
其中,基础数据为接入的数据,比如说接入人员资料、办卡事件和激活卡片事件的数据,则接入的数据会在StarRocks数据库中形成三个表,如人员资料表、办卡事件表和激活卡片事件表。其中,人员资料表包含有人员ID、姓名、年龄、性别等信息;办卡事件表里包含有办卡时间、办卡地点、办卡类型和办卡人ID等信息;激活卡片事件表则可以包含激活时间、激活人ID等信息,各个表包含的具体信息可以根据实际情况而定,本申请对此不作限定。
另外,系统在接入数据后,可以设置一个数据接入配置表,将上述列举的三个表放置在一个配置表里,具体如下表所示:
ID | 表名 | 表类型 |
1 | 人员资料表 | 数据 |
2 | 办卡时间表 | 事件 |
3 | 激活卡片事件表 | 事件 |
可选地,前述的“定义层”包括数据字典,用来定义基础数据,定义可以包括对基础数据的注释、字段名称、存储类型、表名称、字段内容、字段阈值、组合关系、关系名称等等。
示例性地,数据字典可以为如下表格:
其中,字段名称可以为年龄、职业、性别等;字段阈值可以为20、30等;组合关系可以为and和or;关系名称为大于、等于、小于等;表名称可以为注册表、激活表等;字段内容可以是字段名称下对应的内容,比如说以职业为字段名称,则该职业下对应的字段内容可以是医生、教师等;注释则是对某一基础数据的进一步解释或者补充说明,比如说可以采用自然语言的描述来对某一基础数据进行注释,方便用户识别基础数据的一些属性含义。
示例性地,可以将字段名称里的年龄、字段阈值里的20和关系名称里的大于组成年龄大于20的语句,以实现对基础数据的至少一个或两个以上的定义进行组合的操作指令。
步骤210:响应于操作指令,基于结构化组合的规则和/或条件将至少部分定义进行组合,得到第一结构化数据,定义至少部分来源于关联数据集合,关联数据集合限定基础数据及其定义的关联关系。
可选地,前述的“定义层”包括数据关联集合,数据关联集合为限定基础数据及其定义的关联关系,也可以说是基础数据和定义之间的映射关系,比如可以为以下所示的表格:
这里,对结构化组合的规则和/或条件说明一下。
其中,条件可以为或者(or)、并且(and)等;
规则可以狭义地理解为格式,例如将年龄、20、大于进行组合描述成年龄大于20的语句则可以认为是自然语言的格式。
而结构化组合的规则即结构化语句自身的语言格式,比如结构化描述一般采用英语,以第一结构化数据为JSON为例,将部分定义比如说字段名称里的年龄、字段阈值里的20和关系名称里的大于组合成年龄大于20的语句,再按照约定的JSON格式组装成对应的结构化语句,可以为:
另外,需要说明的是,对于结构化组合的规则的类型可以有多种,例如,若约定的格式为JSON格式,则组成的第一结构化数据为JSON字符串,若为其他约定的格式则组装成对应的其他预设字符串。本申请在此不作限定。
区别于现有技术,本实施例在基础数据上、查询语言之下增设一定义层,能够方便将基础数据的定义进行按需组合。进一步,可以利用第一结构化数据和第二结构化数据之间的转换解决基于定义组合的简便查询问题。
也就是说,本实施例通过先对基础数据进行定义,以及将基础数据的定义进行灵活组合,以组装成第一结构化数据,以方便后续将第一结构化数据解析转换为用户友好、门槛较低的可执行的第二结构化数据。通过第二结构化数据查询获取所需的基础数据,使得用户不需要具备专业知识,就可以通过在交互界面内对所设置的定义进行交互操作,准确地筛查询出用户所需要的数据。
在一些实施例中,为了进一步提高获取数据属性字段信息的效率、准确性和有效性,可以在对基础数据的定义之后,在交互界面内的定义的交互操作之前,通过定时扫描定义的唯一标识(可以是表字段)将基础数据的定义(例如属性字段信息)加载缓存至内存中,以便前端页面即用户终端提高获取数据属性字段信息的效率、准确性和有效性。
关于缓存的具体操作,可以参考以下:
1)扫描定义的唯一标识以将基础数据的定义加载至缓存,也就是在基础数据之上产生“定义层”的过程;
2)响应于在交互界面内的定义的交互操作,对缓存进行查找以确定交互操作选中的若干定义。
其中,这里的唯一标识唯一表征定义,可以是基础数据定义的表字段,比如说可以在字段名称的前一栏设置序号表征字段名称,如1-姓名,2-性别,3-年龄等等。例如用户在交互界面中对定义年龄、20、大于进行组合编辑成年龄大于20的语句,完成后计算机后台则以年龄定义的唯一标识“3”(本申请的唯一标识也可以说是ID)来进行组合、保存、传输、处理等操作,转化成的第一结构化数据(以JSON为例)为:
其中,“field”对应的值“3”就是唯一标识,唯一表征目标数据表中的目标字段年龄,通过扫描该唯一标识,就可以直接找到所需的用户信息,这里的扫描可以理解为遍历或查询,即加载数据的常规方式。
需要说明的是,当基础数据中定义的数据有变更(如新增、修改、删除)时,缓存内的数据会同步变更。
也就是说,本实施例通过将基础数据的定义先加载至缓存,使得在之后的交互界面内进行定义的交互操作时,用户可以直接选取缓存内的数据进行组合操作,提高了用户获取数据的效率。
在一实施例中,为了便于计算机处理、降低处理量,可以将上述基础数据的定义通过唯一标识进行组合,比如说步骤210即响应于操作指令,基于结构化组合的规则和/或条件将至少部分定义进行组合,得到第一结构化数据可以具体包括如下子步骤:
步骤211:响应于操作指令,基于结构化组合的规则和/或条件将若干定义的唯一标识进行组合,得到第一结构化数据。
比如说,假设年龄的唯一标识为5,合同编号的唯一标识为6,性别的唯一标识为7,本文也可以将唯一标识称作ONE_ID。
示例性地,可以基于JSON的规则,将年龄大于20中的年龄用唯一标识5代替,合同编号等于5105中的合同编号用唯一标识6代替,性别等于女中的性别用唯一标识7代替,进行并集的条件组合,以实现将多个定义的唯一标识进行组合,得到的JSON数据可以如下所示:
在一些实施例中,为了方便用户编辑,降低用户使用门槛,可以通过设置交互界面以供用户操作。比如说步骤211即基于结构化组合的规则和/或条件将若干定义的唯一标识进行组合,得到第一结构化数据可以具体包括:
步骤212:响应于在交互界面内对定义的操作指令,确定交互操作选中的若干定义;
步骤213:响应于在交互界面内进行规则和/或条件配置的操作指令,确定若干定义按照规则和/或条件的组合方式。
其中,交互界面可以是可视化交互界面或其他编辑界面,可视化交互界面能够展示各种定义、条件或输入框,用户可以方便的在可视化交互界面不同区域选中需要的定义、条件,还可以在输入框直接输入数值。
在一实施例中,基于结构化组合的规则和/或条件将至少部分定义进行组合,得到第一结构查询数据的具体操作过程可以参阅图2,图2是将基础数据的定义进行组合操作的流程示意图,具体可以包括:
步骤310:响应于查选基础数据的第一层定义的第一操作,从若干待选的第一层定义中确定作为第一目标定义的第一层定义。
比如说,用户打开用于进行第一结构化数据组合的可视化交互界面,该可视化交互界面设有多个可操作栏位,第一层定义可以为任意栏位,比如说先选左边栏位,那么右边栏位也就是第二层定义。每个栏位设有选择下拉列表,比如说点击第一层定义的选择下拉列表可以将若干候选的第一层定义展现出来,以方便用户查选。用户选中其中一个第一层定义后,计算机后台则将选中的一个第一层定义作为第一目标定义锁定,进而完成查选基础数据的第一层定义的第一操作。
步骤320:响应于查选或输入基础数据的第二层定义的第二操作,接收输入或从若干待选的第二层定义中确定作为第二目标定义的第二层定义。
示例性地,第二层定义与第一层定义关联,也就是说用户在选定第一层定义后,第二层定义的候选项也就可以确定或者限定范围了。第二层定义的候选项或限定范围跟随第一层定义变化而变化。用户可以在可视化交互界面中的相关区域即第二层定义的输入框内直接输入数值24,或者是通过点击或者轻触的方式,在输入框中选择预先设置好的数值20,在20的基础上进行多次点击,以得到所需的数值。例如第一次点击是20,第二次点击是22,第三次点击是24,依次类推,用户选中其中一个第二层定义(例如24)后,计算机后台则将选中的一个第二层定义作为第二目标定义24锁定,进而完成查选基础数据的第二层定义的第二操作。
步骤330:响应于查选或输入第一目标定义和第二目标定义之间第一关系的第三操作,接收输入或从若干待选的逻辑运算中确定作为关系的目标逻辑运算。
比如说,在计算机后台已经将可视化交互界面中的第一层定义中的年龄锁定为第一目标定义,将第二层定义中的24锁定为第二目标定义之后,计算机后台会自动选择出第一层定义和第二层定义之间的选择框中的逻辑运算(例如大于、小于、等于、大于和/或等于、小于和/或等于),以作为默认推荐搜索的选项供用户点击切换,用户选中其中一个逻辑运算后,计算机后台则将选中的一个逻辑运算作为第一目标定义和第二目标定义之间第一关系的目标逻辑运算锁定,进而完成查选或输入第一目标定义和第二目标定义之间第一关系的第三操作。
步骤340:将第一目标定义、第二目标定义以及第一关系组合为结构化的第一结构化数据。
示例性地,将选取的第一目标定义年龄、第二目标定义24以及第一关系大于组合为年龄大于24的第一结构化数据。若第一结构化数据为JSON字符,则也可以将第一目标定义年龄、第二目标定义24以及第一关系大于即年龄大于24作为JSON中的一个基本条件。
在该实施例中,通过将定义设置成第一层定义和第二层定义,使得可视化交互界面的各个区域看起来清晰且一致,方便用户操作,并且在用户选完第一层定义时,第二层定义的候选项也就可以确定或者限定范围了,减少用户选错的几率。
在将第一目标定义、第二目标定义以及第一关系组合为第一结构化数据的其中一个基本条件后,还可以继续查选操作,判断第一目标定义下是否嵌套有第三层定义。具体请参阅图3,图3是本申请提供的数据生成方法中将基础数据的定义进行组合操作的另一流程示意图,具体可以包括以下步骤:
步骤410:响应于查选第三层定义的第四操作,从若干待选的第三层定义中确定作为第三目标定义的第三层定义,第三层定义嵌套于第一层定义。
比如说,用户可以直接在可视化交互界面中的第一层定义的区域下方,点击第三层定义选择下拉列表可以将若干候选的第三层定义展现出来,以方便用户查选。用户选中其中一个第三层定义后,计算机后台则将选中的一个第三层定义作为第三目标定义锁定,进而完成查选基础数据的第一层定义的第四操作。
为了使可视化交互界面看起来简洁明了,也可以将嵌套于第一层定义的第三层定义的展示框进行隐藏。
步骤420:响应于查选或输入基础数据的第四层定义的第五操作,接收输入或从若干待选的第四层定义中确定作为第四目标定义的第四层定义。
同理,用户可以在可视化交互界面中的相关区域即第四层定义的输入框内直接输入数值5125,或者是通过点击或者轻触的方式,在输入框中选择预先设置好的数值5125,在5125的基础上进行多次点击,以得到所需的数值。例如第一次点击是5125,第二次点击是5150,第三次点击是5175,依次类推,用户选中其中一个第四层定义(例如5125)后,计算机后台则将选中的一个第四层定义作为第四目标定义5125锁定,进而完成查选或输入基础数据的第四层定义的第五操作。
步骤430:响应于查选或输入第三目标定义和第四目标定义之间第二关系的第六操作,接收输入或从若干待选的逻辑运算中确定作为第二关系的目标逻辑运算。
比如说,在计算机后台已经将嵌套于第一层定义的合同编号中的第三层定义中的性别锁定为第三目标定义,将第四层定义中的男锁定为第四目标定义之后,计算机后台会自动选择出第一层定义和第二层定义之间的选择框中的逻辑运算为等于或不等于,以作为默认推荐搜索的选项供用户点击切换,用户选中其中一个逻辑运算后,计算机后台则将选中的一个逻辑运算即等于作为第三目标定义和第四目标定义之间第二关系的目标逻辑运算锁定,进而完成查选或输入第三目标定义和第四目标定义之间第二关系的第六操作。
步骤440:将第一目标定义、第二目标定义、第一关系、第三目标定义、第四目标定义、第二关系组合为结构化的第一结构化数据。
示例性地,将第一目标定义合同编号、第二目标定义5105以及第一关系等于组合即合同编号等于5105,与第三目标定义性别、第四目标定义男、第二关系等于组合为性别等于男进行并集(and)的运算,组合为结构化的第一结构化数据。
在该实施例中,由于后续在解析第一结构化数据的时候,是通过递归解析的方法,也就是说从嵌套的语句开始解析,而第一层定义可能含有嵌套定义,因此,需要从第一层定义继续查选操作,判断第一目标定义下是否嵌套有第三层定义,以便后续解析。
这里需要说明的是,上述实施例是用户在可视化交互界面中选择所需的基础数据的定义进行组合操作的流程,但是选择确定好的目标定义(包括第一目标定义、第二目标定义、第三目标定义、第四目标定义)在转换为第一结构化数据时,需要先组合成第一结构化数据的基础条件(包括基本条件和事件条件),再生成完整的第一结构化数据。
其中,需要注意的是,第一目标定义、第二目标定义以及第一关系各有若干,可以构成若干组第一目标定义、第二目标定义以及第一关系。同样地,第三目标定义、第四目标定义、第二关系也可以有若干组,以第一结构化数据为JSON字符为例,将每一组第一目标定义、第二目标定义以及第一关系(例如合同编号等于5105)作为JSON中的一个基本条件,第三目标定义、第四目标定义、第二关系(例如性别等于男)作为JSON中的另一个基本条件,以形成不同基本条件层的结构化数据。
示例性地,假设选取第一目标定义里的年龄和合同编号,第二目标定义里的20和5105,第一关系里的大于和等于,组成两组第一目标定义、第二目标定义以及第一关系,即一组为年龄大于20和另一组为合同编号等于5105。由于第三层定义是嵌套于第一层定义下的,所以第三目标定义也是嵌套于第一目标定义下的,比如说以第一目标定义为合同编号为例,则第三目标定义可以是性别和用户手机地域等等,第四目标定义可以对应为女和湖北,第三目标定义与第四目标定义之间的逻辑运算即第二关系可以为等于。具体可以参考如下所示:
1、年龄大于20;
2、合同编号等于5105;
(1)性别等于女;
(2)用户手机地域等于湖北。
其中,年龄大于20为一组第一目标定义、第二目标定义以及第一关系,合同编号等于5105为另一组第一目标定义、第二目标定义以及第一关系,性别等于女、用户手机地域等于湖北则是在第一目标定义、第二目标定义以及第一关系为合同编号等于5105下嵌套的两组第三目标定义、第四目标定义、第二关系。
进一步地,将上述组合后的两组第一目标定义、第二目标定义以及第一关系和两组第三目标定义、第四目标定义、第二关系转化成第一结构化数据(以JSON为例),如下所示:
其中,这里的年龄ID、合同编号ID、性别ID、生日ID和用户手机地域ID也就是前文的唯一标识,具体的ID数值本文在此不作限定,但一般为正整数。
通过组合多组第一目标定义、第二目标定义以及第一关系和多组第三目标定义、第四目标定义、第二关系,使其分别转化成对应的第一结构化数据,比如说可以是第一结构化数据中的基本条件、事件条件等,即通过多个条件来查询,从而更快速、准确地查询到用户所需的数据。
另外,需要说明的是,上述列举的只是第三层定义嵌套于第一层定义下的情况,但实际情况下,由于第一结构化数据是一个树结构,所以需要继续判断是否存在嵌套于第三层定义的另一层定义,比如说,在第三目标定义性别等于女中还嵌套有生日等于2010-03-04,具体可以参考以下:
1、年龄大于20;
2、合同编号等于5105;
(1)性别等于女;
(1-1)生日等于2010-03-04;
(2)用户手机地域等于湖北。
进一步地,需要将上述得到的第一结构化数据进行解析,转化为第二结构化数据,在一些实施例中,为了避免有些定义没有解析到,一般会采用递归算法来解析第一结构化数据,并且递归算法可以简化代码的编写,提高计算机程序的可读性。具体的解析过程可以包括以下步骤:
步骤510:对第一结构化数据进行解析,并在解析过程中判断是否存在嵌套于第一层定义的第三层定义;
步骤520:若存在嵌套于第一层定义的第三层定义,则继续判断是否存在嵌套于第三层定义的另一层定义,直至不存在嵌套关系的另一层定义为止,得到基础的第二结构化数据;
比如,存在嵌套于第三层定义的另一层定义(比如第四层定义),则再继续判断是否存在嵌套于第四层定义的又一层定义(比如第五层定义),如此类推,直至没有嵌套结构为止,这一递归支路解析到头不需要再继续。然后将最后一层嵌套结构的各个定义找出,一步步返回。每返回一层嵌套结构,就将这层节点所有的各个定义找出。
步骤530:组合所有基础的第二结构化数据,生成完整的第二结构化数据。
在步骤510-步骤530中,比如说,以下面的查询语句为例,
1、年龄大于20;
2、合同编号等于5105;
(1)性别等于女;
(1-1)生日等于2010-03-04;
(2)用户手机地域等于湖北。
在解析年龄大于20对应的{"property":{"opr":"gt","field":"年龄ID","value":"20"}}时,判断年龄大于20是否存在嵌套的第三层定义,由于年龄大于20不存在嵌套的第三层定义,因此,可以直接转换为第二结构化数据。
解析合同编号等于5105对应{"property":{"opr":"eq","field":"合同编号ID","value":"5105"}},判断合同编号等于5105是否存在嵌套的第三层定义,当判断出合同编号等于5105存在嵌套的第三层定义性别等于女和用户手机地域等于湖北时,继续判断性别等于女和用户手机地域等于湖北是否存在嵌套的另一层定义,比如说性别等于女还存在嵌套的另一层定义生日等于2010-03-04,直至生日等于2010-03-04和用户手机地域等于湖北都不存在嵌套关系的另一层定义为止,然后依次解析成对应的基础的第二结构化数据(以SQL查询语句为例),将上述解析出的组合成SQL查询语句,得到完整的SQL查询语句。
另外,为了简化操作、更加快捷地定位到需要查询的数据,也可以设置查询语句的快捷方式,即为基础数据作进一步的预先定义(简称)。
对于的具体设置,有些实施例是通过在若干组第一目标定义、第二目标定义以及第一关系中,选择至少有一组第一目标定义、第二目标定义以及第一关系中的第二目标定义是预设维度的基础数据筛选条件。
示例性地,请参阅图4,图4是本申请提供的数据生成方法中利用交互界面对基础数据的定义进行组合的示意图,用户可以在类似图4的可视化交互界面中的业务自定义-活动--test、包含、默认名称2x、默认名称1x和hqj类-hqj、包含、非公职人员活跃转沉默用户中,选择hqj类-hqj包含非公职人员活跃转沉默用户这一组中的非公职人员活跃转沉默用户作为,也就是预设维度的基础数据筛选条件,以便用户可以省略上述提到的子查询的步骤,直接选取设置好的选项进行查询。比如说查询的语句是合同编号,由于合同编号的范围比较大,因此,需要对其进行嵌套查询,也就是子查询,例如需继续查询合同编号嵌套的性别、生日或者用户手机地域等,但是如果通过设置好的则可以直接定位到需要查询的数据。
可选地,在其他实施例中,可以适当根据数据的具体取值进行实际的数据筛选形成具体的分层数据,比如通过用户性别属性维度(性别字段)筛选,由于性别数据只有两个枚举值:男、女,则会形成性别的两个分层:性别分层男、性别分层女;又如活跃度分层可以包括:高活跃度、中活跃度、低活跃度。
可选的,为了使JSON的结构简洁明了,便于阅读和进一步地转换成第二结构化语句,在一些实施例中,可以将JSON主要分为三种条件类型,分别为基本条件、事件条件和关系条件,则接收对基础数据的定义进行组合操作指令包括以下步骤:
步骤610:接收利用基础数据的定义组合成基本条件或事件条件的操作指令,或接收对基础数据的定义进行基本条件、组合关系、事件条件组合的操作指令,基本条件是不同定义之间进行逻辑运算的结果,事件条件是定义对应的事件状态,组合关系包括基本条件和/或事件条件之间进行逻辑运算的关系。
在这里,先对本申请的第一结构化数据进行简单地介绍,以第一结构化数据是JSON为例,JSON主要分为三种条件类型,分别为基本条件、事件条件和关系条件,关系条件也可以说成组合关系,因为关系条件可以直接理解成基本条件和事件条件的组合关系,本申请为了方便描述,也可以将基本条件和事件条件统称为基础条件。
在JSON语句中,基本条件是不同定义之间进行逻辑运算的结果,也可以说是表达具体数据项取值的判断条件,具体包括opr、field、value和source。
其中,A)opr为比较操作符类型,包括:等于(eq-equals)、不等于(neq-notequals)、大于(gt-great than)、大于等于(gte-great than and equals)、小于(lt-lessthan)、小于等于(lte-less than and equals)、区间(btw-between)、包含(in)、不包含(nin-not in)、为空(nvl-null)、不为空(nnvl-not null)。
B)field为表达参与运算的数据项,其对应的值可以是前文提到的唯一标识。
C)value:表示该数据项需要满足什么条件。
比如说,计算机后台接收到基础数据的定义年龄、20和大于,将年龄和20之间进行大于的逻辑运算,得到的基本条件可以为以下:
其中,"field":"年龄ID","value":"20"和"opr":"gt",分别为基本条件的第一键值对、第二键值对和第三键值对。
为了将用户所选择的查询语句准确地转换为第一结构化数据,在一些实施例中,计算机后台在确定多组第一目标定义、第二目标定义以及第一关系之后,会将基本条件的各个键值对与确定出的第一目标定义、第二目标定义以及第一关系进行一一对应,具体包括以下做法:
步骤620:将基本条件的第一键值对作为第一组的第一目标定义,将基本条件的第二键值对作为第一组的第二目标定义,将基本条件的第三键值对作为第一组的第一关系,将基本条件的第一键值对、基本条件的第二键值对、基本条件的第三键值对进行组合,得到基本条件。
示例性地,假设确定了两组第一目标定义、第二目标定义和第一关系,即第一组:年龄大于20;第二组:合同编号等于5105。
将年龄转换为"field":"年龄ID",以实现将基本条件的第一键值对作为第一组的第一目标定义,将20转换为"value":"20",以实现将基本条件的第二键值对作为第一组的第二目标定义,将大于转换为"opr":"gt",以实现将基本条件的第三键值对作为第一组的第一关系,将基本条件的第一键值对"field":"年龄ID"、基本条件的第二键值对"value":"20"、基本条件的第三键值对"opr":"gt"进行组合,得到的基本条件为{"property":{"field":"年龄ID","value":"20","opr":"gt"}}。
同样地,将"field":"合同编号ID"作为第二组的第一目标定义合同编号,将"value":"5105"作为第二组的第二目标定义5105,将"opr":"eq"作为第一关系等于,进一步组合得到的基本条件为{"property":{"field":"合同编号ID","value":"5105","opr":"eq"}}。
当第一目标定义、第二目标定义和第一关系的数量不止两组时,按照同样的方法将基本条件中的各个键值对与确定出的第一目标定义、第二目标定义以及第一关系进行一一对应,并进行组合得到多组基本条件。
另外,为了降低计算机的处理量,在一些实施例中,在响应于查选基础数据的第一层定义的第一操作之后,会给第一层定义(比如字段名称)设置唯一标识,并将该唯一标识作为第一键值对的值,具体可以包括以下做法:
步骤630:响应于查选基础数据的字段名称的第一操作,从若干待选的字段名称中确定一个字段名称,作为第一键值对的键,将确定的字段名称的唯一标识作为第一键值对的值,唯一标识用于唯一确定基础数据中的目标数据表和目标字段。
首先,稍微对基本条件的键值对做进一步地介绍,键值对分为键和值,就以前面列举的"field":"年龄ID","value":"20"和"opr":"gt",分别为基本条件的第一键值对、第二键值对和第三键值对来进行说明。其中,"field","value"和"opr"为键值对的键,"年龄ID","20"和"gt"为键值对的值。
比方说,在数据字典中,可以在字段名称的前一栏设置序号列表,如1-姓名,2-性别,3-年龄,4-合同编号等等。
将"field":"年龄ID"表示为"field":3来进行查选,以实现将字段名称年龄作为第一键值对的键,将年龄的唯一标识3作为第一键值对的值,通过查找第3行,就可以确定出用户所需的目标字段年龄,以及目标数据表可以为人员资料表。
介绍完第一结构化数据中的基本条件后,下面将对第一结构化数据中的事件条件进行解释。需要注意的是,第一结构化数据中的事件条件与基本条件是有比较大的差异,事件条件为定义对应的事件状态,可以依据事件状态来筛选符合事件状态所对应的用户群体。
在基于结构化组合的规则和/或条件将至少部分定义进行组合,得到第一结构化数据可以包括以下步骤:
S710:将事件条件的第四键值对、事件条件的第五键值对组合,得到事件条件;
其中,第四键值对的键是事件名称或编码,第四键值对的值是唯一标记事件名称或编码的编码值,第五键值对的键是关系类型,第五键值对的值是事件发生、未发生或依次发生的状态。
具体地,事件条件包括第四键值对、第五键值对来表示筛选用户群体的事件状态依据,第四键值对表示是依据哪个事件来进行筛选,可以用事件的具体名称(可以是全称或者缩写名称)或者编码来表示进行筛选所依据的事件,因此第四键值对的键可以是事件名称或编码,第四键值对的值可以是指唯一标记事件名称或编码的编码值。第五键值对表示的是作为筛选依据的事件的行为状态,行为状态可以是发生、未发生、依次发生,因此第五键值对的键是关系类型,第五键值对的值是事件发生、未发生或依次发生的状态。例如第五键值对的值是事件发生,则表示筛选执行过第四键值对的值所对应的事件的用户群体;如果第五键值对的值是事件未发生,则表示筛选未执行过第四键值对的值所对应的事件的用户群体;如果第五键值对的值是事件依次发生,则表示筛选依次执行过事件条件中第四键值对的值所对应的事件的用户群体。可选地,第五键值对的值可以使用事件发生、未发生或依次发生对应的名称(可以是全称或者缩写名称)或者对应的行为状态编号来表示事件的行为状态,其中行为状态编号可以唯一确定事件的行为状态。例如第五键值对的值可以用缩写名称“hap”表示事件发生,缩写名称“unhap”表示事件未发生,缩写名称“hit”表示事件依次发生。或者第五键值对的值可以用行为状态编号“e1”表示事件发生,行为状态编号“e2”表示事件未发生,行为状态编号“e3”表示事件依次发生。
例如,第一结构化数据是JSON语句:
{"opr":"hap","events":[{"eventcode":"2"}]},事件编码为2的事件表示开卡事件,该JSON语句表示的事件条件所筛选的用户群体是执行过开卡事件所对应的用户群体。
通过事件条件中的事件以及事件对应的状态来作为筛选用户群体的依据,在一定程度上可以预先确定用户群体的范围,提高筛选用户群体的效率。
可选地,事件条件除了包括第四键值对和第五键值对之外,还可以包括更多的键值对,比如说第六键值对,第七键值对等等,本申请对事件条件包括的键值对数量在此不作限定。
当事件条件还包括第六键值对时,可以通过以下步骤进行组合,具体可以包括:
S720:将事件条件的第四键值对、事件条件的第五键值对、事件条件的第六键值对进行组合,得到事件条件;
其中,事件条件的第六键值对包括聚合主条件、聚合子条件、事件开始时间、事件结束时间中至少一个。
进一步地,事件条件还可以包括聚合主条件、聚合子条件、事件开始时间、事件结束时间来进一步筛选执行过特殊的行为事件所对应的用户群体。因此事件条件还包括第六键值对,第六键值对表示的是对第四键值对的值所对应的事件依据聚合主条件、聚合子条件、事件开始时间、事件结束时间来对用户群体进行筛选。
事件开始时间、事件结束时间还可以包括时间原始值和时间间隔单位,时间原始值是与时间相关的数值,时间间隔单位是表示时间度量单位,例如second(秒)、minute(分)、hour(时)、day(天)、fixed(固定)。若时间原始值是完整的时间,包括年、月、日、时、分、秒,例如2022-01-3113:56:00,则与之对应的时间间隔单位是fixed(固定)。若时间原始值只是单独的数值,例如5,则时间度量单位可以是second(秒)、minute(分)、hour(时)、day(天)中的一个。
若第六键值对表示的是进行筛选用户群体所依据的事件开始时间,则第六键值对的键可以是事件开始时间的时间原始值的名称(例如:beginTime、bTime)以及可以是与事件开始时间的时间原始值对应的时间间隔单位(beginInterval),第六键值对的值是设定的事件开始时间的时间原始值以及时间间隔单位,其中设定的事件开始时间的时间原始值可以是动态时间,也可以是绝对时间。动态时间可以是一个数值,例如若表示与事件结束时间相距五天的事件开始时间,事件结束时间是2022-01-31 13:56:00,则表示事件开始时间的时间原始值对应的第六键值对的值是5,表示事件开始时间的时间间隔单位对应的第六键值对的值是day。绝对时间是指指明年、月、日的具体时间或者年、月、日、时、分、秒的具体时间,例如表示事件开始时间的时间原始值对应的第六键值对的值是2022-01-31 13:56:00,表示事件结束时间的时间间隔单位对应的第六键值对的值是fixed。
若第六键值对表示的是进行筛选用户群体所依据的事件结束时间,则第六键值对的键可以是事件结束时间的时间原始值的名称(例如:beginTime、bTime)以及可以是与事件结束时间的时间原始值对应的时间间隔单位(beginInterval),第六键值对的值是设定的事件结束时间的时间原始值以及时间间隔单位,其中设定的事件结束时间的时间原始值可以是动态时间,也可以是绝对时间。动态时间可以是一个数值,例如若表示与事件开始时间相距5分钟的时间,事件开始时间是2022-01-31 13:56:00,则表示事件结束时间的时间原始值对应的第六键值对的值是5,表示事件结束时间的时间间隔单位对应的第六键值对的值是minute。绝对时间是指指明年、月、日的具体时间或者年、月、日、时、分、秒的具体时间,例如若表示事件结束时间是2022-01-31 13:56:00,则表示事件结束时间的时间原始值对应的第六键值对的值是2022-01-31 13:56:00,表示事件结束时间的时间间隔单位对应的第六键值对的值是fixed。
例如,第一结构化数据是JSON语句:{"opr":"hap","beginInterval":"day","beginTime":"5","endInterval":"fi xed","endTime":"2022-01-31 13:56:00","events":[{"eventcode":"2"}]},事件编码为2的事件表示开卡事件,该JSON语句表示的事件条件所筛选的用户群体是在2022-01-26 13:56:00至2022-01-31 13:56:00这段时间执行过开卡事件所对应的用户群体。
由于事件筛选一般会有时间限制,而数据库中的有些数据是根据时间动态变化的,因此,为了充分运用各项数据,提高查询的精度,在一些实施例中,会通过事件条件和基本条件或者多个事件条件组合形成事件序列,再通过事件序列,或者事件序列的组合来进一步筛选用户群体。
在这里,需要注意的是,当事件条件和基本条件或者多个事件条件组合形成事件序列时,用户在可视化交互界面中选择所需的基础数据的定义进行组合后,计算机后台接收用户所选择的基础数据的定义再进一步地组合操作,则可以包括以下步骤:
S730:接收对基础数据的定义进行基本条件、组合关系、事件条件、事件序列组合的操作指令,基本条件是不同的定义之间进行逻辑运算的结果,事件条件是定义对应的事件状态,事件序列是定义对应的多个事件之间形成的序列,组合关系是基本条件、事件条件、事件序列之间进行逻辑运算所用的运算符;
S740:响应于操作指令,基于组合关系将基本条件、事件条件、事件序列进行组合,得到第一结构化数据。
在得到第一结构化数据后,需要将第一结构化数据转换为第二结构化数据,具体请参阅图5,图5是第一结构化数据转换为第二结构化数据的流程示意图,可以包括以下步骤:
S810:解析第一结构化数据,以及判断第一结构化数据是否存在组合关系;
第一结构化数据是依据服务器所接收到的操作指令中包括的基本条件、组合关系、事件条件、事件序列所组合的数据结构。组合关系是基本条件、事件条件、事件序列之间进行逻辑运算所用的运算符,筛选用户群体的条件可以是基本条件和事件条件的条件组合,用以筛选用户群体的条件可以是一个或者是多个,若是多个条件(基本条件和/或事件条件),则多个条件之间的关系可以是与关系、或关系,其中第一结构化数据中可以存在多个与关系、或关系。若是与关系,则第一结构化数据的组合关系中对应的语句{"relation":"and"},与该“与关系”相关联的基本条件和/或事件条件所筛选的用户群体是相关联的各个基本条件和/或事件条件所筛选的用户群体之间的交集用户群体;若是或关系,则第一结构化数据的组合关系中对应的语句{"relation":"or"},与该“或关系”相关联的基本条件和/或事件条件所筛选的用户群体是相关联的各个基本条件和/或事件条件所筛选的用户群体之间的并集用户群体。
服务器在接收到操作指令后,响应操作指令得到第一结构化数据后,为获取基于第一结构化数据包括的基本条件、事件条件、事件序列所筛选的用户群体,服务器会将第一结构化数据转化为第二结构化数据以在数据库中查询出符合第一结构化数据包括的各个条件的用户群体。为得到第二结构化数据,服务器会对第一结构化数据进行解析以将第一结构化数据包括的各个条件转化为第二结构化数据的部分。为获取第一结构化数据的各个条件之间的条件关系,服务器解析第一结构化数据的第一步是判断第一结构化数据是否存在组合关系,即判断第一结构化数据中表示组合关系的“relation”属性的值是否为空,即{"relation":""},若服务器解析到第一结构化数据“relation”属性的值为空,则第一结构化数据包括的条件是单个基本条件或单个事件条件;若服务器解析到第一结构化数据“relation”属性的值不为空,则第一结构化数据包括的条件是多个条件(基本条件和/或事件条件),“relation”属性的值与多个条件(基本条件和/或事件条件)之间的组合关系相对应。
S820:响应于存在组合关系,获取组合关系所关联的基本条件和事件条件;
服务器解析第一结构化数据时会判断第一结构化数据是否存在组合关系,若服务器解析到第一结构化数据中存在组合关系,服务器会获取与该组合关系所关联的基本条件和/或事件条件。
组合关系包括简单组合关系、复杂组合关系,简单组合关系是指与组合关系所关联的基本条件和/或事件条件中不包括其他的组合关系。
例如,第一结构化数据是JSON语句:
该JSON语句中的基本条件与事件条件内不包括其他的relation属性,因此该基本条件与事件条件之间的关系就是简单组合关系(与关系)。服务器解析到组合关系relation属性是“and”时,继续解析第一结构化数据,获取与该组合关系“and”相关联的事件条件与基本条件。
复杂组合关系是指与组合关系所关联的条件内存在其他的组合关系,复杂组合关系包括嵌套组合关系,嵌套组合关系是指条件内嵌套了其他的基本条件和/或事件条件。例如,第一结构化数据是JSON语句:
{"relation":"and",
"conditions":[{"opr":"hap",
"beginInterval":"day",
"beginTime":"5",
"endInterval":"fixed",
"endTime":"2022-01-31 13:56:00",
"events":[{"eventcode":"2"}]},
{"relation":"or",
"conditions":
[{"property":["field":1,"value":30,"opt":"lt"]},
{"property":["field":2,"value":1,"opt":"eq"]}]}]},该JSON语句中的基本条件与事件条件内包括其他的relation属性,因此该基本条件与事件条件之间的关系就是复杂组合关系(“与关系”内嵌套了“或关系”)。服务器解析到组合关系relation属性“and”时,获取与and相关联的事件条件以及嵌套条件,继续解析第一结构化数据内的嵌套条件,解析到组合关系relation属性“or”,此时嵌套条件内的基本条件是简单组合关系,获取与组合关系“or”相关联的两个基本条件,从而获取到第一结构化数据中全部的组合关系、基本条件、事件条件。
S830:解析基本条件和事件条件,将基本条件的第一键值对、第二键值对、第三键值对、事件条件的键值对的组合作为第二结构化数据的查询条件,第一键值对的值对应的字段名称所在的数据表作为第二结构化数据的查询来源。
服务器解析第一结构化数据,获取到第一结构化数据中的基本条件、事件条件后,继续解析获取到的基本条件、事件条件。基本条件包括第一键值对、第二键值对、第三键值对,其中第一键值对是第一组的第一目标定义,第二键值对是第一组的第二目标定义,第三键值对是第一组的第一关系。
第二结构化数据包括查询条件和查询来源,第一结构化数据的基本条件、事件条件对应于第二结构化数据的查询条件。
对于基本条件,由于基本条件的第一键值对的值是唯一标识,该唯一标识是能够确定该基本条件所对应的筛选依据,即可以唯一确定基础数据中的目标数据表和目标字段,在将第一结构化数据转化为第二结构化数据时,将第一键值对的值对应的目标字段所在的目标数据表作为第二结构化数据的查询来源。
例如,第一结构化数据可以是JSON语句,JSON语句中的基本条件有"property":["field":1,"value":30,"opt":"lt"],其中“field”属性的值“1”表示的是表table_1中的字段field_1,代表的是用户表中的年龄字段,“value”属性对应于第二键值对,“opt”属性对应于第三键值对,“opt”属性的值“lt”表示小于,因此该JSON语句的基本条件的目的是筛选出年龄小于30的用户群体,将该基本条件转化为部分第二结构化数据:“from table_1where field_1<30”。
对于事件条件,由于事件条件中存在事件编码,事件编码表示的事件存在对应的事件表,在将第一结构化数据转化为第二结构化数据时,将事件条件的键值对的组合中的事件编码表示的事件对应的事件表作为第二结构化数据的查询来源。
例如,第一结构化数据可以是JSON语句,JSON语句中的事件条件有{"opr":"hap",
"beginInterval":"day",
"beginTime":"5",
"endInterval":"fixed",
"endTime":"2022-01-31 13:56:00",
"events":[{"eventcode":"2"}]},其中“eventcode”属性的值“2”表示开卡事件,则该JSON语句的事件条件的目的是筛选出在2022-01-2613:56:00至2022-01-31 13:56:00这段时间内发生过开卡事件的用户群体,该事件条件对应的第二结构化数据的查询条件是在2022-01-2613:56:00至2022-01-31 13:56:00这段时间内发生开卡事件,查询来源是开卡事件对应的开卡事件表。
S840:将第一结构化数据转换为含有位图函数的第二结构化数据,第二结构化数据包括查询条件、查询来源,位图函数用于以查询条件在查询来源中进行查询,得到查询目标,查询目标以数组的形式输出,数组的不同元素来自查询来源中数据表的相同字段的值,若干数据表均存在相同字段,相同字段的值为唯一标识符。
第一结构化数据转化成第二结构化数据的目的是筛选出符合第一结构化数据包括的基本条件、事件条件的用户群体,为便于获取用户群体,存储用户群体相关信息的数据表中均存在相同字段,相同字段的值为唯一标识符(例如用户id),可以唯一标识用户。由于查询来源中各个数据表存在相同字段,因此第二结构化数据可以以该相同字段作为查询目标,查询后的结果可以利用位图函数以数组的形式输出。
通过将具有相同字段的不同元素,按照有序的形式组织形成数组,直接对数组进行各种运算,并以数组的形式输出查询目标,简化了繁杂的运算,也使程序的结构比较简单。
一般来说,将第一结构化数据转换为第二结构化数据具体是将第一结构化数据里包含的键值对转换为第二结构化数据对应的位图函数,具体的转换过程可以如下:
其中,位图函数包括第一位图函数、第二位图函数、第三位图函数,
S910:将基本条件的第一键值对、第二键值对、第三键值对转换为第二结构化数据的第一部分的第一条件,第一部分包括第一位图函数,第一位图函数用于根据第一条件输出第一查询目标;
为了便于获取第一结构化数据中的符合各个基本条件、事件条件的用户群体,可以先依据每个条件(基本条件、事件条件),将符合每个条件的用户群体分别查询出来,再依据与每个条件(基本条件、事件条件)相关联的组合关系获取到符合第一结构化数据中的符合各个基本条件、事件条件的用户群体。
对于基本条件,依据第一键值对、第二键值对、第三键值对获取与基本条件所对应的第二结构化数据,查询目标利用位图函数以数组的形式输出。
例如,第一结构化数据可以是JSON语句,JSON语句中的基本条件有"property":["field":1,"value":30,"opt":"lt"],其中第一键值对“field”属性的值“1”表示的是表table_1中的字段field_1,代表的是用户表中的年龄字段,“value”属性对应于第二键值对,“opt”属性对应于第三键值对,“opt”属性的值“lt”表示小于,因此该JSON语句的基本条件的目的是筛选出年龄小于30的用户群体,将该基本条件转化为第二结构化数据:“t1 as(select to_bitmap(id)ids from table_1where field_1<30),t2 as(select bitmap_union(t1.ids)ids from t1)”,其中第一位图函数to_bitmap函数、bitmap_union函数将查询目标对应的相同字段(即id)转化成数组的形式输出。如此,依据该第二结构化数据可以获取到相同字段数组(例如存有用户id的数组),该相同字段数组对应一群年龄小于30的用户。
S920:将事件条件的键值对转换为第二结构化数据的第二部分的第二条件,第二部分包括第二位图函数,第二位图函数用于根据第二条件输出第二查询目标;
对于事件条件,依据事件条件的键值对对获取与事件条件所对应的第二结构化数据,查询目标利用位图函数以数组的形式输出。
例如,第一结构化数据可以是JSON语句,JSON语句中的基本条件有{"opr":"hap",
"beginInterval":"day",
"beginTime":"5",
"endInterval":"fixed",
"endTime":"2022-01-31 13:56:00",
"events":[{"eventcode":"2"}]},其中“eventcode”属性的值“2”表示开卡事件,则该JSON语句的事件条件的目的是筛选出在2022-01-2613:56:00至2022-01-31 13:56:00这段时间内发生过开卡事件的用户群体,该事件条件对应的第二结构化数据的查询条件是在2022-01-2613:56:00至2022-01-31 13:56:00这段时间内发生开卡事件event_1,查询来源是开卡事件对应的开卡事件表table_2,将该事件条件转化成第二结构化数据:“t3 as(select to_bitmap(id)ids from table_2where event_1between‘2022-01-26 13:56:00’and‘2022-01-3113:56:00'),t4 as(select bitmap_union(t1.ids)ids from t3)”,其中与事件条件对应的第二位图函数to_bitmap函数、bitmap_union函数将查询目标对应的相同字段(即id)转化成数组的形式输出。如此,依据该第二结构化数据可以获取到相同字段数组(例如存有用户id的数组),该相同字段数组对应一群在2022-01-26 13:56:00至2022-01-31 13:56:00这段时间内发生过开卡事件的用户。
在步骤S910和S920中,通过分别将基本条件和事件条件中的键值对转换为第二结构化数据中位图函数对应的各个部分,当第一结构化数据中的基本条件和事件条件略微改变时,方便数据库专业人员可以随时对第二结构化数据进行修改,但对应用程序源代码却毫无影响,从而提高程序的可移植性。
S930:将第一查询目标和第二查询目标转换为第二结构化数据的第三部分,第三部分包括第三位图函数,第三位图函数用于对第一查询目标和第二查询目标进行操作,得到查询目标。
由于筛选用户群体的条件不只有单个基本条件或者单个事件条件,还包括条件组合,例如基本条件与事件条件的组合。因此,对于第一结构化数据中存在一个基本条件与一个事件条件的组合,可以先分别筛选出符合基本条件的用户群体以及符合事件条件的用户群体,再将基本条件对应的用户群体与事件条件对应的用户群体依据组合关系进行集合操作,例如组合关系是“与关系”,则将基本条件对应的用户群体与事件条件对应的用户群体进行求交集用户群体的操作;若组合关系是“或关系”,则将基本条件对应的用户群体与事件条件对应的用户群体进行求并集用户群体的操作。
例如,为获取在2022-01-26 13:56:00至2022-01-31 13:56:00这段时间内发生过开卡事件并且年龄小于30岁的用户群体,对应的第一结构化数据可以是:{"relation":"and",
"conditions":[{"opr":"hap",
"beginInterval":"day",
"beginTime":"5",
"endInterval":"fixed",
"endTime":"2022-01-31 13:56:00",
"events":[{"eventcode":"2"}]},
{"property":["field":1,"value":30,"opt":"lt"]}]},对应的第二结构化数据是“with
t1 as(select to_bitmap(id)ids from user where age<30),
t2 as(select bitmap_union(t1.ids)ids from t1),t3 as(select to_bitmap(id)ids from table_2where event_1between‘2022-01-26 13:56:00’and‘2022-01-3113:56:00'),t4 as(select bitmap_union(t1.ids)ids from t3),
t5 as(select bitmap_and(t2.ids,t4.ids)from t2,t4)select t5.ids fromt5”,其中t1、t2是为了获取基本条件筛选的用户群体,t3、t4是为了获取事件条件筛选的用户群体,t5是对基本条件筛选的用户群体、事件条件筛选的用户群体依据组合关系进行处理,该JSON语句中的“relation”属性是“and”,因此第三位图函数bitmap_and函数是对基本条件筛选的用户群体、事件条件筛选的用户群体求交集,t5对应的是一群在2022-01-2613:56:00至2022-01-3113:56:00这段时间内发生过开卡事件并且年龄小于30岁的用户群体相关的信息,即获得查询目标。
可选地,第三位图函数还可以是对基本条件筛选的用户群体、事件条件筛选的用户群体求并集,第三位图函数具体实现的功能以第一结构化数据中的“relation”属性为依据。
可选地,第一位图函数、第二位图函数、第三位图函数的函数名称是可以自行设置的。
可选的,位图函数的使用依赖于所有接入表均有相同字段的情况。在有些接入表不存在相同字段的情况下,也可以不使用位图函数。
这里总结一下,本申请查询语句的方式有两种(以JSON转换为SQL为例):
第一种:每次要查询的时候就利用可视化交互界面基于关联数据集合(本申请也可将关联数据集合称为关系表)进行查询组合的搭配得到JSON字符串,然后转换为SQL语句,再利用SQL语句去查关系表得到字段,上述列举的实施例就是基于该方法进行查询;
第二种:无论是关系表、JSON字符串还是SQL语句,全都预先准备好,需要查的时候直接调用SQL语句对关系表进行查询;
另外,通过对JSON中的key或者value值的扩展,可以延伸更多支持使用的场景,比如支持相对时间条件、事件序列等。
可选的,第一结构化数据可以是SQL语句,第二结构化数据可以是JSON字符串。可选的,第一结构化数据、第二结构化数据可以是SQL语句、JSON字符串之外的其他结构化数据。
本申请提供的用户信息的筛选方法,该方法包括以下步骤:
获得如上述任一项方法得到的第二结构化数据;
执行第二结构化数据以在基础数据中得到用户群信息。
具体地,可以在获取的多个第二结构化数据中进行任一选取查询,进而在基础数据中得到用户群信息。
参阅图6,图6是本申请提供的电子设备一实施例的结构示意图,该电子设备60包括存储器61和处理器62,存储器61用于存储程序数据,处理器62用于执行程序数据以实现如下的方法:
响应于操作指令,基于结构化组合的规则和/或条件将至少部分定义进行组合,得到第一结构化数据,定义至少部分来源于关联数据集合,关联数据集合限定基础数据及其定义的关联关系;将第一结构化数据转换为第二结构化数据,第二结构化数据用于通过转换后的规则和/或条件查询基础数据。
参阅图7,图7是本申请提供的计算机可读存储介质一实施例的结构示意图,该计算机可读存储介质70存储有程序数据71,程序数据71在被处理器执行时,用于实现如下的方法:
响应于操作指令,基于结构化组合的规则和/或条件将至少部分定义进行组合,得到第一结构化数据,定义至少部分来源于关联数据集合,关联数据集合限定基础数据及其定义的关联关系;将第一结构化数据转换为第二结构化数据,第二结构化数据用于通过转换后的规则和/或条件查询基础数据。
本申请的实施例以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (18)
1.一种数据生成方法,其特征在于,所述方法包括:
接收对基础数据的定义进行组合的操作指令,所述定义包括所述基础数据的注释、字段名称、存储类型、表名称、字段内容、字段阈值、组合关系、关系名称的至少一个或两个以上的组合;
响应于所述操作指令,基于结构化组合的规则和/或条件将至少部分所述定义进行组合,得到第一结构化数据,所述定义至少部分来源于关联数据集合,所述关联数据集合限定所述基础数据及其所述定义的关联关系。
2.根据权利要求1所述的方法,其特征在于,
所述响应于所述操作指令,基于结构化组合的规则和/或条件将至少部分所述定义进行组合,得到第一结构化数据,包括:
响应于所述操作指令,基于结构化组合的规则和/或条件将若干所述定义的唯一标识进行组合,得到所述第一结构化数据。
3.根据权利要求2所述的方法,其特征在于,
所述基于结构化组合的规则和/或条件将若干所述定义的唯一标识进行组合,得到所述第一结构化数据包括:
响应于在交互界面内对所述定义的操作指令,确定所述交互操作选中的若干所述定义;
响应于在所述交互界面内进行规则和/或条件配置的操作指令,确定所述若干定义按照所述规则和/或条件的组合方式。
4.根据权利要求1所述的方法,其特征在于,
所述响应于所述操作指令,基于结构化组合的规则和/或条件将至少部分所述定义进行组合,得到第一结构化数据包括:
响应于查选所述基础数据的第一层定义的第一操作,从若干待选的所述第一层定义中确定作为第一目标定义的所述第一层定义;
响应于查选或输入所述基础数据的第二层定义的第二操作,接收输入或从若干待选的第二层定义中确定作为第二目标定义的所述第二层定义;
响应于查选或输入所述第一目标定义和所述第二目标定义之间第一关系的第三操作,接收输入或从若干待选的逻辑运算中确定作为所述第一关系的目标逻辑运算;
将所述第一目标定义、所述第二目标定义以及所述第一关系组合为结构化的所述第一结构化数据。
5.根据权利要求4所述的方法,其特征在于,
所述接收输入或从若干待选的逻辑运算中确定作为所述第一关系的目标逻辑运算的步骤之后,所述方法还包括:
响应于查选第三层定义的第四操作,从若干待选的所述第三层定义中确定作为第三目标定义的所述第三层定义,所述第三层定义嵌套于所述第一层定义;
响应于查选或输入所述基础数据的第四层定义的第五操作,接收输入或从若干待选的第四层定义中确定作为第四目标定义的所述第四层定义;
响应于查选或输入所述第三目标定义和所述第四目标定义之间第二关系的第六操作,接收输入或从若干待选的逻辑运算中确定作为所述第二关系的目标逻辑运算;
所述将所述第一目标定义、所述第二目标定义以及所述第一关系组合为结构化的所述第一结构化数据包括:
将所述第一目标定义、所述第二目标定义、所述第一关系、所述第三目标定义、所述第四目标定义、所述第二关系组合为结构化的所述第一结构化数据。
6.根据权利要求5所述的方法,其特征在于,
所述基于结构化组合的规则和/或条件将至少部分所述定义进行组合的步骤之后,所述方法还包括:
对所述第一结构化数据进行解析,并在解析过程中判断是否存在嵌套于所述第一层定义的所述第三层定义;
若存在所述嵌套于所述第一层定义的第三层定义,则继续判断是否存在嵌套于所述第三层定义的另一层定义,直至不存在嵌套关系的所述另一层定义为止,得到基础的所述第二结构化数据;
组合所有基础的所述第二结构化数据,生成完整的所述第二结构化数据。
7.根据权利要求4所述的方法,其特征在于,
所述第一目标定义、所述第二目标定义以及所述第一关系各有若干,以构成若干组所述第一目标定义、所述第二目标定义以及所述第一关系;
所述将所述第一目标定义、所述第二目标定义以及所述第一关系组合为结构化的所述第一结构化数据包括:
将所述若干组所述第一目标定义、所述第二目标定义以及所述第一关系组合为结构化的所述第一结构化数据。
8.根据权利要求4所述的方法,其特征在于,
所述接收对基础数据的定义进行组合的操作指令包括:
接收利用所述基础数据的定义组合成基本条件或事件条件的操作指令,或接收对所述基础数据的定义进行基本条件、组合关系、事件条件组合的操作指令,所述基本条件是不同所述定义之间进行逻辑运算的结果,所述事件条件是所述定义对应的事件状态,所述组合关系包括所述基本条件和/或所述事件条件之间进行逻辑运算的关系;
所述响应于所述操作指令,基于结构化组合的规则和/或条件将至少部分所述定义进行组合,得到第一结构化数据包括:
响应于所述操作指令,基于所述组合关系将所述基本条件、事件条件进行组合,得到所述第一结构化数据。
9.根据权利要求8所述的方法,其特征在于,
所述将所述若干组所述第一目标定义、所述第二目标定义以及所述第一关系组合为结构化的所述第一结构化数据包括:
将所述基本条件的第一键值对作为第一组的所述第一目标定义,将所述基本条件的第二键值对作为第一组的所述第二目标定义,将所述基本条件的第三键值对作为第一组的所述第一关系,将所述基本条件的第一键值对、所述基本条件的第二键值对、所述基本条件的第三键值对进行组合,得到所述基本条件。
10.根据权利要求8所述的方法,其特征在于,
所述基于结构化组合的规则和/或条件将至少部分所述定义进行组合,得到第一结构化数据包括:
将所述事件条件的第四键值对、所述事件条件的第五键值对组合,得到事件条件;
其中,所述第四键值对的键是事件名称或编码,所述第四键值对的值是唯一标记所述事件名称或编码的编码值,所述第五键值对的键是关系类型,所述第五键值对的值是事件发生、未发生或依次发生的状态。
11.根据权利要求4所述的方法,其特征在于,
所述接收对基础数据的定义进行组合的操作指令包括:
接收对所述基础数据的定义进行基本条件、组合关系、事件条件、事件序列组合的操作指令,所述基本条件是不同的所述定义之间进行逻辑运算的结果,所述事件条件是所述定义对应的事件状态,所述事件序列是所述定义对应的多个事件之间形成的序列,所述组合关系是所述基本条件、所述事件条件、所述事件序列之间进行逻辑运算所用的运算符;
所述响应于所述操作指令,基于结构化组合的规则和/或条件将至少部分所述定义进行组合,得到第一结构化数据包括:
响应于所述操作指令,基于所述组合关系将所述基本条件、所述事件条件、所述事件系列进行组合,得到所述第一结构化数据。
12.根据权利要求8所述的方法,其特征在于,
所述基于结构化组合的规则和/或条件将至少部分所述定义进行组合,得到第一结构化数据之后,所述方法还包括:
将所述第一结构化数据转换为第二结构化数据,所述第二
结构化数据用于查询所述基础数据。
13.根据权利要求12所述的方法,其特征在于,
所述将所述第一结构化数据转换为第二结构化数据包括:
解析所述第一结构化数据,以及判断所述第一结构化数据是否存在所述组合关系;
响应于存在所述组合关系,获取所述组合关系所关联的所述基本条件和所述事件条件;
解析所述基本条件和所述事件条件,将所述基本条件的所述第一键值对、第二键值对、第三键值对、所述事件条件的键值对的组合作为所述第二结构化数据的查询条件,所述第一键值对的值对应的所述字段名称所在的数据表作为所述第二结构化数据的查询来源。
14.根据权利要求13所述的方法,其特征在于,
所述将所述第一结构化数据转换为第二结构化数据包括:
将所述第一结构化数据转换为含有位图函数的第二结构化数据,所述第二结构化数据包括所述查询条件、所述查询来源,所述位图函数用于以所述查询条件在所述查询来源中进行查询,得到查询目标,所述查询目标以数组的形式输出,所述数组的不同元素来自所述查询来源中所述数据表的相同字段的值,若干所述数据表均存在所述相同字段,所述相同字段的值为唯一标识符。
15.根据权利要求14所述的方法,其特征在于,所述位图函数包括第一位图函数、第二位图函数、第三位图函数,
所述将所述基本条件包括的所述第一键值对、第二键值对、第三键值对、所述事件条件的键值对的组合作为所述第二结构化数据的查询条件包括:
将所述基本条件的所述第一键值对、第二键值对、第三键值对转换为所述第二结构化数据的第一部分的第一条件,所述第一部分包括所述第一位图函数,所述第一位图函数用于根据所述第一条件输出第一查询目标;
将所述事件条件的所述键值对转换为所述第二结构化数据的第二部分的第二条件,所述第二部分包括所述第二位图函数,所述第二位图函数用于根据所述第二条件输出第二查询目标;
将所述第一查询目标和所述第二查询目标转换为所述第二结构化数据的第三部分,所述第三部分包括所述第三位图函数,所述第三位图函数用于对所述第一查询目标和所述第二查询目标进行操作,得到所述查询目标。
16.一种用户信息的筛选方法,其特征在于,所述方法包括:
获得如权利要求1至15任一项方法得到的所述第二结构化数据;
执行所述第二结构化数据以在所述基础数据中得到用户群信息。
17.一种电子设备,其特征在于,包括:
存储器和处理器,
所述存储器连接所处理器,用于存储程序数据,所述处理器用于执行所述程序数据以实现如权利要求1-15任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序数据,所述程序数据在被处理器执行时,用于实现如权利要求1-15任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210775598.6A CN116126918A (zh) | 2022-07-01 | 2022-07-01 | 数据生成方法、信息筛选方法、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210775598.6A CN116126918A (zh) | 2022-07-01 | 2022-07-01 | 数据生成方法、信息筛选方法、设备以及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116126918A true CN116126918A (zh) | 2023-05-16 |
Family
ID=86305049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210775598.6A Pending CN116126918A (zh) | 2022-07-01 | 2022-07-01 | 数据生成方法、信息筛选方法、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126918A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667906A (zh) * | 2023-08-29 | 2024-03-08 | 浪潮智慧科技有限公司 | 一种原始结构化数据智能处理方法、设备及存储介质 |
-
2022
- 2022-07-01 CN CN202210775598.6A patent/CN116126918A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667906A (zh) * | 2023-08-29 | 2024-03-08 | 浪潮智慧科技有限公司 | 一种原始结构化数据智能处理方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8185509B2 (en) | Association of semantic objects with linguistic entity categories | |
US6925462B2 (en) | Database management system, and query method and query execution program in the database management system | |
WO2013033098A1 (en) | Relational metal-model and associated domain context-based knowledge inference engine for knowledge discovery and organization | |
US9147040B2 (en) | Point-in-time query system | |
US10896163B1 (en) | Method and apparatus for query formulation | |
US9507764B2 (en) | Computerised data entry form processing | |
CN115794833A (zh) | 数据处理方法、服务器和计算机存储介质 | |
CN113407548B (zh) | 基于ClickHouse字典表的大数据查询方法、系统和介质 | |
CN116126918A (zh) | 数据生成方法、信息筛选方法、设备以及介质 | |
CN114661721A (zh) | 数据库表的处理方法和系统 | |
CN117539893A (zh) | 数据处理方法、介质、装置和计算设备 | |
CN117290376A (zh) | 基于大语言模型的两阶段Text2SQL模型、方法与系统 | |
CN117076742A (zh) | 数据血缘追踪方法、装置及电子设备 | |
Batini et al. | A survey of data quality issues in cooperative information systems | |
CN111125216A (zh) | 数据导入Phoenix的方法及装置 | |
CN112214494B (zh) | 检索方法及装置 | |
CN112783758B (zh) | 测试案例库与特征库生成方法、设备及存储介质 | |
CN113221528A (zh) | 基于openEHR模型的临床数据质量评估规则的自动生成与执行方法 | |
CN114218935B (zh) | 数据分析中的实体展示方法和装置 | |
KR101303363B1 (ko) | 데이터 처리 시스템 및 방법 | |
CN115687309B (zh) | 非侵入式卷烟出入库全流程数据血缘构建方法、装置 | |
Li et al. | Intelligent Java Dataset Construction and Visualization Evaluation for Reliable Software Development | |
CN117290355B (zh) | 一种元数据地图构建系统 | |
US11681700B1 (en) | Methods and apparatuses for clustered storage of information | |
CN114610791A (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 |