Method, apparatus, device and storage medium for pushing information

CN113779375BActive Publication Date: 2025-12-16BEIJING WODONG TIANJUN INFORMATION TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110232887.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-03-03
Publication Date
2025-12-16
Estimated Expiration
2041-03-03

Smart Images

  • Figure CN113779375B_ABST
    Figure CN113779375B_ABST
Patent Text Reader

Abstract

The application discloses a method and device for pushing information, an equipment and a storage medium, and relates to the technical field of distribution. The specific implementation scheme is as follows: acquiring graph data and metadata of the graph data; acquiring a plurality of data shards; fusing at least one data shard in the plurality of data shards into the graph data according to the metadata to obtain updated graph data; and determining target information for pushing according to the updated graph data. The implementation manner can update the graph data in time and load the update, thereby providing effective data for the information pushing service and improving the fitting degree of the pushed information and the user.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of computer, in particular to the technical field of distributed technology, and especially to a method and device for pushing information, an equipment and a storage medium. BACKGROUND

[0002] In recent years, the popularity of mobile Internet has promoted the rapid development of the field of E-Commerce and Social Network, and generated a large amount of user and commodity data. How to efficiently use these data to optimize user experience and continuously create value has become a major challenge for the provider of such applications.

[0003] The graph data structure has strong abstract degree and expression ability. It describes entities and the relationship between entities by defining nodes and edges, and is very suitable for modeling user relationships in social networks and the relationship between users and commodities in e-commerce systems.

[0004] However, due to the frequent update of user behavior and commodity information, the established graph data is less timely, and cannot provide effective data for subsequent services. SUMMARY

[0005] The present application provides a method and device for pushing information, an equipment and a storage medium.

[0006] According to the first aspect, a method for pushing information is provided, comprising: obtaining graph data and metadata of the graph data; obtaining a plurality of data shards; fusing at least one data shard in the plurality of data shards into the graph data according to the metadata to obtain updated graph data; and determining target information to be pushed according to the updated graph data.

[0007] According to the second aspect, a device for pushing information is provided, comprising: a first obtaining unit configured to obtain graph data and metadata of the graph data; a second obtaining unit configured to obtain a plurality of data shards; a graph data updating unit configured to fuse at least one data shard in the plurality of data shards into the graph data according to the metadata to obtain updated graph data; and an information pushing unit configured to determine target information to be pushed according to the updated graph data.

[0008] According to the third aspect, an electronic device for pushing information is provided, comprising: at least one processor; and a memory communicatively connected with the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the method described in the first aspect.

[0009] According to a fourth aspect, there is provided a non-transitory computer-readable storage medium storing computer instructions for causing a computer to perform the method according to the first aspect.

[0010] According to a fifth aspect, there is provided a computer program product comprising a computer program which, when executed by a processor, implements the method according to the first aspect.

[0011] The technology according to the present application can update the graph data in time and load the update, thereby providing effective data for the information push service and improving the fitting degree of the pushed information and the user.

[0012] It should be understood that the content described in this part is not intended to identify key or important features of the embodiments of the present disclosure, nor to limit the scope of the present disclosure. Other features of the present disclosure will become apparent from the following description. BRIEF DESCRIPTION OF DRAWINGS

[0013] The accompanying drawings are used to better understand the present application, and do not limit the present application. Among them:

[0014] Figure 1 is an exemplary system architecture diagram to which an embodiment of the present application can be applied;

[0015] Figure 2 is a flowchart of one embodiment of the method for pushing information according to the present application;

[0016] Figure 3 is a schematic diagram of one application scenario of the method for pushing information according to the present application;

[0017] Figure 4 is a flowchart of another embodiment of the method for pushing information according to the present application;

[0018] Figure 5 is a structural schematic diagram of one embodiment of the device for pushing information according to the present application;

[0019] Figure 6 is a block diagram of an electronic device for implementing the method for pushing information according to the present application. DETAILED DESCRIPTION

[0020] Exemplary embodiments of the present application are described below with reference to the accompanying drawings, which include various details of the embodiments of the present application to help understanding, and should be considered as merely exemplary. Therefore, those of ordinary skill in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of the present application. Also, in order to be clear and concise, the description below omits the description of well-known functions and structures.

[0021] It should be noted that, unless otherwise specified, the embodiments and features described in this application can be combined with each other. This application will now be described in detail with reference to the accompanying drawings and embodiments.

[0022] Figure 1 An exemplary system architecture 100 is shown, in which embodiments of the method or apparatus for pushing information of this application can be applied.

