A data storage, query method and device, storage medium and server system

By introducing pointing information into the data storage structure, triggering events and result events are recorded and associated in chronological order, solving the problems of data redundancy and low query efficiency, and achieving more efficient data storage and querying.

CN113127483BActive Publication Date: 2025-12-30阿里巴巴(中国)网络技术有限公司
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202010042217.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-01-15
Publication Date
2025-12-30
Estimated Expiration
2040-01-15

AI Technical Summary

Technical Problem

Existing technologies suffer from significant data redundancy, wasting storage space and hindering data query efficiency, particularly in attribution analysis where redundant data storage and slow query speeds persist.

Method used

By introducing pointing information into the data storage structure, trigger events and result events are recorded in chronological order, and the pointing information is used to associate trigger events and result events, data redundancy is reduced, and storage space utilization and query efficiency are improved.

Benefits of technology

It reduces data storage redundancy, improves storage space utilization, and enhances data query efficiency, especially query speed during attribution analysis.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113127483B_ABST
    Figure CN113127483B_ABST
Patent Text Reader

Abstract

The embodiment of the present application provides a kind of data storage, query method, device, storage medium and server system, wherein data storage method includes: obtaining the behavior data of object;From object set, determine the object element of the object, the object element at least records object identification, points to the pointing information of trigger event set of the object, and the pointing information of outcome event set of the object;In the trigger event set, according to the order of trigger event occurrence time, record the trigger event carried by the behavior data;In the outcome event set, according to the order of outcome event occurrence time, record the outcome event carried by the behavior data;From the trigger event set, determine the target trigger event of directly triggering outcome event, record the pointing information of the target trigger event in the outcome event.The embodiment of the present application can reduce data storage redundancy, and provide the possibility for subsequent improvement data query efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present invention relate to the field of data processing technology, specifically to a data storage and query method, apparatus, storage medium, and server system. Background Technology

[0002] Attribution analysis is primarily used to analyze the contribution of triggering events to outcome events. An outcome event can be an event in which an object's behavior achieves a desired result; a triggering event can be an event that triggers the outcome event. To achieve purposes such as attribution analysis, it is necessary to store triggering events and outcome events in data so that, during attribution analysis, data query methods can be used to retrieve the triggering events that triggered the outcome events, thereby analyzing the contribution of the triggering events.

[0003] During their research, the inventors of this invention discovered a problem with current data storage methods for triggering and resulting events: significant data redundancy leads to wasted storage space and hinders subsequent improvements in data retrieval efficiency. Therefore, improving data storage methods to reduce redundancy, increase storage space utilization, and create opportunities for improved data retrieval efficiency has become a pressing issue for those skilled in the art. Summary of the Invention

[0004] In view of this, embodiments of the present invention provide a data storage and query method, apparatus, storage medium, and server system to reduce data storage redundancy, improve storage space utilization, and provide possibilities for improving data query efficiency in the future.

[0005] To achieve the above objectives, the embodiments of the present invention provide the following technical solutions:

[0006] A data storage method, comprising:

[0007] Obtain the object's behavioral data;

[0008] The object element of the object is determined from the object collection. The object element records at least the object identifier of the object, the pointing information to the trigger event set of the object, and the pointing information to the result event set of the object.

[0009] In the set of trigger events, the trigger events corresponding to the object carried by the behavior data are recorded in the order of their occurrence time.

[0010] In the set of outcome events, the outcome events corresponding to the object carried by the behavioral data are recorded in the order of their occurrence time.

[0011] From the set of triggering events, determine the target triggering event that directly triggers the result event, and record the pointing information of the target triggering event in the result event.

[0012] This invention also provides a data query method for querying data in a set of trigger events and a set of result events obtained based on the data storage method described above. The data query method includes:

[0013] Get the query request;

[0014] Based on the object query conditions carried in the query request, determine the target object element that meets the object query conditions from the object set;

[0015] Based on the query conditions for the results events carried in the query request, target results events that meet the query conditions are determined from the set of results events pointed to by the target object element; wherein, the target object element records pointing information to the set of results events;

[0016] Based on the target triggering event pointing information recorded in the target outcome event record, determine the target triggering event that directly triggers the target outcome event;

[0017] In the set of trigger events to which the target trigger event belongs, determine the trigger events that occurred earlier than the target trigger event and whose interval with the target trigger event is within a set time range, and determine the target trigger event and the determined trigger events as the queried trigger events.

[0018] This invention also provides a data storage device, comprising:

[0019] The data acquisition module is used to acquire the behavioral data of objects;

[0020] The object element determination module is used to determine the object element of the object from the object collection; the object element at least records the object identifier of the object, the pointing information to the trigger event set of the object, and the pointing information to the result event set of the object;

[0021] The trigger event recording module is used to record, in the trigger event set, the trigger events carried by the behavior data corresponding to the object in the order of the occurrence time of the trigger events;

[0022] The outcome event recording module is used to record, in the outcome event set, the outcome events carried by the behavioral data corresponding to the object in the order of the occurrence time of the outcome events;

[0023] The target trigger event pointing recording module is used to determine the target trigger event that directly triggers the result event from the set of trigger events, and record the pointing information of the target trigger event in the result event.

[0024] This invention also provides a data query device, comprising:

[0025] The query request retrieval module is used to retrieve query requests;

[0026] The target object element determination module is used to determine the target object element that meets the object query conditions from the object set based on the object query conditions carried in the query request.

[0027] The target outcome event determination module is used to determine the target outcome event that meets the outcome event query conditions from the set of outcome events pointed to by the target object element, based on the outcome event query conditions carried in the query request; wherein, the target object element records pointing information to the set of outcome events;

[0028] The target triggering event determination module is used to determine the target triggering event that directly triggers the target result event based on the pointing information of the target triggering event recorded in the target result event record.

[0029] The query event determination module is used to determine, from the set of trigger events to which the target trigger event belongs, a trigger event that occurred earlier than the target trigger event and whose interval time with the target trigger event is within a set time range, and to determine the target trigger event and the determined trigger event as the queried trigger event.

[0030] This invention also provides a storage medium storing a program for executing the data storage method described above, and / or storing a program for executing the data query method described above.

[0031] This invention also provides a server system, including: a master node, a transmission node, a merging node, and worker nodes;

[0032] The master control node is at least used to receive query requests;

[0033] The working node is used to process at least the query request;

[0034] The transmission node is at least used to: obtain raw behavioral data from the data source, fragment the raw behavioral data according to the object identifier to obtain behavioral data of each object, and transmit the behavioral data of each object to the merging node corresponding to each object.

[0035] The merging node is used at least for: acquiring the behavior data of an object; determining the object element of the object from the object set, wherein the object element records at least the object identifier of the object, pointing information to the trigger event set of the object, and pointing information to the result event set of the object; in the trigger event set, recording the trigger events carried by the behavior data corresponding to the object in the order of the occurrence time of the trigger events; in the result event set, recording the result events carried by the behavior data corresponding to the object in the order of the occurrence time of the result events; determining the target trigger event that directly triggers the result event from the trigger event set, and recording the pointing information of the target trigger event in the result event.

[0036] The data storage method provided in this embodiment of the invention, after acquiring the behavior data of an object, can determine the object element corresponding to the object from the object set. The object element can at least record the object identifier of the object, the pointing information to the trigger event set of the object, and the pointing information to the result event set of the object. Thus, this embodiment of the invention can record the trigger events corresponding to the object carried by the behavior data in the trigger event set according to the order of the occurrence time of the trigger events, and record the result events corresponding to the object carried by the behavior data in the result event set according to the order of the occurrence time of the result events, thereby realizing the storage of the trigger events and result events corresponding to the object. Furthermore, this embodiment of the invention can determine the target trigger event that directly triggers the result event from the trigger event set, and record the pointing information of the target trigger event in the result event, thereby realizing the association between the result event and the target trigger event.

[0037] The data storage method provided in this embodiment of the invention can associate objects with the object's trigger event set and result event set respectively through pointing information, and associate result events with the target trigger events of result events. Since the association between data is achieved through pointing information, the redundancy of data can be greatly reduced, data storage redundancy can be reduced, storage space utilization can be improved, and the possibility of improving data query efficiency can be provided in the future. At the same time, the trigger events recorded in the trigger event set are sorted according to the occurrence time of the trigger events, and the result events recorded in the result event set are sorted according to the occurrence time of the result events. Since sorting the trigger events and result events by occurrence time is more in line with the calculation characteristics of attribution analysis, it is beneficial to further improve the data query efficiency when performing attribution analysis. Attached Figure Description

[0038] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of this application. For those skilled in the art, other drawings can be obtained based on the provided drawings without creative effort.

[0039] Figure 1 A schematic diagram of the data storage structure provided in an embodiment of the present invention;

[0040] Figure 2 Another schematic diagram of the data storage structure provided in an embodiment of the present invention;

[0041] Figure 3 A system architecture block diagram for implementing the data storage method provided in the embodiments of the present invention;

[0042] Figure 4 A flowchart of a data storage method provided in an embodiment of the present invention;

[0043] Figure 5 Example diagram of the data storage method provided in the embodiments of the present invention;

[0044] Figure 6 Another example diagram of the data storage method provided in the embodiments of the present invention;

[0045] Figure 7 Another flowchart of the data storage method provided in the embodiments of the present invention;