[0023] like Figure 1 As shown, system architecture 100 may include terminal devices 101, 102, and 103, a network 104, and a server 105. Network 104 serves as the medium for providing communication links between terminal devices 101, 102, and 103 and server 105. Network 104 may include various connection types, such as wired or wireless communication links, or fiber optic cables, etc.

[0024] Users can use terminal devices 101, 102, and 103 to interact with server 105 via network 104 to receive or send messages, etc. Various communication client applications, such as social platform applications and browser applications, can be installed on terminal devices 101, 102, and 103.

[0025] Terminal devices 101, 102, and 103 can be either hardware or software. When terminal devices 101, 102, and 103 are hardware, they can be various electronic devices, including but not limited to smartphones, tablets, e-book readers, in-vehicle computers, laptops, and desktop computers. When terminal devices 101, 102, and 103 are software, they can be installed in the aforementioned electronic devices. They can be implemented as multiple software programs or software modules (e.g., to provide distributed services) or as a single software program or software module. No specific limitations are imposed here.

[0026] Server 105 can be a server that provides various services, such as a backend server that provides information push services to terminal devices 101, 102, and 103. The backend server can use the massive amounts of user and product data it acquires to provide matching information to users and push the information to terminal devices 101, 102, and 103.

[0027] It should be noted that server 105 can be either hardware or software. When server 105 is hardware, it can be implemented as a distributed server cluster consisting of multiple servers, or as a single server. When server 105 is software, it can be implemented as multiple software programs or software modules (e.g., used to provide distributed services), or as a single software program or software module. No specific limitations are made here.

[0028] It should be noted that the method for pushing information provided in the embodiments of the present application is generally executed by the server 105. Accordingly, the apparatus for pushing information is generally arranged in the server 105.

[0029] It should be understood that Figure 1 The number of terminal devices, networks and servers in the above-mentioned system is only illustrative. Any number of terminal devices, networks and servers can be provided according to the needs of implementation.

[0030] With reference to the above-mentioned system Figure 2 , a flow 200 of one embodiment of the method for pushing information according to the present application is shown. The method for pushing information of the present embodiment comprises the following steps:

[0031] In step 201, graph data and metadata of the graph data are acquired.