[0046] Figure 8 An architectural block diagram of a server system provided in an embodiment of the present invention;

[0047] Figure 9 Another schematic diagram of the data storage structure provided in the embodiments of the present invention;

[0048] Figure 10 A flowchart of a data query method provided in an embodiment of the present invention;

[0049] Figure 11 A flowchart of the attribution analysis method provided in an embodiment of the present invention;

[0050] Figure 12 A block diagram of a data storage device provided in an embodiment of the present invention;

[0051] Figure 13 Another block diagram of the data storage device provided in the embodiments of the present invention;

[0052] Figure 14 Another block diagram of the data storage device provided in the embodiments of the present invention;

[0053] Figure 15 A block diagram of a data query device provided in an embodiment of the present invention;

[0054] Figure 16 Another block diagram of the data query device provided in an embodiment of the present invention. Detailed Implementation

[0055] Current attribution analysis primarily utilizes OLAP (Online Analytical Processing) engines. OLAP engines transform row-based data into column-based data, then encode, compress, and generate index files. This allows the OLAP engine to quickly filter data and provide query results when responding to queries. Currently, the storage methods for trigger events and outcome events in OLAP engines are as follows:

[0056] The OLAP engine can pre-associate trigger events and result events. Each result event can be associated with multiple trigger events, and each trigger event can also be associated with multiple result events. For each result event, the OLAP engine uses a string to record each trigger event associated with the result event and its attributes. Furthermore, the OLAP engine creates a data table to record the result event attributes and trigger fields of each result event. The trigger field of the result event is used to store the aforementioned string.

[0057] The problems arising from the above storage method for trigger events and outcome events are as follows: Since outcome events and trigger events have a many-to-many relationship, the same trigger event may be recorded in the trigger field of different outcome events in the data table. That is, the trigger field of different outcome events in the data table will record duplicate trigger events, resulting in data storage redundancy and wasting storage space. At the same time, since the OLAP engine is slow in processing large amounts of data, the redundant storage of data further reduces the efficiency of data query.

[0058] Based on this, embodiments of the present invention provide improved data storage and query methods, apparatuses, storage media, and server systems to reduce data storage redundancy, improve storage space utilization, and provide possibilities for improving data query efficiency. The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0059] To reduce data storage redundancy and improve storage space utilization, this invention provides an improved data storage structure. Based on this structure, the invention can structure and store object trigger events and result events. As an optional implementation of the disclosed content of this invention, an optional illustration of the improved data storage structure provided by this invention is as follows: Figure 1 Example, see reference Figure 1 The data storage structure provided in this embodiment of the invention may include at least: an object set, a set of trigger events for each object, and a set of result events;

[0060] The object set may include object elements of at least one object. The object element may record at least the object identifier of the object, the pointing information to the trigger event set of the object, and the pointing information to the result event set of the object. Optionally, the object may be in the form of a user, which has corresponding trigger events and result events. Of course, the embodiments of the present invention do not exclude other forms of objects with corresponding trigger events and result events.

[0061] For each object, an object element can be set in the object collection; in addition to recording the object identifier of the object, the object element of an object can also record the pointer information to the trigger event set of the object and the pointer information to the result event set of the object.

[0062] In this embodiment of the invention, the object collection can sort the object elements according to time. For example, the object collection can sort the object elements according to the occurrence time of the object's most recent achievement event.

[0063] A set of trigger events corresponding to an object can record the trigger events corresponding to that object. The trigger events recorded in the set can be sorted by the occurrence time of the trigger events, such as in ascending or descending order. A set of result events corresponding to an object can record the result events corresponding to that object. The result events recorded in the set can be sorted by the occurrence time of the result events, such as in ascending or descending order. Result events can also record the pointing information of the target trigger event that directly triggers the result event, so that the pointing information can point to the target trigger event that directly triggers the result event, thereby realizing the association between result events and the target trigger events of result events.

[0064] In one alternative example, the object collection can store object elements in an array, and correspondingly, the object collection can be an object array; the trigger event collection can store trigger events in an array, and correspondingly, the trigger event collection can be a trigger event array; the result event collection can store result events in an array, and correspondingly, the result event collection can be a result event array.

[0065] Based on the data storage structure provided in this embodiment of the invention, the triggering events corresponding to an object can be recorded through a set of triggering events, and the result events corresponding to an object can be recorded through a set of result events. Simultaneously, the object elements in the object set can record the object's object identifier, the pointer information pointing to the object's set of triggering events, and the pointer information pointing to the object's set of result events. Thus, through the pointer information of the set of triggering events, this embodiment of the invention can realize the association between an object and its corresponding triggering event; through the pointer information of the set of result events, this embodiment of the invention can realize the association between an object and its corresponding result event. Furthermore, the result event can record the pointer information of the target triggering event that directly triggers the result event, realizing the association between the result event and the target triggering event.

[0066] As can be seen, the embodiments of the present invention can associate objects with the object's trigger event set and result event set respectively through pointing information, and associate result events with the target trigger events of result events. Since the association between data is achieved through pointing information, the redundancy of data can be greatly reduced, data storage redundancy can be reduced, storage space utilization can be improved, and the possibility of improving data query efficiency can be provided in the future. At the same time, the trigger events recorded in the trigger event set are sorted according to the occurrence time of the trigger events, and the result events recorded in the result event set are sorted according to the occurrence time of the result events. Since sorting the trigger events and result events by occurrence time is more in line with the calculation characteristics of attribution analysis, it is beneficial to further improve the data query efficiency when performing attribution analysis.

[0067] Optionally, further, another illustration of an improved data storage structure provided in this embodiment of the invention may be as follows: Figure 2 Example, combined Figure 1 and Figure 2 As shown, the object element provided in this embodiment of the invention can also record the pointing information of object attributes, which is used to point to the object attributes of the object, thereby realizing the association between the object and the corresponding object attributes; the object attributes can include object information of multiple dimensions, and the specific information content can be set according to the actual situation. This embodiment of the invention is not limited.

[0068] Furthermore, the triggering event can also record pointer information pointing to the triggering event attribute. For example, for each triggering event, the triggering event can record pointer information pointing to the triggering event attribute to realize the association between the triggering event and the triggering event attribute. The triggering event attribute can include triggering event information of multiple dimensions, and the specific information content can be set according to the actual situation. The embodiments of the present invention are not limited thereto.

[0069] Furthermore, the achievement event can also record pointing information to the achievement event attribute. For example, for each achievement event, the achievement event can record pointing information to the achievement event attribute to realize the association between the achievement event and the achievement event attribute. The achievement event attribute can include achievement event information of multiple dimensions. The specific information content can be set according to the actual situation. The embodiments of the present invention are not limited.

[0070] In one alternative example, embodiments of the present invention can store object attributes, trigger event attributes, and result event attributes in an array manner.

[0071] As can be seen, the embodiments of the present invention can further associate objects with objects, trigger events with trigger event attributes, and result events with result event attributes by pointing information, thereby further reducing the redundancy of data and further reducing data storage redundancy.

[0072] Based on the data storage structure provided in this embodiment of the invention, this embodiment of the invention provides an improved data storage method, which stores the trigger events and result events corresponding to the object in a structured manner according to the data storage structure provided in this embodiment of the invention, thereby reducing data storage redundancy, improving storage space utilization, and providing the possibility for improving data query efficiency in the future. Figure 3 A system architecture block diagram for implementing the data storage method provided in the embodiments of the present invention is shown, with reference to... Figure 3 The system may include: server 10 and data source 20;

[0073] Among them, server 10 is a server system that implements the data storage method provided in the embodiments of the present invention. Server 10 can be implemented by a single server or by a server group composed of multiple servers.

[0074] Data source 20 can be a database system that stores object behavior data, such as HDFS (Hadoop Distributed File System), Kafka, etc.; in this embodiment of the invention, object behavior data can be collected, and the collected behavior data can be stored in data source 20; for example, object behavior data can be object behavior logs, such as user behavior logs.

[0075] In this embodiment of the invention, server 10 can obtain the behavior data of an object from data source 20, and store the object identifier, trigger event and result event carried by the behavior data in a structured manner using the data storage structure provided in this embodiment of the invention.

[0076] based on Figure 3 The system shown, from the server's perspective, Figure 4 An optional flow of the data storage method provided in an embodiment of the present invention is shown, with reference to Figure 4 The process may include:

[0077] Step S10: Obtain the object's behavior data.

[0078] The behavioral data of the object obtained in step S10 can be the behavioral data of any object stored in the data source or the behavioral data of a specified object.

[0079] In one optional implementation, the data source can distinguish and store behavioral data of different objects according to object identifiers. The server can obtain behavioral data corresponding to any object identifier or a specified object identifier from the data source to obtain the behavioral data of the object.

[0080] In another alternative implementation, the data source may not distinguish between behavioral data of different objects. The server can divide the raw behavioral data obtained from the data source according to the object identifier, thereby obtaining the behavioral data corresponding to each object identifier, and then obtaining the behavioral data corresponding to any object identifier or a specified object identifier, so as to obtain the behavioral data of the object.

[0081] The behavior data of the object may carry the object identifier, trigger event data, result event data, etc. The trigger event data may include the trigger event and trigger event attributes corresponding to the object, and the result event data may include the result event and result event attributes corresponding to the object.

[0082] Step S11: Determine whether the preset object set already contains the object element of the object. If not, proceed to step S12; if yes, proceed to step S16.

[0083] The preset object set may include: object elements of objects corresponding to trigger events and result events that have been stored in the server's history; specifically, the preset object set may include object elements of objects, which may record the object identifier of the objects corresponding to trigger events and result events that have been stored in the server's history, as well as the pointer information pointing to the trigger event set of the object and the pointer information pointing to the result event set of the object.

[0084] In one optional implementation, the present invention can determine whether the object identifier of the object carried by the behavior data matches in a preset object set. If yes, the object set already has the object element of the object; otherwise, the object set does not have the object element of the object.

[0085] Step S12: Create a new object element for the object in the object set, and record in the object element the object identifier of the object carried by the behavior data, the pointing information of the newly created trigger event set pointing to the object, and the pointing information of the newly created result event set pointing to the object.

[0086] If the object collection does not contain the object element of the object, it means that the server history has not stored the trigger event and result event corresponding to the object. In this case, it is necessary to create the object element of the object in the object collection, and create the trigger event collection and result event collection of the object.

[0087] In this embodiment of the invention, an object element of the object can be created in the object set, and the object identifier of the object carried by the behavior data can be recorded in the object element. At the same time, the server can record the pointing information of the trigger event set of the newly created object and the pointing information of the result event set of the newly created object in the target element. That is to say, in this embodiment of the invention, at least the following information should be recorded in the object element of the newly created object: the object identifier of the object carried by the behavior data, the pointing information of the trigger event set of the newly created object, and the pointing information of the result event set of the newly created object.

[0088] Optionally, the object collection can sort the object elements according to time. For example, the object collection can sort the object elements according to the occurrence time of the object's most recent achievement event. In this embodiment of the invention, the sorting position of the object element in the object collection can be determined according to the occurrence time of the object's most recent achievement event, and then the object element of the object can be created at the sorting position in the object collection.

[0089] In one optional implementation, the server may allocate storage space for the newly created trigger event set and result event set of the object, respectively. Thus, when a new object element of the object is created in the object set, the server may record the pointer information of the storage space allocated for the trigger event set of the object (i.e., the pointer information pointing to the trigger event set of the object) in the object element of the object; at the same time, the server may record the pointer information of the storage space allocated for the result event set of the object (i.e., the pointer information pointing to the result event set of the object) in the object element of the object.

[0090] Step S13: Determine the newly created trigger event set for the object based on the pointing information of the trigger event set; In the newly created trigger event set for the object, record the trigger events carried by the behavior data corresponding to the object in the order of the occurrence time of the trigger events.

[0091] The pointer information to the trigger event set recorded in the object element can point to the newly created trigger event set of the object. Therefore, this embodiment of the invention can determine the newly created trigger event set of the object based on the pointer information of the trigger event set. Furthermore, this embodiment of the invention can record the trigger events corresponding to the object carried by the behavior data in the newly created trigger event set of the object in the order of the occurrence time of the trigger events.

[0092] As an optional implementation, embodiments of the present invention may create a new set of trigger events for the object in the storage space pointed to by the pointing information of the set of trigger events, and record the trigger events corresponding to the object carried by the behavior data in the set of trigger events in the order of the occurrence time of the trigger events.

[0093] Step S14: Determine a new set of results events for the object based on the pointing information of the set of results events; In the new set of results events for the object, record the results events carried by the behavioral data corresponding to the object in the order of the occurrence time of the results events.

[0094] The pointing information of the result event set recorded in the object element can point to the newly created result event set of the object. Therefore, the present invention embodiment can determine the newly created result event set of the object according to the pointing information of the result event set. Furthermore, the present invention embodiment can record the result events corresponding to the object carried by the behavior data in the newly created result event set of the object in the order of the occurrence time of the result events.

[0095] As an optional implementation, embodiments of the present invention may create a new set of result events for the object in the storage space pointed to by the pointing information of the result event set, and record the result events corresponding to the object carried by the behavioral data in the result event set in the order of the occurrence time of the result events.

[0096] Optionally, steps S13 and S14 can be executed simultaneously, without distinguishing their order.

[0097] Step S15: For the result events in the result event set, determine the target triggering event that directly triggers the result event; record the pointing information of the target triggering event in the result event.

[0098] After creating the trigger event set and result event set of the object, for any result event in the result event set, this embodiment of the invention can determine the target trigger event that directly triggers the result event from the trigger event set, and then record the pointing information of the target trigger event in the result event.

[0099] In an optional implementation, embodiments of the present invention may determine from the set of triggering events a triggering event that occurs earlier than and most recently than the result event, and use this triggering event as a target triggering event to directly trigger the result event.

[0100] Steps S12 to S15 may be, when the server has not stored the triggering events and result events corresponding to the object in its history, the server implements a structured storage of the triggering events and result events corresponding to the object according to the data storage structure provided in the present invention.

[0101] Optionally, in a further implementation, embodiments of the present invention may create object attributes of the object in the storage space. The object attributes may be object attributes corresponding to the object carried by the behavioral data. At the same time, embodiments of the present invention may further record the pointing information of the newly created object attributes in the object elements of the object, so as to point to the newly created object attributes through the pointing information.

[0102] Furthermore, for any trigger event in the newly created set of trigger events, this embodiment of the invention can create a trigger event attribute corresponding to the trigger event in the storage space; at the same time, this embodiment of the invention can record the pointing information of the trigger event attribute in the trigger event, so as to point to the newly created trigger event attribute through the pointing information;

[0103] Furthermore, for any outcome event in the newly created set of outcome events, this embodiment of the invention can create an outcome event attribute corresponding to the outcome event in the storage space; at the same time, this embodiment of the invention can record the pointing information of the outcome event attribute in the outcome event, so as to point to the newly created outcome event attribute through the pointing information.

[0104] In one example, such as Figure 5 As shown, when it is necessary to store the triggering event and result event of object 4, since the server has not stored the triggering event and result event of object 4 in its history, the object collection does not include the object element of object 4. The server can create the object element of object 4 in the object collection, such as... Figure 5 The dashed box in the object set shown represents the object element of the newly created object 4; furthermore, the server can record in the object element of object 4 the object ID carried by the behavior data of object 4 (object ID is an optional form of object identification), the pointing information of the object attributes of the newly created object 4, the pointing information of the trigger event set of the newly created object 4, and the pointing information of the result event set of the newly created object 4.

[0105] By storing the object attributes carried by the behavioral data of object 4 in the storage space, the object attributes of object 4 are pointed to by the object attributes of object 4;

[0106] In the newly created trigger event set pointed to by the trigger event set pointer information of object 4, record the trigger events carried by the behavior data of object 4 in the order of the occurrence time of the trigger events; in the newly created result event set pointed to by the result event set pointer information of object 4, record the result events carried by the behavior data of object 4 in the order of the occurrence time of the result events.

[0107] For any outcome event in the outcome event set of object 4, the server can determine the triggering event that occurred later than and closest to the outcome event, and use the determined triggering event as the target triggering event to directly trigger the outcome event. Thus, the server records the pointing information of the target triggering event in the outcome event, as shown in the specific pointing relationship. Figure 5 The dashed arrow pointing to the triggering event indicates the outcome event; simultaneously, for any outcome event, the outcome event can also record the pointing information of the outcome event attribute. The pointing information of the outcome event attribute can point to the outcome event attribute carried by the behavior data of the stored object 4, and the pointing relationship is as follows: Figure 5 The dashed arrow pointing to the attribute of the outcome event is shown;

[0108] For any triggering event in the triggering event set of object 4, the server can also record the pointer information of the triggering event attribute in the triggering event. The pointer information of the triggering event attribute can point to the triggering event attribute of that triggering event carried by the stored behavior data of object 4, and the pointer relationship is as follows: Figure 5 The triggering event is indicated by the dashed arrow pointing to the triggering event property.

[0109] As can be seen, in embodiments of the present invention, when the server has not historically stored trigger events and result events of an object, a new set of trigger events and a new set of result events of the object can be created. The object can be associated with the newly created set of trigger events and the new set of result events through pointing information, and the result events can be associated with the target trigger events of the result events, so as to realize the association between data through pointing information.

[0110] Continue to refer to Figure 4 Step S16: Determine the trigger event set of the object based on the pointer information of the trigger event set recorded by the object element, and add the trigger event corresponding to the object carried by the behavior data to the trigger event set in the order of the occurrence time of the trigger events.

[0111] If the object set includes the object element of the object, it means that the server has historically stored the trigger event and result event corresponding to the object. In this case, the trigger event and result event can be added to the already stored trigger event set and result event set of the object, respectively.

[0112] Optionally, embodiments of the present invention may determine object elements in the preset object set that match the object identifier of the object carried by the behavior data, so as to determine the object element of the object from the object set.

[0113] When the object set includes object elements of the object, the embodiments of the present invention can determine the pointing information of the trigger event set from the object elements of the object, and then add the trigger events corresponding to the object carried by the behavior data to the trigger event set pointed to by the pointing information in the order of the occurrence time of the trigger events.

[0114] Step S17: Based on the pointing information of the result event set recorded by the object element, determine the result event set of the object, and add the result event corresponding to the object carried by the behavior data to the result event set in the order of the occurrence time of the result events.