[0032] In the present embodiment, the execution subject of the method for pushing information (for example, the server 105 shown in Figure 1 The execution subject can acquire the graph data and the metadata of the graph data in various ways. For example, the execution subject can acquire the graph data and the metadata from a cloud for storing the graph data. The graph data can comprise a plurality of nodes and edges, and the nodes can comprise users, commodities and advertisers, and the edges are used to represent the relationships among the users, the commodities and the advertisers. The graph data here can also be the graph data obtained by the last update, so that iterative updating of the graph data can be achieved.

[0033] In the present embodiment, the graph data can be updated when a preset condition is met, for example, the graph data can be updated periodically, or the incremental data of the user data reaches a preset capacity. In order to distinguish the graph data updated each time, a version number can be set for the graph data, which is used to represent the update time of the graph data. The metadata can comprise data for describing the graph data, for example, can comprise the version number, the update time, the volume, and the like.

[0034] In step 202, a plurality of data shards are acquired.

[0035] The execution subject can also acquire the plurality of data shards in various ways. The data shards here can be divided from certain data, for example, divided from the incremental data of the graph data. Or, the data shards are generated by users of different channels. For example, the data in a certain data shard is generated by users of a live broadcast application, and the data in another data shard is generated by a search application.

[0036] In step 203, at least one data shard of the plurality of data shards is fused into the graph data according to the metadata, to obtain updated graph data.

[0037] After obtaining the data, the execution subject can fuse at least one data slice in the plurality of data slices into the graph data according to the information in the metadata. Here, the at least one data slice can be a data slice that meets a preset condition in the plurality of data slices, such as a data slice with a generation time within two days, or a data slice that has not been fused into the graph data, or a data slice corresponding to an application activity number greater than a preset number, and the like. When fusing, the execution subject can first generate a subgraph from the data in the at least one data slice, and then fuse the nodes in the subgraph and the nodes in the graph data. After fusion, the graph data is updated, and updated graph data is obtained.

[0038] At step 204, target information is determined for pushing according to the updated graph data.

[0039] After obtaining the updated graph data, the execution subject can call an existing information pushing service to determine the target information using the updated graph data. Here, the target information can be information provided by an advertiser, and can be in the form of text, image, video, or the like. Specifically, the target information can be provided with a keyword. The execution subject can determine the target information using the interests or hobbies of the user in the updated graph data or the relationship with the entity. The execution subject can push the target information in various ways. Specifically, the execution subject can push the target information to the user in a live application or a browser application.

[0040] It should be noted that the technical solutions defined in steps 201-204 can be executed by multiple electronic devices. Specifically, the graph data updating solutions defined in steps 401-403 can be executed by a first electronic device and a second electronic device, and the information pushing solution of step 404 can be executed by the second electronic device. The first electronic device can update the graph data offline, and the first electronic device can send the updated graph data to the second electronic device. The second electronic device can update the updated graph data sent by the first electronic device again online. The updating process of the graph data by the first electronic device can be referred to as "generating graph data", and the second electronic device can first obtain the graph data generated by the first electronic device after starting, and then fuse each data slice into the graph data generated by the first electronic device in real time. This process can be referred to as "restoring graph data".

[0041] Continuing to refer to Figure 3 which shows a schematic diagram of one application scenario of the method for pushing information according to the present application. In the application scenario, a user can use a live application to watch a live broadcast of a celebrity. Figure 3In the application scenario, the server 301 obtains the graph data and the metadata of the graph data from the cloud 302 for storing the graph data and the metadata of the graph data, and obtains a plurality of data shards from a plurality of database shards 303 for storing the incremental data. Then, at least one data shard that is not fused into the graph data is determined from the plurality of data shards according to the metadata. The at least one data shard is fused into the graph data, and the update of the graph data is realized. Finally, information is pushed to the user terminal 304 by using the updated graph data. For example, the user recently searches for a child toy through a shopping application installed in the user terminal 304, and the behavior data of the user is obtained by the execution subject and fused into the graph data. Then, the child toy goods are pushed to the user terminal.

[0042] In the application scenario, the graph data structure is introduced into the e-commerce system and the social network to depict the relationship between the user and the goods and the user, which is beneficial to better capture the evolution process of the user interest, provide more guidance information for personalized recommendation in the e-commerce system, online advertisement placement, and friend recommendation in the social network, and further optimize the user experience and create value.

[0043] The method for pushing information provided by the above embodiments of the application can update the graph data in time and load the update, thereby providing effective data for the information pushing service and improving the fitting degree of the pushed information and the user.

[0044] Referring back to FIG. 4, Figure 4 FIG. 4 shows a flow 400 of another embodiment of the method for pushing information according to the application. As shown in FIG. 4, Figure 4 The method of the embodiment can include the following steps:

[0045] Step 401: Obtain the graph data and the metadata of the graph data.

[0046] In the embodiment, the graph data can include a plurality of sub-graphs, and each sub-graph can correspond to a different database shard or a different advertiser identifier, and the like.

[0047] Step 402: Obtain the incremental data of each sub-graph in the graph data; in response to determining that a preset condition is met, divide each incremental data to obtain a plurality of data shards.

[0048] The execution subject can obtain the incremental data of each subgraph in the graph data respectively. Here, the incremental data refers to data generated after the data in the subgraph is fused into the graph data. In order to ensure the timeliness of the incremental data acquisition, the execution subject can obtain the incremental data in real time, or can obtain the incremental data at a fixed time. After obtaining the incremental data, the execution entity can determine whether the preset condition is met, and if so, the incremental data can be divided to obtain a plurality of data shards. The preset condition can be a timing condition (i.e., a predetermined time period has elapsed since the last time the incremental data is fused into the graph data), or a quantitative condition (i.e., the volume of the obtained incremental data reaches a threshold).

[0049] In some optional implementations of the embodiment, the incremental data can include a plurality of data units. Here, the data unit can be a file or a plurality of files. Each data unit includes a generation time. The execution subject can divide the incremental data by step 4021: dividing each data unit according to the generation time of each data unit in the incremental data to obtain a plurality of data shards.

[0050] In the implementation, each data unit in the incremental data can be divided according to the generation time of each data unit. For example, the data units generated within a single hour can be divided into the same data shard, i.e., the data units generated from 8:00 to 9:00, 9:00 to 10:00, 10:00 to 11:00, and so on, are divided into the same data shard.

[0051] Step 403: determining the identity of each data shard according to the generation time of the data unit in each data shard.

[0052] After the execution subject divides the incremental data to obtain a plurality of data shards, the execution subject can determine the identity of each data shard according to the generation time of the data unit in each data shard. The identity is used to represent the generation order of each data shard. For example, the execution subject can take the earliest generation time corresponding to each data shard as the identity of each data shard. Alternatively, the average of the generation time of each data unit can be taken as the identity of the data shard.

[0053] In some specific applications, the method for pushing information can be applied in a distributed system, and each data shard can be subgraph data generated by each electronic device in the distributed system. Due to different computing capabilities and load conditions of each electronic device, the generation time of subgraph data can be different from the generation time of data units therein. For example, the generation time of data units in device A is earlier than that of data units in device B. However, due to the heavy load of device A and the poor computing capability of device A, the generation time of subgraph data generated by device A is later than that of subgraph data generated by device B. At this time, when loading each data, the generation time of data units should be used as the criterion.

[0054] In step 404, at least one data shard is determined as a target data shard from the plurality of data shards according to the identification of the data shard last fused into the graph data in the metadata and the order of data shard identifications corresponding to the plurality of subgraphs; and the target data shard is fused into the graph data to obtain updated graph data.

[0055] In this embodiment, the metadata can include the identification of the data shard fused into the graph data and the order of data shard identifications corresponding to the plurality of subgraphs. Specifically, the metadata can include the identification of the data shard fused into the graph data and the corresponding fusion time. The metadata can include a plurality of lists, each list corresponding to a subgraph. The list records the order of data shard identifications corresponding to the subgraph. The execution subject can determine the identification of the data shard last fused into the graph data according to the fusion time corresponding to the identification of each data shard. Then, the order is queried to determine the identification of the data shard after it as the identification of the target data shard. Then, the execution subject can fuse the target data shard into the graph data to obtain updated graph data. Figure 1

[0056] In some optional implementation manners of this embodiment, each data shard can write the corresponding list. In order to ensure the accuracy of the written data, each device in the data shard can perform a locking operation when writing the list to avoid data errors caused by simultaneous writing of multiple devices. And the list is unlocked after writing is completed to ensure that other devices can write the list.

[0057] In some optional implementation manners of this embodiment, the execution subject can fuse the target data shard by the following steps not shown in the method 300: Figure 5 In some optional implementation manners of this embodiment, the execution subject can fuse the target data shard by the following steps not shown in the method 300:

[0058] ​In this implementation, the execution subject can sequentially obtain the target data shards corresponding to the data shard identifiers of the plurality of subgraphs in sequence, and then fuse the data shards into the graph data to obtain updated graph data. In this way, the updated content in the graph data can be ensured to be consistent with the generation order of the user data, so that the push information determined based on the updated graph data is more in line with the interests or needs of the user.

[0059] In some optional implementations of this embodiment, if the information push service called by the execution subject is restarted, the execution subject can first load the graph data, and then sequentially load the data shards in the above order and fuse the data shards in the process of loading, thereby reducing the time required for service restart.

[0060] At step 405, target information is determined for push according to the updated graph data.

[0061] It should be noted that the method of this embodiment can be executed multiple times, and the graph data updated last time can be used as the obtained graph data when executed next time. That is, the update next time is performed on the updated graph data obtained last time.

[0062] The method for pushing information provided by the above embodiments of the present application can sequentially fuse the data shards of the incremental data into the graph data in the generation order of the data units, thereby ensuring the correctness of the fusion of the incremental data, and making the pushed information more in line with the user.

[0063] Further reference Figure 5 , as an implementation of the method shown in the above figures, the present application provides an embodiment of a device for pushing information, which corresponds to the method embodiment shown in Figure 2 , and the device can be specifically applied to various electronic devices.

[0064] As shown in Figure 5 , the device 500 for pushing information of this embodiment includes a first obtaining unit 501, a second obtaining unit 502, a graph data updating unit 503, and an information push unit 504.

[0065] The first obtaining unit 501 is configured to obtain graph data and metadata of the graph data.

[0066] The second obtaining unit 502 is configured to obtain a plurality of data shards.

[0067] The graph data updating unit 503 is configured to fuse at least one data shard in the plurality of data shards into the graph data according to the metadata to obtain updated graph data.

[0068] The information push unit 504 is configured to determine target information for push according to the updated graph data.

[0069] In some optional implementation of the embodiment, the graph data comprises a plurality of subgraphs. The second obtaining unit 502 can be further configured to: obtain incremental data of each subgraph in the graph data; and in response to determining that the preset condition is met, divide each incremental data to obtain a plurality of data shards.

[0070] In some optional implementation of the embodiment, the incremental data comprises a plurality of data units. The second obtaining unit 502 can be further configured to: divide each data unit according to a generation time of the data unit in the incremental data to obtain a plurality of data shards.

[0071] In some optional implementation of the embodiment, the apparatus 500 can further comprise Figure 5 an identification generating unit not shown in the figure, configured to: determine an identification of each data shard according to a generation time of a data unit in the data shard.

[0072] In some optional implementation of the embodiment, the metadata comprises an identification of the data shard fused into the graph data and a data shard identification sequence corresponding to the plurality of subgraphs. The graph data updating unit 503 can be further configured to: determine at least one data shard from the plurality of data shards as a target data shard according to the identification of the data shard fused into the graph data last in the metadata and the data shard identification sequence corresponding to the plurality of subgraphs; and fuse the target data shard into the graph data to obtain updated graph data.

[0073] In some optional implementation of the embodiment, the graph data updating unit 503 can be further configured to: fuse each data shard in the target data shard into the graph data in sequence according to the data shard identification sequence corresponding to the plurality of subgraphs to obtain the updated graph data.

[0074] It should be understood that the units 501 to 504 in the apparatus 500 for pushing information correspond to each step in the method described with reference to Figure 2 respectively. Therefore, the operations and features described above with respect to the method for pushing information are equally applicable to the apparatus 500 and the units contained therein, and will not be described here again.

[0075] According to the embodiments of the present application, the present application also provides an electronic device, a readable storage medium and a computer program product.

[0076] Figure 6A block diagram of an electronic device 600 performing a method for pushing information according to an embodiment of this application is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present application described and / or claimed herein.

[0077] like Figure 6 As shown, device 600 includes a processor 601, which can perform various appropriate actions and processes according to a computer program stored in read-only memory (ROM) 602 or a computer program loaded from memory 608 into random access memory (RAM) 603. RAM 603 may also store various programs and data required for the operation of device 600. The processor 601, ROM 602, and RAM 603 are interconnected via bus 604. I / O interface (input / output interface) 605 is also connected to bus 604.

[0078] Multiple components in device 600 are connected to I / O interface 605, including: input unit 606, such as keyboard, mouse, etc.; output unit 607, such as various types of displays, speakers, etc.; memory 608, such as disk, optical disk, etc.; and communication unit 609, such as network card, modem, wireless transceiver, etc. Communication unit 609 allows device 600 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.

[0079] The processor 601 can be various general-purpose and / or special-purpose processing components having processing and computing capabilities. Some examples of the processor 601 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various specialized artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, and the like. The processor 601 performs various methods and processes described above, such as the method for pushing information. For example, in some embodiments, the method for pushing information can be implemented as a computer software program tangibly embodied in a machine-readable storage medium, such as the memory 608. In some embodiments, part or all of the computer program can be loaded and / or installed onto the electronic device 600 via the ROM 602 and / or the communication unit 609. When the computer program is loaded onto the RAM 603 and executed by the processor 601, one or more steps of the method for pushing information described above can be performed. Alternatively, in other embodiments, the processor 601 can be configured to perform the method for pushing information by any other suitable means, such as by means of firmware.

[0080] Various implementations of the systems and techniques described above can be realized in digital electronic circuitry, integrated circuitry, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a system on a chip (SOC), a programmable logic device (CPLD), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.

[0081] Program code for carrying out methods of the present application can be written in any combination of one or more programming languages. The program code can be embodied as computer program product. The program code or computer program product can be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the program code, when executed by the processor 601, produces the functions / operations specified in the flowcharts and / or the block diagrams. The program code can be embodied in whole or in part within a machine, partially, by way of example, on a machine and partially on a remote machine or server, or entirely on a remote machine or server.

[0082] In the context of this application, a machine-readable storage medium can be a tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable storage medium can be a machine-readable signal storage medium or a machine-readable storage medium. A machine-readable storage medium can include but is not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the machine-readable storage medium would include a wired or wireless electrical connection, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0083] To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.