[0115] In this embodiment of the invention, the pointing information of the result event set of the object can be determined from the object elements included in the object set, and then the result events corresponding to the object carried by the behavior data can be added to the result event set pointed to by the pointing information in the order of the occurrence time of the result events.

[0116] Optionally, steps S16 and S17 can be executed simultaneously, without distinguishing their order.

[0117] Step S18: For the result events added to the result event set, determine the target triggering event that directly triggers the result event; record the pointing information pointing to the target triggering event in the result event.

[0118] After adding a record of the triggering event corresponding to the object to the triggering event set of the object, and adding a record of the result event corresponding to the object to the result event set of the object, for any result event added to the result event set, the embodiment of the present invention can determine the target triggering event that directly triggers the result event from the triggering event set, and then record the pointing information of the target triggering event in the result event, so that the pointing information can be used to point to the target triggering event that directly triggers the result event.

[0119] Optionally, a triggering event that occurs earlier than and most recently than the outcome event can be used as the target triggering event to directly trigger that outcome event.

[0120] Steps S16 to S18 may be, when the server historically stores the trigger events and result events corresponding to the object, the server, according to the data storage structure provided in the embodiment of the present invention, structurally stores the trigger events and result events corresponding to the object.

[0121] Optionally, in a further implementation, for any triggering event added to the set of triggering events of the object, the embodiments of the present invention may record the pointing information of the triggering event attribute in the triggering event, which may point to the triggering event attribute of the triggering event carried by the stored behavior data of the object;

[0122] Furthermore, for any result event added to the result event set of the object, the embodiments of the present invention can record the pointing information of the result event attribute in the result event. This pointing information can point to the result event attribute of the result event carried by the stored behavior data of the object.

[0123] In one example, such as Figure 6 As shown, it is currently necessary to store the triggering event and result event corresponding to object 3. Since the server has historically stored the triggering event and result event of object 3, the object collection includes the object elements of object 3. The server can determine the object elements of object 3 from the object collection.

[0124] By using the pointer information of the trigger event set recorded by the object element of object 3, the server can add trigger events carried by the behavior data of object 3 to the trigger event set pointed to by the pointer information, in the order of the occurrence time of the trigger events; by using the pointer information of the result event set recorded by the object element of object 3, the server can add result events carried by the behavior data of object 3 to the result event set pointed to by the pointer information, in the order of the occurrence time of the result events.

[0125] For any result event added to the result event set of object 3, the server can determine the triggering event in the triggering event set of object 3 that occurred later than and closest to the result event. This determined triggering event is then used as the target triggering event to directly trigger the result event. The server records the pointing information of the target triggering event in the result event, with the corresponding pointing relationship as follows: Figure 6 The dashed arrow pointing to the triggering event indicates the outcome event; simultaneously, for any outcome event added to the outcome event set of object 3, the outcome event can also record the pointing information of the outcome event attribute. This pointing information can point to the outcome event attribute of that outcome event carried by the behavior data of object 3, and the pointing relationship is as follows: Figure 6 The dashed arrow pointing to the attribute of the outcome event is shown;

[0126] For any triggering event added to the triggering event set of object 3, the triggering event can also record the pointer information of the triggering event attribute. This pointer information can point to the triggering event attribute of that triggering event carried in the behavior data of object 3, and the pointer relationship is as follows: Figure 6The triggering event is indicated by the dashed arrow pointing to the triggering event property.

[0127] As can be seen, in this embodiment of the invention, when the server has historically stored trigger events and result events of an object, the trigger events and result events of the stored object can be added, and the object can be associated with the corresponding trigger events and result events, as well as the result events can be associated with the target trigger events of the result events, thereby realizing the association between data through the pointing information.

[0128] It can be seen that, regardless of Figure 4 The process of steps S12 to S15 shown is still... Figure 4 The processes shown in steps S16 to S18 of this embodiment of the invention all utilize a provided data storage structure to structurally store the data carried by the object's behavioral data. In summary, as an optional implementation, Figure 7 This invention illustrates another flow of the data storage method provided in an embodiment of the invention. This data storage method can be applied to a server. (Refer to...) Figure 7 The method flow may include:

[0129] Step S20: Obtain the object's behavior data.

[0130] Optionally, step S20 can be referred to Figure 4 Step S10 shown will not be repeated here.

[0131] Step S21: Determine the object element of the object from the object set. The object element records at least the object identifier of the object, the pointing information to the trigger event set of the object, and the pointing information to the result event set of the object.

[0132] In an optional implementation, step S21 may be performed when the preset object set does not contain object elements of the object, by... Figure 4 The step S12 shown creates a new object element of the object in the object collection, thereby determining the object element of the object from the object collection.

[0133] In another alternative implementation, step S21 may be to determine the object element of the object from the preset object set if the preset object set already contains the object element of the object.

[0134] Step S22: In the set of trigger events, record the trigger events corresponding to the object carried by the behavior data in the order of the occurrence time of the trigger events.

[0135] In an optional implementation, step S22 may be performed when the preset object set does not contain object elements of the object, by... Figure 4Step S13 shown is implemented.

[0136] In another alternative implementation, step S22 may be performed when the preset object set already contains the object elements of the object, by... Figure 4 Step S16 is implemented as shown.

[0137] Step S23: In the set of outcome events, record the outcome events corresponding to the object carried by the behavioral data in the order of their occurrence time.

[0138] In an optional implementation, step S23 may be performed when the preset object set does not contain object elements of the object, by... Figure 4 Step S14 is implemented as shown.

[0139] In another alternative implementation, step S23 may be performed when the preset object set already contains the object elements of the object, by... Figure 4 Step S17 is implemented as shown.

[0140] Step S24: From the set of triggering events, determine the target triggering event that directly triggers the result event, and record the pointing information of the target triggering event in the result event.

[0141] In an optional implementation, step S24 may be performed when the preset object set does not contain object elements of the object, by... Figure 4 Step S15 is implemented as shown.

[0142] In another alternative implementation, step S24 may be performed when the preset object set already contains the object elements of the object, by... Figure 4 Step S18 is implemented as shown.

[0143] The data storage method provided in this embodiment of the invention, after acquiring the behavior data of an object, can determine the object element corresponding to the object from the object set. The object element can at least record the object identifier of the object, the pointing information to the trigger event set of the object, and the pointing information to the result event set of the object. Thus, this embodiment of the invention can record the trigger events corresponding to the object carried by the behavior data in the trigger event set according to the order of the occurrence time of the trigger events, and record the result events corresponding to the object carried by the behavior data in the result event set according to the order of the occurrence time of the result events, thereby realizing the storage of the trigger events and result events corresponding to the object. Furthermore, this embodiment of the invention can determine the target trigger event that directly triggers the result event from the trigger event set, and record the pointing information of the target trigger event in the result event, thereby realizing the association between the result event and the target trigger event of the result event.

[0144] The data storage method provided in this embodiment of the invention can associate objects with the object's trigger event set and result event set respectively through pointing information, and associate result events with the target trigger events of result events. Since the association between data is achieved through pointing information, the redundancy of data can be greatly reduced, data storage redundancy can be reduced, storage space utilization can be improved, and the possibility of improving data query efficiency can be provided in the future. At the same time, the trigger events recorded in the trigger event set are sorted according to the occurrence time of the trigger events, and the result events recorded in the result event set are sorted according to the occurrence time of the result events. Since sorting the trigger events and result events by occurrence time is more in line with the calculation characteristics of attribution analysis, it is beneficial to further improve the data query efficiency when performing attribution analysis.

[0145] In an alternative implementation, the data storage method provided by this invention can be implemented by a server system, which can be a server system composed of multiple servers, and the architecture of the server system can be as follows: Figure 8 As shown, it includes: master node 11, importer node 12, merger node 13 and worker node 14;

[0146] The master node is used to receive service requests (such as query requests) and coordinate and manage the system's metadata.

[0147] The transmission node is used to connect to external data sources (such as HDFS system, Kafka system, etc.) and is responsible for data import and data export.

[0148] The merging node is used to perform structured storage of data provided by the transmission node (e.g., behavioral data obtained from external data sources) according to the data storage structure provided in the embodiments of the present invention.

[0149] Worker nodes are used at least to process service requests (such as query requests); optionally, worker nodes can load data from the structured storage of merged nodes to process service requests based on the loaded data; for example, a worker node can respond to a query request, load the structured storage of merged nodes, and determine the query result from the structured storage of merged nodes; such as Figure 8 As shown, there can be a corresponding relationship between merging nodes and worker nodes. Worker nodes can load the structured data stored in the corresponding merging node to process service requests.

[0150] In an embodiment of the present invention, Figure 8 Each module in the server system shown (such as the master node, transmission node, merging node, and worker node) can be deployed on multiple servers, optionally. Figure 8The server system shown can be implemented as a server cluster consisting of multiple servers; optionally, Figure 8 In the server shown, each merge node and worker node can be combined and corresponds to a CPU core.

[0151] In the process of implementing the data storage method provided by this invention, the transmission node can obtain the original behavioral data from the data source, and shard the original behavioral data according to the object identifier to obtain the behavioral data of each object; the transmission node can transmit the behavioral data of each object to the merging node corresponding to each object. For example, the transmission node can transmit the behavioral data of each object to the merging node corresponding to the object identifier of each object, wherein one merging node can correspond to multiple object identifiers.

[0152] The merging node can execute the data storage method provided in this embodiment of the invention to realize data storage; specifically, the merging node can be used for:

[0153] Obtain the object's behavioral data;

[0154] The object element of the object is determined from the object collection. The object element records at least the object identifier of the object, the pointing information to the trigger event set of the object, and the pointing information to the result event set of the object.

[0155] In the set of trigger events, the trigger events corresponding to the object carried by the behavior data are recorded in the order of their occurrence time.

[0156] In the set of outcome events, the outcome events corresponding to the object carried by the behavioral data are recorded in the order of their occurrence time.

[0157] From the set of triggering events, determine the target triggering event that directly triggers the result event, and record the pointing information of the target triggering event in the result event.

[0158] It should be noted that, Figure 8 The architecture of the server system shown is only one optional architecture for implementing the data storage method provided in the embodiments of the present invention. The embodiments of the present invention can also support other possible server system architectures. For example, the server system can also be implemented by a single server.

[0159] As an optional application example, the data storage structure and data storage method provided in this embodiment of the invention can be applied to creative script touchpoint events and creative script conversion events of stored objects (such as users). Creative scripts are script content that is disseminated using text, sound, images, videos, etc., and is mainly used for publicity and promotion purposes. In this scenario, the concepts described above in this embodiment of the invention can be replaced as follows:

[0160] The triggering event can be a creative script touch event;

[0161] The trigger event set can be a collection of creative script touch events;

[0162] The information pointing to the trigger event set can be the information pointing to the creative script touch event set;

[0163] The information pointing to the triggering event can be the information pointing to the creative script touch event;

[0164] The trigger event property can be a creative script touch event property;

[0165] The information that triggers an event property can be the information that triggers a creative script touch event property;

[0166] Outcome events can be creative script transformation events;

[0167] The set of outcome events can be a set of events that transform creative scripts into outcomes events;

[0168] The information pointing to the result event set can be the information pointing to the creative script transformation event set;

[0169] The outcome event attribute can be a creative script transformation event attribute;

[0170] The information pointing to the outcome event attribute can be the information pointing to the creative script transformation event attribute.

[0171] Example, Figure 9 This diagram illustrates another alternative data storage structure provided in an embodiment of the present invention. Figure 9 The data storage structure shown can be used to structure and store creative script touch events and creative script transformation events; such as Figure 9 As shown:

[0172] An object collection can store object elements in array form. Each object element can record the object ID, the pointer to the object's creative script touchpoint event set, the pointer to the object's creative script transformation event set, and the pointer to the object's attributes. Optionally, the pointer information can be in pointer form. For example, the pointer to the creative script touchpoint event set can be a pointer to the creative script touchpoint event set, the pointer to the creative script transformation event set can be a pointer to the creative script transformation event set, and the pointer to the object's attributes can be a pointer to the object's attributes. In other words, in one example, an object element can record the object ID corresponding to the object and the three types of pointers mentioned above.

[0173] Optionally, the object elements recorded in the object collection can be sorted according to the object conversion time. For example, the object elements recorded in the object collection can be sorted in ascending or descending order according to the object's most recent conversion time.

[0174] The information recorded in the object element's creative script touch event set can point to the object's creative script touch event set. This set can be an array containing the corresponding creative script touch events; for example, it can be an array of creative script touch events. A creative script touch event can be an event where a creative script reaches an object, such as when an object views a creative script. The set can also record creative script touch events according to their occurrence time; for example, the creative script touch events recorded in the set can be sorted in descending or ascending order of occurrence time.

[0175] The creative script touchpoint event corresponding to the object can record the pointing information of the creative script touchpoint event attributes. This pointing information can point to the corresponding creative script touchpoint event attributes. The creative script touchpoint event attributes can record multi-dimensional information about the creative script touchpoint event, such as the creative script touchpoint event ID, timestamp, media type, marketing plan name, and type. The dimensions of the information recorded by the creative script touchpoint event attributes can be set according to actual conditions, and this embodiment of the invention is not limited to these dimensions. Optionally, if the information recorded by the creative script touchpoint event attributes is of string type, dictionary encoding can be used to encode the information recorded by the creative script touchpoint event attributes into an integer.

[0176] The information recorded in the object element regarding the creative script conversion event set can point to the object's creative script conversion event set. This set can be an array containing the creative script conversion events corresponding to the object; for example, it can be an array of creative script conversion events. Creative script conversion events can be events such as product transactions or application installations resulting from creative script conversions. The set can also record creative script conversion events according to their occurrence time; for example, the events recorded in the set can be sorted in descending or ascending order of their occurrence time.

[0177] The creative script conversion event corresponding to the object can record the pointing information of the creative script conversion event attributes. The pointing information of the creative script conversion event attributes can point to the creative script conversion event attributes corresponding to the creative script conversion event. The creative script conversion event attributes can record multi-dimensional information about the creative script conversion event. Taking a product transaction resulting from a creative script conversion event as an example, the creative script conversion event attributes can record multi-dimensional information such as the ID of the creative script conversion event, timestamp, product name, price, and conversion type. The dimensions of information recorded by the creative script conversion event attributes can be set according to actual conditions, and this embodiment of the invention is not limited thereto. Optionally, if the information recorded by the creative script conversion event attributes is of string type, dictionary encoding can be used to encode the information recorded by the creative script conversion event attributes into an integer.

[0178] The creative script conversion event corresponding to the object can record the pointer information of the target creative script touch event, which is used to point to the target creative script touch event that directly triggered the creative script conversion event. Optionally, the pointer information of the creative script touch event can be in pointer form; for example, the pointer information of the creative script touch event can be a pointer to the creative script touch event. The target creative script touch event that directly triggers the creative script conversion event can be the most recent creative script touch event that occurred before the creative script conversion event.

[0179] The object element records the object attribute information, which can point to the corresponding object attribute. Optionally, the object attribute information can be in pointer form. For example, the object attribute information can be a pointer to the object attribute. Object attributes can record object information. Taking a user as an example, object attributes can include, for example, the user's age, gender, geographical location, user type, etc.

[0180] The foregoing described the data storage structure for structured storage of creative script touch events and creative script transformation events in embodiments of the present invention. Embodiments of the present invention can use this data storage structure to structure and store the creative script touch events and creative script transformation events of objects. The corresponding content can be referred to interchangeably, and will not be further described here. Based on the data storage structure for structured storage of creative script touch events and creative script transformation events provided in embodiments of the present invention, embodiments of the present invention can use... Figure 7 This method implements structured storage for creative script touch events and creative script transformation events; relevant details can be found in [reference needed]. Figure 7 The methodology will not be elaborated upon here.

[0181] The data storage structure and method provided in this invention can be applied to storing creative script touchpoint events and creative script conversion events of objects. By using pointing information, objects are associated with their respective sets of creative script touchpoint events and creative script conversion events, and creative script conversion events are associated with their corresponding target creative script touchpoint events. This achieves data association through pointing information, significantly reducing data storage redundancy for creative script touchpoint events and creative script conversion events, improving storage space utilization, and providing the possibility of improving data query efficiency. Furthermore, sorting creative script touchpoint events and creative script conversion events by occurrence time better matches the computational characteristics of creative script conversion attribution analysis, which is beneficial for further improving data query efficiency during creative script conversion attribution analysis.

[0182] It should be noted that the above description provides multiple embodiment solutions provided by the embodiments of the present invention. The optional methods described in each embodiment solution can be combined and cross-referenced with each other without conflict, thereby extending to a variety of possible embodiment solutions. These can all be the embodiment solutions disclosed and made public by the embodiments of the present invention.

[0183] Based on the data storage structure provided in this embodiment of the invention, after structured storage of the triggering events and outcome events of an object, this embodiment of the invention also provides a data query method. Optionally, this data query method can be used to query triggering events during attribution analysis, or it can be used to query triggering events independently. This is an optional implementation of the content disclosed in this embodiment of the invention. Figure 10 This invention illustrates an optional flow of the data query method provided in an embodiment of the present invention. This flow can be applied to a server, as shown below. Figure 10 The process may include:

[0184] Step S30: Obtain the query request.

[0185] Optionally, when the terminal needs to perform attribution analysis or find triggering events, it can send a query request to the server. The query request can carry at least object query conditions and result event query conditions. The object query conditions can be used to query target object elements that meet the object query conditions from the object set. The result event query conditions can be used to query target result events that meet the result event query conditions from the result event set pointed to by the queried target object elements.

[0186] Step S31: Based on the object query conditions carried in the query request, determine the target object element that meets the object query conditions from the object set.

[0187] Optionally, the object collection may include object elements of at least one object, and the object collection may sort the object elements by time. For example, the object collection may sort the object elements by the time of the object's most recent achievement event.

[0188] In an optional implementation, embodiments of the present invention may include a query time period in the object query conditions, thereby enabling embodiments of the present invention to determine candidate object elements from the object set whose sorting time matches the query time period;

[0189] Furthermore, the object query conditions can also carry object attribute query information. In this embodiment of the invention, target object elements whose object attributes match the object attribute query information can be determined from candidate object elements. Specifically, this embodiment of the invention can traverse candidate object elements and determine whether the object attribute pointed to by the object attribute pointing information recorded in each candidate object element matches the object attribute query information, thereby determining the target object element whose object attributes match the object attribute query information. Optionally, the object attribute query information can be set according to actual conditions. Taking a user as an example, the object attribute query information can define conditional information such as the object's gender and age.