[0084] The systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a user computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.

[0085] The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. The server can be a cloud server, also known as a cloud computing server or cloud host, which is a host product in the cloud computing service system, to solve the defects of large management difficulty and weak business scalability in traditional physical host and VPS service ("Virtual Private Server", or simply "VPS").

[0086] It should be understood that the various forms of flow shown above can be reordered, added to, or have steps deleted. For example, the steps described in this application can be performed in parallel, in series, or in a different order, as long as the desired results of the technical solutions of this application can be achieved, and this application does not limit herein.

[0087] The above detailed description does not constitute a limitation on the scope of protection of the present application. Those skilled in the art should understand that various modifications, combinations, sub-combinations and substitutions can be made according to design requirements and other factors. Any modifications, equivalent replacements and improvements made within the spirit and principles of the present application shall be included in the scope of protection of the present application.

Claims

1. A method for pushing information, comprising: Obtain the graph data and its metadata; Multiple data shards are obtained, wherein the data shards are obtained by dividing the incremental data of the graph data; Based on the metadata, at least one data fragment that meets preset conditions from the plurality of data fragments is merged into the graph data to obtain updated graph data, wherein the preset conditions include: timing conditions or quantitative conditions; Based on the updated graph data, target information is determined and pushed out. The graph data includes multiple subgraphs, and the metadata includes identifiers of data fragments integrated into the graph data and the order of these identifiers corresponding to the multiple subgraphs; and The step of fusing at least one data fragment that meets preset conditions from the plurality of data fragments into the graph data based on the metadata to obtain updated graph data includes: Based on the identifier of the data fragment that was last merged into the graph data in the metadata and the order of the data fragment identifiers corresponding to the multiple subgraphs, at least one data fragment is determined as the target data fragment from the multiple data fragments; The target data fragments are merged into the graph data to obtain updated graph data.

2. The method according to claim 1, wherein, The acquisition of multiple data shards includes: Obtain the incremental data of each subgraph in the graph data; In response to the determination that the preset conditions are met, the incremental data is divided into multiple data fragments.

3. The method according to claim 2, wherein, The incremental data consists of multiple data units; as well as The incremental data is divided into multiple data fragments, including: Based on the generation time of each data unit in the incremental data, each data unit is divided to obtain multiple data fragments.

4. The method according to claim 3, wherein, The method further includes: The identifier of each data segment is determined based on the generation time of the data units in each data segment.

5. The method according to claim 1, wherein, The step of fusing the target data fragments into the graph data to obtain updated graph data includes: Based on the identifiers of each data fragment in the target data fragment, and in accordance with the order of the data fragment identifiers corresponding to multiple subgraphs, each data fragment is sequentially merged into the graph data to obtain updated graph data.

6. A device for pushing information, comprising: The first acquisition unit is configured to acquire graph data and metadata of the graph data; The second acquisition unit is configured to acquire multiple data fragments, wherein the data fragments are obtained by dividing the incremental data of the graph data; The graph data update unit is configured to merge at least one data fragment that meets preset conditions from the plurality of data fragments into the graph data according to the metadata, so as to obtain updated graph data. The preset conditions include: timing conditions or quantitative conditions. The information push unit is configured to determine the target information and push it based on the updated graph data; The graph data includes multiple subgraphs, and the metadata includes identifiers of data fragments integrated into the graph data and the order of these identifiers corresponding to the multiple subgraphs; and The graph data update unit is further configured to: Based on the identifier of the data fragment that was last merged into the graph data in the metadata and the order of the data fragment identifiers corresponding to the multiple subgraphs, at least one data fragment is determined as the target data fragment from the multiple data fragments; The target data fragments are merged into the graph data to obtain updated graph data.