[0190] Step S32: Based on the result event query conditions carried in the query request, determine the target result event that meets the result event query conditions from the result event set pointed to by the target object element; wherein, the target object element records pointing information to the result event set.

[0191] After determining the target object element, this embodiment of the invention can determine the set of result events it points to by the pointing information of the result event set recorded by the target object element; then, according to the result event query conditions further carried by the query request, the target result event that meets the result event query conditions can be determined from the result event set pointed to by the target object element.

[0192] In an optional implementation, embodiments of the present invention may include result event attribute query information in the result event query conditions; embodiments of the present invention may determine the set of result events pointed to by the target object element, thereby determining, from the result events stored in the result event set, the target result event whose result event attributes match the result event attribute query information. Optionally, the result event attribute query information can be set according to actual conditions, for example, the result event attribute query information may define condition information such as the type of result event.

[0193] Step S33: Based on the target triggering event pointing information recorded in the target outcome event record, determine the target triggering event that directly triggers the target outcome event.

[0194] In this embodiment of the invention, the result event can record the pointing information of the target triggering event that directly triggers it. Thus, after determining the target result event, this embodiment of the invention can determine the target triggering event pointed to by the pointing information of the target triggering event recorded in the target result event.

[0195] Step S34: In the set of trigger events to which the target trigger event belongs, determine the trigger event that occurred earlier than the target trigger event and whose interval with the target trigger event is within a set time range, and determine the target trigger event and the determined trigger event as the queried trigger event.

[0196] The set of trigger events to which the target trigger event belongs is the set of trigger events pointed to by the trigger event set pointing information recorded by the target object element. After determining the target trigger event, this embodiment of the invention can, within the set of trigger events to which the target trigger event belongs, trace back the trigger events with the occurrence time of the target trigger event as the time endpoint, thereby determining trigger events whose occurrence time is earlier than the target trigger event and whose interval time with the target trigger event is within a set time range. Then, the target trigger event and the determined trigger events are determined as the queried trigger events. Optionally, the queried trigger events can be organized in the form of a list and sorted in ascending or descending order according to the occurrence time of the trigger events.

[0197] In one optional implementation, embodiments of the present invention may, starting from the target triggering event, determine triggering events that occur earlier and whose interval with the target triggering event is within a set time range, from the set of triggering events to which the target triggering event belongs. In one example, the set of triggering events may be sorted in descending order of occurrence time. Embodiments of the present invention may, starting from the target triggering event, determine earlier triggering events from the set of triggering events to which the target triggering event belongs, until the interval between the occurrence time of the determined triggering event and the occurrence time of the target triggering event reaches the set time range, thereby using the target triggering event and the determined triggering events as the queried triggering events.

[0198] pass Figure 10 The method shown in this embodiment of the invention can query triggering events that contribute to the target outcome event. Since this embodiment of the invention associates data through pointing information, it can significantly reduce data redundancy, thereby improving data query efficiency. At the same time, the triggering events recorded in the triggering event set can be sorted according to the occurrence time of the triggering events, and the outcome events recorded in the outcome event set can be sorted according to the occurrence time of the outcome events. By sorting the triggering events and outcome events by time, it is more in line with the calculation characteristics of attribution analysis, which is conducive to further improving data query efficiency when performing attribution analysis.

[0199] Furthermore, for the retrieved triggering events, this embodiment of the invention can assign a contribution level to each triggering event in relation to the target outcome event based on an attribution model, thereby achieving attribution analysis. This embodiment of the invention is not limited to the attribution model used. For example, a last-reach attribution model can be used to allocate all contributions to the triggering event that occurred latest. For instance, in a creative script conversion attribution scenario, if an object viewed a creative script on channel A on the 1st of this month, viewed the creative script on channel B on the 2nd of this month, and completed a product transaction on the 3rd of this month, then the creative script conversion event of the product transaction can be attributed to the creative script on channel B, and all contributions can be allocated to the creative script on channel B. Alternatively, this embodiment of the invention can use a linear allocation model, which distributes the contributions equally among the triggering events.

[0200] Figure 10 The data query method shown can be applied to querying creative script touch events, and correspondingly, Figure 10 In the data query method shown, the triggering event can be a creative script touchpoint event, and the result event can be a creative script conversion event. Accordingly, those skilled in the art will understand... Figure 10 The application of the data query methods shown will not be further explained here.

[0201] As an optional implementation, embodiments of the present invention may be based on Figure 8 The server system shown implements a data query method during attribution analysis, which is optional. Figure 11 The method flow of attribution analysis provided by an embodiment of the present invention is shown below, with reference to Figure 11 The process may include:

[0202] Step S40: The master node obtains the query request.

[0203] Optionally, the terminal may send a query request to the server system when attribution analysis is required. Correspondingly, the master node in the server system can obtain the query request.

[0204] Step S41: The master node determines multiple worker nodes to process the query request.

[0205] Optionally, the master node may assign a worker node to handle the query request, or determine the worker node to handle the query request in the preset correspondence between the query request and the worker node.

[0206] Optionally, in embodiments of the present invention, a root working node may be designated from the determined plurality of working nodes, and the non-root working nodes among the determined working nodes may be grouped level by level to obtain working nodes in each group. A leader working node may be designated in each group of working nodes; that is, the plurality of working nodes may include the root working node and the working nodes grouped level by level.

[0207] Step S42: The working node determines the target object element that meets the object query conditions from the object set according to the object query conditions carried in the query request.

[0208] Each working node may have its own corresponding set of objects. Optionally, further details of step S42 can be found in [reference needed]. Figure 10 Step S31 shown is not repeated here.

[0209] Step S43: The working node determines the target result event that meets the result event query conditions from the result event set pointed to by the result event set pointing information of the result event set recorded by the target object element, based on the result event query conditions further carried by the query request.

[0210] Optionally, further details of step S43 can be found in [reference needed]. Figure 10 Step S32 shown is not repeated here.

[0211] Step S44: The working node determines the target triggering event to which the target triggering event pointing information of the target result event record points.

[0212] Optionally, further details of step S44 can be found in [reference needed]. Figure 10 Step S33 shown is not repeated here.

[0213] Step S45: The working node determines, from the set of trigger events to which the target trigger event belongs, a trigger event whose occurrence time is earlier than the target trigger event and whose interval time with the target trigger event is within a set time range, and uses the target trigger event and the determined trigger event as the queried trigger event.

[0214] Optionally, further details of step S45 can be found in [reference needed]. Figure 10 Step S34, as shown, will not be repeated here.

[0215] Step S46: The working node assigns a contribution to the target outcome event to each queried triggering event according to the attribution model, thereby obtaining the attribution result of the working node.

[0216] Step S47: The working node sends the attribution results to other working nodes for merging, so as to merge the attribution results of multiple working nodes level by level until the merged result corresponding to the root working node is obtained.

[0217] Step S48: The root working node feeds back the corresponding merging result to the master node.

[0218] After the root working node feeds back the corresponding merge result to the master node, the master node can feed back the merge result to the terminal, thus responding to the terminal's query.

[0219] based on Figure 8 The server system shown in this embodiment of the invention can significantly reduce data redundancy and improve data query efficiency by associating data through pointing information. Furthermore, it can use distributed machines (distributed worker nodes) to query trigger events in parallel, further improving data query efficiency. Moreover, by using distributed machines to run the attribution model in parallel, and by merging the attribution results of the distributed worker nodes level by level, attribution results can be obtained quickly, thereby enabling rapid response to query requests and achieving ad hoc response (i.e., being able to respond to queries in a short time; generally, the response time of ad hoc response can be controlled in the range of milliseconds to a few seconds).

[0220] Figure 11 The attribution analysis method and workflow shown can be applied to creative script transformation attribution, and those skilled in the art will understand accordingly. Figure 11 The applicable methods and procedures for attribution analysis shown are not explained further here.

[0221] The foregoing describes multiple embodiments of the present invention. The optional methods described in each embodiment can be combined and cross-referenced without conflict, thereby extending to a variety of possible embodiments. These can all be embodiments disclosed or made public by the present invention.

[0222] The data storage device provided in the embodiments of the present invention will be described below. The data storage device described below may be a program function module required to implement the data storage method provided in the embodiments of the present invention. The content of the data storage device described below can be referred to in correspondence with the above content.

[0223] As an optional implementation, Figure 12 A block diagram of a data storage device provided in an embodiment of the present invention, with reference to... Figure 12 The data storage device may include:

[0224] Data acquisition module 110 is used to acquire the behavioral data of the object;

[0225] The object element determination module 120 is used to determine the object element of the object from the object collection; the object element at least records the object identifier of the object, the pointing information to the trigger event set of the object, and the pointing information to the result event set of the object;

[0226] The trigger event recording module 130 is used to record, in the trigger event set, the trigger events carried by the behavior data corresponding to the object in the order of the occurrence time of the trigger events;

[0227] The outcome event recording module 140 is used to record, in the outcome event set, the outcome events carried by the behavioral data corresponding to the object in the order of the occurrence time of the outcome events;

[0228] The target trigger event pointing recording module 150 is used to determine the target trigger event that directly triggers the result event from the set of trigger events, and record the pointing information of the target trigger event in the result event.

[0229] Optional, Figure 13 Another block diagram of the data storage device provided in an embodiment of the present invention is shown, in conjunction with... Figure 12 and Figure 13 As shown, the data storage device may further include:

[0230] The judgment module 160 is used to determine whether a preset object set already contains the object element of the object before the object element determination module 120 determines the object element of the object from the object set.

[0231] Optionally, the judgment module 160 can be used to determine whether the object identifier of the object carried by the behavior data matches in a preset object set.

[0232] Optionally, if the judgment result of the judgment module 160 is negative, the object element determination module 120, used to determine the object element of the object from the object collection, may specifically include:

[0233] Create a new object element for the object in the object set; record at least the following information in the newly created object element: the object identifier of the object carried by the behavior data, the pointer information of the newly created trigger event set of the object, and the pointer information of the newly created result event set of the object.

[0234] Optionally, the object collection sorts the object elements according to the occurrence time of the object's most recent achievement event; the object element determination module 120, used to create new object elements of the object in the object collection, may specifically include:

[0235] Determine the sorting position of the object element in the object set based on the occurrence time of the object's most recent achievement event;

[0236] At the specified sorting position in the object collection, create a new object element for the object.

[0237] Optionally, the trigger event recording module 130 is used to record, in the trigger event set, the trigger events carried by the behavior data corresponding to the object in the order of their occurrence time, and may specifically include:

[0238] Based on the pointer information of the trigger event set, a new trigger event set for the object is determined; in the new trigger event set for the object, the trigger events carried by the behavior data corresponding to the object are recorded in the order of the occurrence time of the trigger events.

[0239] Optionally, the outcome event recording module 140 is used to record, in the outcome event set, the outcome events carried by the behavioral data corresponding to the object in the order of their occurrence time, and may specifically include:

[0240] Based on the pointing information of the set of results events, a new set of results events for the object is determined; in the new set of results events for the object, the results events carried by the behavioral data corresponding to the object are recorded in the order of the occurrence time of the results events.

[0241] Optionally, on the other hand, if the judgment result of the judgment module 160 is yes, the object element determination module 120, used to determine the object element of the object from the object collection, may specifically include:

[0242] Identify the object element in the object set that matches the object identifier of the object carried by the behavior data.

[0243] Optionally, the trigger event recording module 130 is used to record, in the trigger event set, the trigger events carried by the behavior data corresponding to the object in the order of their occurrence time, and may specifically include:

[0244] Based on the pointer information of the trigger event set, determine the established trigger event set of the object; in the trigger event set, add and record the trigger events corresponding to the object carried by the behavior data in the order of the occurrence time of the trigger events.

[0245] Optionally, the outcome event recording module 140 is used to record, in the outcome event set, the outcome events carried by the behavioral data corresponding to the object in the order of their occurrence time, and may specifically include:

[0246] Based on the pointing information of the set of achievement events, determine the established set of achievement events for the object; in the set of achievement events, add achievement events corresponding to the object carried by the behavioral data in the order of the occurrence time of the achievement events.

[0247] The target trigger event pointing to the recording module 150 is used to determine the target trigger event that directly triggers the result event from the set of trigger events, and may specifically include:

[0248] From the set of triggering events, determine the triggering event that occurred earlier than and most recently than the result event, and use the determined triggering event as the target triggering event to directly trigger the result event.

[0249] Optional, Figure 14 This diagram illustrates another block diagram of the data storage device provided in an embodiment of the present invention, in conjunction with... Figure 13 and Figure 14 As shown, the data storage device may further include:

[0250] Pointing to the information recording module 170, used for:

[0251] The object attributes of the object carried by the behavioral data are stored, and the pointing information of the object attributes is further recorded in the object elements of the object;

[0252] And / or, store the trigger event attribute of the trigger event carried by the behavior data, and record the pointing information of the trigger event attribute in the trigger event;

[0253] And / or, store the outcome event attributes carried by the behavioral data, and further record the pointing information of the outcome event attributes in the outcome event.

[0254] Optionally, the triggering event can be a creative script touchpoint event, and the result event can be a creative script conversion event.

[0255] This invention also provides a storage medium that can store a program that executes the data storage method provided in this invention.

[0256] This invention also provides a server system that can implement the data storage method provided in this invention. The optional structure of the server system can be as follows: Figure 8 As shown, it includes: master node, transmission node, merging node and worker node;

[0257] The master control node can be used to at least obtain query requests;

[0258] The working node can be used to process at least the query request;

[0259] The transmission node can be used to at least obtain raw behavioral data from the data source, fragment the raw behavioral data according to the object identifier to obtain behavioral data of each object, and transmit the behavioral data of each object to the merging node corresponding to each object.

[0260] The merging node can be used to at least execute the data storage method provided in the embodiments of the present invention; specifically, the merging node can be used to: acquire the behavior data of an object; determine the object element of the object from the object set, wherein the object element at least records the object identifier of the object, pointing information to the trigger event set of the object, and pointing information to the result event set of the object; in the trigger event set, record the trigger events carried by the behavior data corresponding to the object in the order of the occurrence time of the trigger events; in the result event set, record the result events carried by the behavior data corresponding to the object in the order of the occurrence time of the result events; determine the target trigger event that directly triggers the result event from the trigger event set, and record the pointing information of the target trigger event in the result event.

[0261] The data query device provided in the embodiments of the present invention will be described below. The data query device described below may be a program function module set up to implement the data query method provided in the embodiments of the present invention. The content of the data query device described below can be referred to in correspondence with the above content.

[0262] As an optional implementation, Figure 15 A block diagram of a data query device provided in an embodiment of the present invention is shown, with reference to... Figure 15 The data query device may include:

[0263] The query request acquisition module 200 is used to acquire query requests.

[0264] The target object element determination module 210 is used to determine the target object element that meets the object query conditions from the object set according to the object query conditions carried in the query request.

[0265] The target outcome event determination module 220 is used to determine the target outcome event that meets the outcome event query conditions from the outcome event set pointed to by the target object element, based on the outcome event query conditions carried in the query request; wherein, the target object element records pointing information to the outcome event set;

[0266] The target triggering event determination module 230 is used to determine the target triggering event that directly triggers the target result event based on the pointing information of the target triggering event recorded in the target result event record.

[0267] The query event determination module 240 is used to determine, in the set of trigger events to which the target trigger event belongs, a trigger event whose occurrence time is earlier than the target trigger event and whose interval time with the target trigger event is within a set time range, and to determine the target trigger event and the determined trigger event as the queried trigger event.

[0268] Optionally, the object set is sorted according to the occurrence time of the object's most recent result event; the target object element determination module 210 is used to determine the target object element that meets the object query conditions from the object set based on the object query conditions carried in the query request, and may specifically include:

[0269] Based on the query time period carried by the object query conditions, determine the candidate object elements from the object set whose sorting time matches the query time period;

[0270] Based on the object attribute query information further carried by the object query conditions, target object elements whose object attributes match the object attribute query information are determined from the candidate object elements.

[0271] Optionally, the target outcome event determination module 220 is used to determine, based on the outcome event query conditions carried in the query request, the target outcome events that meet the outcome event query conditions from the set of outcome events pointed to by the target object element, and may specifically include:

[0272] The set of results events is determined based on the pointing information to the set of results events recorded in the target object element record;

[0273] Based on the result event attribute query information carried by the result event query conditions, the target result event whose result event attributes match the result event attribute query information is determined from the result events stored in the result event set.

[0274] Optional, further, Figure 16 Another block diagram of the data query device provided in an embodiment of the present invention is shown, in conjunction with... Figure 15 and Figure 16 As shown, the data query device may include:

[0275] The attribution processing module 250 is used to assign a contribution level to the target outcome event to the queried triggering events based on the attribution model.

[0276] Optionally, the triggering event can be a creative script touchpoint event, and the result event can be a creative script conversion event.

[0277] This invention also provides a storage medium that can store a program for executing the data query method provided in this invention.

[0278] Optionally, embodiments of the present invention may be based on Figure 8 The server system shown implements the data query method provided in this embodiment of the invention; wherein, after the master control node obtains a query request, it can determine multiple working nodes to process the query request; wherein, the multiple working nodes may include a root working node and working nodes grouped hierarchically;

[0279] The working node can be used for:

[0280] The process involves: acquiring a query request transmitted by the master node; determining target object elements from the object set of the working node that meet the object query conditions based on the object query conditions carried in the query request; determining target result events from the result event set pointed to by the target object elements that meet the result event query conditions based on the result event query conditions carried in the query request, wherein the target object element records pointing information to the result event set; determining target trigger events that directly trigger the target result event based on the pointing information of the target trigger events recorded in the target result event set; determining trigger events that occurred earlier than the target trigger event and whose interval time with the target trigger event is within a set time range from the target trigger event to the trigger event set to which the target trigger event belongs, and identifying the target trigger event and the determined trigger events as the queried trigger events; assigning contribution to the target result event to the queried trigger events according to the attribution model, thereby obtaining the attribution result of the working node; and sending the attribution result to other working nodes for merging, thereby merging the attribution results of multiple working nodes level by level until the merged result corresponding to the root working node is obtained.

[0281] The merging result corresponding to the root working node is fed back to the master node.

[0282] The foregoing describes multiple embodiments of the present invention. The optional methods described in each embodiment can be combined and cross-referenced without conflict, thereby extending to a variety of possible embodiments. These can all be embodiments disclosed or made public by the present invention.