7. The apparatus according to claim 6, wherein, The second acquisition unit is further configured to: Obtain the incremental data of each subgraph in the graph data; In response to the determination that the preset conditions are met, the incremental data is divided into multiple data fragments.

8. The apparatus according to claim 7, wherein, The incremental data consists of multiple data units; and The second acquisition unit is further configured to: Based on the generation time of each data unit in the incremental data, each data unit is divided to obtain multiple data fragments.

9. The apparatus according to claim 8, wherein, The device further includes an identifier generation unit, configured to: The identifier of each data segment is determined based on the generation time of the data units in each data segment.

10. The apparatus according to claim 6, wherein, The graph data update unit is further configured to: Based on the identifiers of each data fragment in the target data fragment, and in accordance with the order of the data fragment identifiers corresponding to multiple subgraphs, each data fragment is sequentially merged into the graph data to obtain updated graph data.

11. An electronic device for pushing information, comprising: At least one processor; as well as A memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-5.

12. A non-transitory computer-readable storage medium storing computer instructions for causing the computer to perform the method of any one of claims 1-5.

13. A computer program product comprising a computer program that, when executed by a processor, implements the method according to any one of claims 1-5.

Citation Information

Patent Citations

  • Graph data updating method, device and system

    CN111343241A

  • Method, device and equipment for outputting information and storage medium

    CN112100288A