[0283] While the embodiments of the present invention have been disclosed above, the present invention is not limited thereto. Any person skilled in the art can make various modifications and alterations without departing from the spirit and scope of the present invention; therefore, the scope of protection of the present invention should be determined by the scope defined in the claims.

Claims

1. A data storage method, comprising: acquiring behavior data of an object; determining an object element of the object from an object set, the object element recording at least an object identifier of the object, pointing information of a trigger event set of the object, and pointing information of a result event set of the object; the object set storing object elements of objects in an array form; recording, in the trigger event set, a trigger event corresponding to the object carried by the behavior data in an order of occurrence time of the trigger event; recording, in the result event set, a result event corresponding to the object carried by the behavior data in an order of occurrence time of the result event; the result event recording pointing information of a target trigger event directly triggering the result event, so as to associate the result event with the target trigger event; determining the target trigger event directly triggering the result event from the trigger event set, and recording the pointing information of the target trigger event in the result event. 2.The data storage method of claim 1, before the determining the object element of the object from the object set, the method further comprises: judging whether a preset object set has the object element of the object. 3.The data storage method of claim 2, if the preset object set does not have the object element of the object, the determining the object element of the object from the object set comprises: creating the object element of the object in the object set; recording at least the following information in the created object element of the object: the object identifier of the object carried by the behavior data, pointing information of a trigger event set of the created object, and pointing information of a result event set of the created object.

4. The data storage method of claim 3, the object collection ordering the object elements by the time of occurrence of the most recent achievement event of the object. The creating the object element of the object in the object set comprises: determining a sorting position of the object element of the object in the object set according to occurrence time of a last result event of the object; and creating the object element of the object at the sorting position in the object set. 5.The data storage method of claim 3 or 4, the recording, in the trigger event set, the trigger event corresponding to the object carried by the behavior data in the order of occurrence time of the trigger event comprises: determining a trigger event set of the created object according to the pointing information of the trigger event set; and recording, in the trigger event set of the created object, the trigger event corresponding to the object carried by the behavior data in the order of occurrence time of the trigger event. The recording, in the result event set, the result event corresponding to the object carried by the behavior data in the order of occurrence time of the result event comprises: determining a result event set of the created object according to the pointing information of the result event set; and recording, in the result event set of the created object, the result event corresponding to the object carried by the behavior data in the order of occurrence time of the result event.

6. The data storage method of claim 2, wherein the determining the object element of the object from the object set comprises: determining an object element in the object set that matches the object identifier of the object carried by the behavior data.

7. The data storage method of claim 6, wherein the recording the trigger event corresponding to the object carried by the behavior data in the trigger event set in the order of trigger event occurrence time comprises: determining the trigger event set of the object according to the pointing information of the trigger event set; and adding the recording of the trigger event corresponding to the object carried by the behavior data in the trigger event set in the order of trigger event occurrence time.

8. The data storage method of claim 1, wherein the determining the target trigger event directly triggering the outcome event from the trigger event set comprises: determining a trigger event that occurs earlier than and closest to the outcome event from the trigger event set, and taking the determined trigger event as the target trigger event directly triggering the outcome event.

9. The data storage method of claim 1, further comprising: storing an object attribute of the object carried by the behavior data, and further recording pointing information of the object attribute in the object element of the object; and / or, storing a trigger event attribute of the trigger event carried by the behavior data, and recording pointing information of the trigger event attribute in the trigger event; and / or, storing an outcome event attribute of the outcome event carried by the behavior data, and further recording pointing information of the outcome event attribute in the outcome event.

10. The data storage method of claim 1, wherein the trigger event is a creative script touch event, and the outcome event is a creative script conversion event.

11. A data query method for querying data in a trigger event set and an outcome event set obtained based on the data storage method of any one of claims 1-10, the data query method comprising: obtaining a query request; determining a target object element that meets an object query condition carried by the query request from an object set; and determining a target outcome event that meets an outcome event query condition carried by the query request from an outcome event set pointed to by the target object element, wherein the target object element records pointing information pointing to the outcome event set. ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ determine a target trigger event directly triggering the target outcome event based on the pointing information of the target trigger event recorded in the target outcome event record; determine a trigger event in a trigger event set to which the target trigger event belongs, the trigger event having a time of occurrence earlier than the target trigger event and an interval time from the target trigger event within a set time range, and determine the target trigger event and the determined trigger event as the queried trigger event.

12. The data query method of claim 11, the object collection ordering the object elements by the time of occurrence of the most recent achievement event of the object. The determining of the target object element meeting the object query condition from the object set according to the object query condition carried in the query request comprises: determining a candidate object element having a time of sorting matching a query time period carried in the object query condition from the object set; determining a target object element having an object attribute meeting object attribute query information further carried in the object query condition from the candidate object element.

13. The data query method according to claim 11, the determining of the target outcome event meeting the outcome event query condition from the outcome event set pointed by the target object element comprises: determining the outcome event set according to the pointing information of the outcome event set recorded in the target object element record; determining the target outcome event having an outcome event attribute meeting outcome event attribute query information carried in the outcome event query condition from the outcome event stored in the outcome event set.

14. The data query method according to claim 11, further comprising: allocating a contribution degree to the target outcome event for the queried trigger event according to the attribution model.

15. The data query method according to claim 11, the trigger event is a creative script touch event, and the outcome event is a creative script conversion event.

16. A data storage device, comprising: a data acquisition module configured to acquire behavior data of an object; an object element determination module configured to determine an object element of the object from an object set; the object element at least records an object identifier of the object, pointing information of a trigger event set of the object, and pointing information of an outcome event set of the object; the object set stores the object elements of the objects in an array form; a trigger event record module configured to record a trigger event corresponding to the object carried in the behavior data in the trigger event set according to a time of occurrence of the trigger event; an outcome event record module configured to record an outcome event corresponding to the object carried in the behavior data in the outcome event set according to a time of occurrence of the outcome event; the outcome event record directly records pointing information of a target trigger event triggering the outcome event, and realizes the association between the outcome event and the target trigger event; a target trigger event pointing record module configured to determine a target trigger event directly triggering the outcome event from the trigger event set, and record the pointing information of the target trigger event in the outcome event.

17. A data query device, comprising: a query request obtaining module configured to obtain a query request; a target object element determining module configured to determine a target object element meeting an object query condition carried by the query request from an object set according to the object query condition; the object set storing object elements of objects in an array form; a target achievement event determining module configured to determine a target achievement event meeting an achievement event query condition carried by the query request from an achievement event set pointed to by the target object element according to the achievement event query condition; wherein the target object element records pointing information pointing to the achievement event set; a target trigger event determining module configured to determine a target trigger event directly triggering the target achievement event based on pointing information of a target trigger event recorded by the target achievement event; a query event determining module configured to determine a trigger event occurring earlier than the target trigger event and having an interval time from the target trigger event within a set time range from a trigger event set to which the target trigger event belongs, and determine the target trigger event and the determined trigger event as a query trigger event.

18. A storage medium storing a program for executing the data storage method of any one of claims 1-10, and / or storing a program for executing the data query method of any one of claims 11-15.

19. A server system comprising: a master node, a transmission node, a merging node and a working node; the master node is configured to at least receive a query request; the working node is configured to at least process the query request; the transmission node is configured to at least obtain original behavior data from a data source, split the original behavior data according to object identifiers to obtain behavior data of each object, and transmit the behavior data of each object to a merging node corresponding to the object; the merging node is configured to at least obtain behavior data of an object, determine an object element of the object from an object set, record at least an object identifier of the object, pointing information of a trigger event set of the object, and pointing information of an achievement event set of the object in the object element, record trigger events corresponding to the object carried by the behavior data in the trigger event set in order of occurrence time of the trigger events, and record achievement events corresponding to the object carried by the behavior data in the achievement event set in order of occurrence time of the achievement events; the target trigger event determining module is configured to determine a target trigger event directly triggering an achievement event from the trigger event set, and record pointing information of the target trigger event in the achievement event, wherein the achievement event records pointing information of a target trigger event directly triggering an achievement event, thereby realizing association between the achievement event and the target trigger event. the working nodes include a root working node and working nodes grouped in stages; 20. The server system of claim 19, the master node is further configured to determine a plurality of worker nodes to process the query request; wherein, the working node is configured to at least process the query request, and specifically includes: ​ Obtaining a query request transmitted by the master node, determining a target object element meeting an object query condition carried by the query request from an object set of the worker node, determining a target achievement event meeting an achievement event query condition carried by the query request from an achievement event set pointed by the target object element, determining a target trigger event directly triggering the target achievement event based on pointing information of a target trigger event recorded by the target achievement event, determining a trigger event whose occurrence time is earlier than that of the target trigger event and whose interval time with the target trigger event is within a set time range from a trigger event set to which the target trigger event belongs, and determining the target trigger event and the determined trigger event as queried trigger events, assigning a contribution degree to the target achievement event to the queried trigger events according to an attribution model to obtain an attribution result of the worker node, and sending the attribution result to other worker nodes for merging, so as to perform step-by-step merging on attribution results of multiple worker nodes until a merging result corresponding to a root worker node is obtained. The merging result corresponding to the root worker node is fed back to the master node.

Citation Information

Patent Citations

  • Distributed link tracking and analysis method, server and global scheduler

    CN108228432A