Data pulling method and device, computer device, storage medium and program product

By using a batch-parallel data retrieval method and optimizing the data retrieval process with an object collection node tree, the problem of low data processing efficiency in large-scale data environments is solved, and the user experience is improved.

CN117009632BActive Publication Date: 2026-07-03TENCENT TECHNOLOGY (SHENZHEN) CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
TENCENT TECHNOLOGY (SHENZHEN) CO LTD
Filing Date
2022-08-16
Publication Date
2026-07-03

Smart Images

  • Figure CN117009632B_ABST
    Figure CN117009632B_ABST
Patent Text Reader

Abstract

This application provides a data retrieval method, apparatus, computer equipment, storage medium, and program product, relating to the technical fields of big data, cloud technology, and intelligent transportation. By obtaining the object set node tree corresponding to the target link from the server based on a data retrieval request, the overall situation of each object set in the target link is obtained, making it possible to retrieve data in batches and to retrieve data from multiple object sets in parallel within each batch. Furthermore, utilizing this object set node tree, parallel retrieval of each parallel object set is repeatedly executed. The object set node tree is used to obtain the identifiers of at least two parallel object sets corresponding to the current batch, enabling subsequent retrieval of business collaboration information of at least two parallel object sets from the server based on these identifiers; this reduces the time consumed by data retrieval and improves data retrieval efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the technical fields of big data, cloud technology, and intelligent transportation. This application relates to a data retrieval method, apparatus, computer equipment, storage medium, and program product. Background Technology

[0002] With the continuous development of the internet, more and more application platforms support data retrieval, bringing convenience to data queries in the context of big data. For example, it can support the retrieval of data from the address books of various enterprises in a certain business, so as to facilitate collaboration among personnel involved in that business.

[0003] In related technologies, the process of pulling address book data usually involves sequentially pulling the address books of each member or department of an enterprise one by one. However, as the data scale continues to expand, it puts enormous pressure on data pulling, making the data pulling time-consuming and resulting in low data pulling processing efficiency. Summary of the Invention

[0004] This application provides a data retrieval method, apparatus, computer device, storage medium, and program product, which can solve the problem of low processing efficiency in data retrieval in related technologies. The technical solution is as follows:

[0005] On the one hand, a data retrieval method is provided, the method comprising:

[0006] Send a data retrieval request to the server. The data retrieval request is used to retrieve business collaboration information of the target link. The target link includes at least two object sets and the business collaboration relationships between the object sets participating in the target business.

[0007] Receive the set of object nodes corresponding to the target link sent by the server;

[0008] Based on the object set node tree, the following parallel fetching steps are repeated until the business collaboration information of each object set in the target link is fetched:

[0009] From the identifiers of each object set included in the object set node tree, obtain the identifiers of at least two parallel object sets corresponding to the current batch;

[0010] Send the identifiers of at least two parallel object sets corresponding to the current batch to the server, and receive the business collaboration information of the at least two parallel object sets sent by the server.

[0011] On the other hand, a data retrieval method is provided, the method comprising:

[0012] The receiving terminal sends a data retrieval request, which is used to retrieve business collaboration information of the target link. The target link includes at least two object sets and the business collaboration relationships between the object sets participating in the target business.

[0013] Based on the link identifier of the target link, return the object set node tree corresponding to the target link to the terminal;

[0014] Receive the identifier of the set of parallel objects corresponding to the current batch sent by the terminal;

[0015] Based on the identifiers of at least two parallel object sets corresponding to the current batch, the business collaboration information of each parallel object set is retrieved from the business information database in parallel, and the retrieved business collaboration information of each parallel object set is returned to the terminal.

[0016] On the other hand, a data retrieval device is provided, the device comprising:

[0017] The pull request sending module is used to send a data pull request to the server. The data pull request is used to pull the business collaboration information of the target link. The target link includes at least two object sets and the business collaboration relationship between each object set participating in the target business.

[0018] The receiving module is used to receive the object set node tree corresponding to the target link sent by the server;

[0019] Based on the object set node tree, the following parallel fetching steps are repeated until the business collaboration information of each object set in the target link is fetched:

[0020] The acquisition module is used to acquire the identifiers of at least two parallel object sets corresponding to the current batch from the identifiers of each object set included in the object set node tree;

[0021] The pull module is used to send the identifiers of at least two parallel object sets corresponding to the current batch to the server, and to receive the business collaboration information of the at least two parallel object sets sent by the server.

[0022] On the other hand, a data retrieval device is provided, the device comprising:

[0023] The receiving module is used to receive a data retrieval request sent by the terminal. The data retrieval request is used to retrieve business cooperation information of the target link. The target link includes at least two sets of objects participating in the target business.

[0024] The sending module is used to return the object set node tree corresponding to the target link to the terminal based on the link identifier of the target link;

[0025] The receiving module is also used to receive the identifier of the set of parallel objects corresponding to the current batch sent by the terminal;

[0026] The parallel fetch module is used to retrieve business collaboration information of each parallel object set from the business information database in parallel, based on the identifiers of at least two parallel object sets corresponding to the current batch.

[0027] The sending module is also used to return the business collaboration information of each set of parallel objects retrieved to the terminal.

[0028] On the other hand, a computer device is provided, including a memory, a processor, and a computer program stored in the memory, wherein the processor executes the computer program to implement the above-described data retrieval method.

[0029] On the other hand, a computer-readable storage medium is provided on which a computer program is stored, which, when executed by a processor, implements the above-described data retrieval method.

[0030] On the other hand, a computer program product is provided, including a computer program that, when executed by a processor, implements the above-described data retrieval method.

[0031] The beneficial effects of the technical solutions provided in this application are:

[0032] The data retrieval method provided in this application obtains the object set node tree corresponding to the target link from the server based on the data retrieval request, thereby obtaining the overall situation of each object set of the target link. This provides the possibility for subsequent batch retrieval of data and parallel retrieval of data from multiple object sets in each batch. Furthermore, the object set node tree is used to repeatedly perform parallel retrieval of each parallel object set. The object set node tree is used to obtain the identifiers of at least two parallel object sets corresponding to the current batch, enabling subsequent retrieval of the business collaboration information of the at least two parallel object sets from the server based on these identifiers. Because data is retrieved in batches, and the business collaboration information of multiple object sets is retrieved in parallel in each batch, the time consumed by data retrieval is reduced, and the data retrieval efficiency is improved. Attached Figure Description

[0033] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments of this application will be briefly introduced below.

[0034] Figure 1 A schematic diagram of the implementation environment for a data retrieval method provided in this application embodiment;

[0035] Figure 2 A flowchart illustrating a data retrieval method provided in an embodiment of this application;

[0036] Figure 3 This application provides a schematic diagram of a node tree structure corresponding to upstream and downstream nodes.

[0037] Figure 4 A schematic diagram illustrating a data retrieval process based on a pipeline node list, provided as an embodiment of this application;

[0038] Figure 5 A signaling interaction diagram of a data retrieval method provided in an embodiment of this application;

[0039] Figure 6 This application provides an embodiment of a process for removing a department.

[0040] Figure 7 This is a schematic diagram of the structure of a data retrieval device provided in an embodiment of this application;

[0041] Figure 8 This is a schematic diagram of the structure of a data retrieval device provided in an embodiment of this application;

[0042] Figure 9 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Detailed Implementation

[0043] The embodiments of this application are described below with reference to the accompanying drawings. It should be understood that the embodiments described below with reference to the accompanying drawings are exemplary descriptions for explaining the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions of the embodiments of this application.

[0044] Those skilled in the art will understand that, unless otherwise stated, the singular forms “a,” “an,” “the,” and “the” used herein may also include the plural forms. The terms “comprising” and “including” as used in the embodiments of this application mean that the corresponding feature can be implemented as the presented feature, information, data, step, or operation, but do not exclude implementation as other features, information, data, steps, or operations supported by this art.

[0045] It is understood that in the specific implementation of this application, any object-related data, such as the object set included in the target link, the objects included in each object set, information records, and address books, are involved. When the above embodiments of this application are applied to specific products or technologies, permission or consent from the object is required, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions.

[0046] Figure 1This is a schematic diagram illustrating the implementation environment of a data retrieval method provided in this application. For example... Figure 1 As shown, the implementation environment includes a server 11 and a terminal 12. The server 11 can be a backend server for an application. The terminal 12 has the target application installed, and the terminal 12 and the server 11 can interact with each other based on the application.

[0047] In one possible scenario example, the target application has upstream and downstream functionality. Upstream and downstream refer to business spaces where enterprises gather certain partners, with the core being upstream and downstream address books and shared applications. This upstream and downstream functionality supports collaboration between users who join upstream and downstream. For example, if a user joins a particular upstream or downstream, they can click on that upstream or downstream in the target application's client to view the shared address books and applications among the enterprises or members within that upstream or downstream. Users who join upstream and downstream can then collaborate on business matters through the shared address books and applications. In this application, if a user triggers a view operation on the upstream or downstream address book on the target application's page, terminal 12 can send a data retrieval request to server 11. Based on this request, server 11 can return the address book of the upstream or downstream to terminal 12, allowing terminal 12 to display the enterprises or members within that upstream or downstream on the target application's page.

[0048] For example, an upstream and downstream relationship can include brand owners as upstream companies and distributors as downstream companies; or manufacturers and brand owners as upstream companies can also form an upstream and downstream relationship with their suppliers as downstream companies. Furthermore, online / offline platforms and merchants can also form an upstream and downstream relationship with business collaboration.

[0049] It should be noted that server 11 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server or server cluster providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, and big data and artificial intelligence platforms. Terminal 12 can be a smartphone, tablet, laptop, digital radio receiver, desktop computer, in-vehicle terminal (such as in-vehicle navigation terminal, in-vehicle computer, etc.), smart speaker, smartwatch, etc. Terminals and servers can be connected directly or indirectly through wired or wireless communication, and the connection can be determined based on the actual application scenario requirements, which is not limited here.

[0050] Figure 2 This is a flowchart illustrating a data retrieval method provided in an embodiment of this application. The execution entity of this method can be a terminal. Figure 2 As shown, the method includes the following steps.

[0051] Step 201: The terminal sends a data retrieval request to the server.

[0052] This data retrieval request is used to retrieve business collaboration information for a target link, which includes at least two object sets and the business collaboration relationships between these object sets participating in the target business. For example, this business collaboration information refers to the information required for business collaboration between the object sets participating in the target business. In one example, this business collaboration information may include the target link's directory. For instance, this directory could be the address book of each object set in the target link; the object sets or objects can communicate and collaborate around the target business based on the address book to achieve business cooperation. In another example, the business collaboration information may also include, but is not limited to: applications, website links, multimedia resources, etc., of the target link. For example, enterprises can use shared business applications, business collaboration websites, business graphic resources, etc., in the target link for business communication, coordination, or cooperation.

[0053] For example, a target link can be a business link composed of a set of objects that have collaborative relationships with a target business. A set of objects can be an enterprise or organization composed of multiple objects with target relationships. For example, a set of objects can be an enterprise, a company or group, or a pre-configured organization. For example, the business collaboration relationships between the sets of objects in the target link can be represented by a node tree; that is, the sets of objects with collaborative relationships in the target link, or the groups composed of sets of objects, can form an object set node tree.

[0054] like Figure 3 As shown, a target link can be an upstream and downstream space. Upstream and downstream refer to the business spaces where enterprises gather certain partners. The enterprises or upstream and downstream groups participating in a certain business within an upstream and downstream space can form an enterprise node tree; upstream and downstream groups refer to groups composed of various enterprises. For example... Figure 3 As shown, the object set node tree with upstream and downstream as root nodes can include upstream enterprises, upstream and downstream group 1, etc. Upstream and downstream group 1 also includes enterprises A, B, etc. For each enterprise, the departments or members within that enterprise can constitute the corresponding member node tree. Taking enterprise A as an example, its member node tree has enterprise A as the root node and includes department 1 and member 1, while department 1 can further include member 2, member 3, etc.

[0055] For example, the data retrieval request may carry the link identifier of the target link to which the current object has joined. For instance, the upstream and downstream identifiers joined by the user can be represented as chainid.

[0056] In one possible implementation, the data retrieval request carries the link identifier of the target link, the identifier of the current object set, and the version number of the data previously retrieved by the terminal. The current object set is the set of objects to which the currently logged-in object belongs in the target application of the terminal. For example, step 201 may include: in response to detecting a data viewing operation triggered on the target application page, the data viewing operation being used to view business collaboration information of the target link; the terminal sends a data retrieval request to the server. In one possible example, if the terminal is not sending a data retrieval request to the server for the first time, the data retrieval request may carry the version number of the previously retrieved data. For example, the target application may include an address book page. If the terminal detects that a user triggers upstream / downstream address book tags on the address book page, the terminal may send a data retrieval request to the server based on the user's upstream / downstream location; the data retrieval request may carry the chainid, enterprise ID, and version number of the address book already existing on the terminal's local machine. In one possible example, if the terminal is sending a data retrieval request to the server for the first time, the data retrieval request may include the link identifier of the target link and the identifier of the current object set.

[0057] For example, the terminal can also retrieve data based on the triggering of an update event. Accordingly, step 201 may include: in response to detecting that the target application meets the update triggering conditions, the terminal sends a data retrieval request to the server. This data retrieval request can be used to request business collaboration information of the updated object set in the target link. For example, the update triggering conditions may include, but are not limited to: detecting an update operation in the target application, the current time reaching the update time, receiving an update instruction sent by the server, etc. The data retrieval request may carry at least one of the following: the link identifier of the target link, the identifier of the object set to be updated, and the version number of the object set to be updated last retrieved by the terminal. For example, if an update operation on upstream / downstream enterprise A is detected, or an update instruction on enterprise B is received from the server, or the current time reaches the next update cycle, a data retrieval request is sent to the server based on information such as the chainid, the enterprise ID to be updated, or the address book version number of the enterprise to be updated.

[0058] Step 202: The terminal receives the set of object nodes corresponding to the target link sent by the server.

[0059] This object set node tree represents the business collaboration relationships among various object sets participating in the target service within the target link. For example, a terminal can receive the object set node tree sent by the server and extract the identifiers of each object set from it.

[0060] In one possible implementation, the server sends the node trees corresponding to a portion of the object set in multiple batches, each batch sending a different node tree. The terminal, while receiving the node trees for each batch, can simultaneously retrieve the business collaboration information for each batch of object sets from the server through steps 203-204. Step 202 may include the following step S1:

[0061] Step S1: The terminal receives metadata of at least one batch of node trees sent by the server. Each batch of node trees represents the business collaboration relationship between a set of objects in the target link.

[0062] For example, whenever the terminal receives any batch of node trees, it can extract the identifiers of each object set from that batch of node trees; the terminal can then add the extracted object set identifiers to the pipeline node list. It should be noted that subsequent terminals can obtain the identifiers of the parallel object sets for each batch from the pipeline node list.

[0063] In another possible implementation, the terminal can retrieve the node tree of all batches of object sets returned by the server, prioritizing the display of node information for each object set, and then fetching business collaboration information between objects within each object set in batches. For example, step 202 may include the following steps S2-S3:

[0064] Step S2: The terminal receives at least one batch of node tree metadata sent by the server.

[0065] Step S3: The terminal displays the metadata of each object set in the target link on the target application page.

[0066] The metadata includes at least one of the following: the name of the object collection, its parent node, or attribute information. The node tree corresponding to each batch represents the business collaboration relationships between some object collections in the target link. The parent node can be the parent node of the corresponding node in the node tree for the object collection. The attribute information represents the object collection's attributes in at least one dimension; this attribute information can be configured as needed, such as the business type corresponding to the enterprise, the enterprise's icon, etc. For example, the terminal can first obtain the metadata of all object collections in the target link and prioritize displaying the metadata of each object collection in the target link on the target application page.

[0067] It's worth noting that for target chains involving large-scale object sets, such as an upstream and downstream chain comprising 100,000 enterprises, especially during the initial synchronization of the target application's client with the upstream and downstream contact lists, a significant amount of time (estimated at 30 to 50 minutes) can be required. During this synchronization process, users cannot normally view the upstream and downstream contact lists and must wait continuously for 30 to 50 minutes, resulting in poor page display and a subpar user experience. Furthermore, when an enterprise or member of an enterprise joins the upstream and downstream chain for the first time, the client can guide the user to view and use the contact lists. However, the initial data retrieval from the server by the terminal also takes considerable time, severely impacting the smoothness of the upstream and downstream functionalities.

[0068] By prioritizing the acquisition and display of metadata for all object sets in the target link through steps S2-S3, the strong dependency between the display of the target link and the synchronization of business collaboration information is decoupled. For example, when prioritizing the display of enterprise node information, the synchronization of business collaboration information is decomposed into the synchronization of the object set node tree and the synchronization of the object member node tree within the object set. This allows for the priority presentation of the full object set list and directory structure, improving page display efficiency and optimizing the smoothness of upstream and downstream functional experiences. For example, for upstream and downstream involving 100,000 enterprises, this corresponds to one enterprise node tree and 100,000 member node trees within each enterprise. By prioritizing the retrieval of all enterprise nodes and then retrieving the internal data of each enterprise in batches, the participating enterprises and groups can be displayed. This prioritizes the presentation of the full enterprise list and directory structure, typically within the range of 1 to 120 seconds. This avoids the problem of waiting for the retrieval of 100,000 member node trees within each enterprise to complete the retrieval of the node tree for one upstream and downstream enterprise, eliminating the need for 30 to 50 minutes and improving page display efficiency.

[0069] Based on this object collection node tree, repeat the following parallel fetching steps (including steps 203-204) until the information record of each object collection in the object collection node tree is fetched:

[0070] Step 203: The terminal obtains the identifiers of at least two parallel object sets corresponding to the current batch from the identifiers of each object set included in the object set node tree.

[0071] For example, if the terminal has already added the identifiers of the object sets to the pipeline node list, then in this step, the terminal can extract the identifiers of at least two parallel object sets corresponding to each batch from the pipeline node list according to the target parallel quantity corresponding to each batch. For example, if the target parallel quantity corresponding to the current batch is 200, the terminal can extract the identifiers of 200 enterprises from the pipeline node list.

[0072] In one possible implementation, after step S3, the user can also trigger a viewing operation on any of the displayed object sets, and correspondingly, the terminal can perform the following step S41:

[0073] Step S41: In response to detecting a viewing operation triggered on any of the object sets, the terminal prioritizes the retrieval of any object set to be viewed over other object sets.

[0074] For example, the terminal can set the fetch priority of any collection of objects to be viewed to the highest priority. Accordingly, step 203 can be executed in the following manner:

[0075] Step 2031: Based on the retrieval priority of each object set, the terminal filters out the identifiers of at least two parallel object sets corresponding to the current batch from the identifiers of each object set.

[0076] The identifiers of at least two object sets in the current batch include the identifier of any object set to be viewed. For example, the terminal can filter the identifiers of parallel object sets whose pull priorities meet pre-configured priority conditions from the identifiers of each object set. These priority conditions include, but are not limited to: pull priority higher than a target level threshold, and being ranked first in the target number of parallel operations in a queue arranged in descending order of pull priority.

[0077] In one possible implementation, after step S3, the user can also trigger a viewing operation on any of the displayed object sets, and correspondingly, the terminal can execute the following step S42:

[0078] Step S42: The terminal prioritizes the fetching of the current object collection over other object collections.

[0079] Here, the current object set refers to the set of objects to which the currently logged-in objects in the target application of the terminal belong; for example, the current object set could be the enterprise to which the user's currently logged-in account in the target application belongs. Accordingly, the execution of step 203 may include the following step 2032:

[0080] Step 2032: Based on the retrieval priority of each object set, the terminal filters out the identifiers of at least two parallel object sets corresponding to the current batch from the identifiers of each object set.

[0081] The identifiers of at least two object sets in the current batch include the identifier of the current object set. For example, the terminal sets the fetch priority of the current object set to the highest priority. It should be noted that in step 2032, priority conditions can also be combined for filtering. The implementation method of step 2032 is the same as the method of filtering the identifiers of parallel object sets based on fetch priority in step 2031, and will not be described in detail here.

[0082] It should be noted that in related technologies, the terminal determines the order in which it retrieves enterprise data based on the order of enterprise IDs returned by the server in batches. This application, by configuring the retrieval priority of each object set, prioritizes retrieving the member tree within the enterprise itself or the enterprise to be viewed triggered by the user, allowing for faster access to the required enterprise contact list data in the upstream and downstream. Based on this, when a user clicks on a card to view a specific enterprise, or when a user enters the upstream and downstream and clicks on a specific enterprise node to view data, even if the data is not currently synchronized, it can be synchronized and displayed first in the next batch using the configured high priority, improving the user experience of viewing the upstream and downstream contact list.

[0083] Step 204: The terminal sends the identifiers of at least two parallel object sets corresponding to the current batch to the server, and receives the business collaboration information of the at least two parallel object sets sent by the server.

[0084] The terminal can obtain business collaboration information for each parallel object set based on the member node tree corresponding to each parallel object set. The member node tree corresponding to each parallel object set represents the business collaboration relationship between the members within that parallel object set participating in the target business. For example, for a parallel object set, the terminal can retrieve the business collaboration information of each node in the parallel object set from the server in batches. For example, for each parallel object set, the terminal can obtain the member node tree of the parallel object set based on the identifier of the parallel object set. The terminal extracts the node identifiers of the business nodes included in the member node tree. For example, the node identifier of the business node may include the node identifiers of member nodes or group nodes. Then, the terminal sends at least one batch of node identifiers to the server in batches. The terminal receives the business collaboration information corresponding to each batch of node identifiers returned by the server.

[0085] The member node tree can include at least one member or group participating in the target business within the parallel object set. That is, the member node tree can include member nodes (with members as nodes) and group nodes (with groups as nodes), with each group node containing at least one member. The business collaboration information corresponding to the parallel object set can include the business collaboration information corresponding to each member node and group node, such as communication data of each member within the parallel object set tree, communication data corresponding to each group, and communication data of members within each group.

[0086] In one possible example, the terminal can obtain the corresponding member node tree based on the identifier of the parallel object set, and extract the identifiers of each node from the member node tree. The terminal sends the extracted node identifiers and version numbers to the server, and receives the updated member's business collaboration information returned by the server. For example, the updated member can be a member in the parallel object set whose business collaboration information has changed. For example, for any member, the terminal sends the member identifier and version number to the server. The server compares the version number sent by the terminal with the latest version number corresponding to the member. If the two version numbers are different, it indicates that the member is an updated member, and the server returns the latest version number of the member's business collaboration information to the terminal. For example, the terminal can retrieve the communication data of members whose version numbers have changed from the server based on the member ID.

[0087] In another possible example, the terminal may send the identifier of the parallel object set and the identifier of the target link to the server; the server may then obtain the business collaboration information corresponding to all nodes included in the member node tree based on the identifier of the parallel object set and the identifier of the target link. The server sends the business collaboration information corresponding to all nodes to the terminal. The terminal receives the business collaboration information corresponding to all nodes sent by the server. For example, the all nodes may be all nodes in the member node tree, including each member node and group node in the member node tree corresponding to the parallel object set.

[0088] It should be noted that the terminal can obtain the identifiers of the parallel object sets corresponding to each batch, and retrieve the identifiers of the parallel object sets corresponding to each batch in batches. For the identifiers of the target number of parallel object sets included in each batch, the business collaboration information of that target number of parallel object sets is retrieved in parallel. When retrieving information for each batch, the batch to be retrieved can be taken as the current batch, and based on the identifiers of the parallel object sets in the current batch, steps 203-204 above are repeated to obtain the business collaboration information of the parallel object sets under each batch in the target link.

[0089] For example, the terminal adds the extracted node identifiers to the pipeline node list; the terminal then extracts node identifiers in batches from this pipeline node list, and based on the node identifiers and version numbers of the current batch, retrieves the business collaboration information corresponding to the nodes in that current batch from the server. It should be noted that data retrieval can be performed by recording a pipeline node list for both object node trees and member node trees. Figure 4As shown, for enterprise node trees or member node trees, there is a similar basic synchronization process, which is based on a list of sequential nodes recorded in the address book tree structure; data is retrieved based on the list of sequential nodes; for example, the list of sequential nodes may include hashnode1, hashnode2, ..., hashnode6, etc., and the information of each sequential node may include sequential node ID, timestamp, del_flag (which may indicate node type, whether it is an uncreated enterprise, etc.), etc. Updated nodes can be retrieved through incremental updates, such as retrieving updated member nodes, enterprise nodes, etc., from the end nodes of the tree structure; or, for example, retrieving group nodes in the tree structure such as department nodes or enterprise group nodes, where department / group nodes may include party1, party2, party6, etc.; member / enterprise nodes may include member3, member4, member5, etc.; the data of each department / group node, or any member / enterprise node, may include the node ID and the parent node ID (parentID).

[0090] In one possible example, the server may provide a target interface for returning business protocol information for each set of parallel objects based on the identifiers of those sets passed in by the terminal. For instance, the execution logic of this target interface may include: retrieving the node identifiers of each node in the member node tree corresponding to each set of parallel objects based on the identifiers of those sets; and retrieving the business collaboration information corresponding to the update node based on the node identifiers in the member node tree corresponding to each set of parallel objects. For example, this target interface may include two CGI (Common Gateway Interface) interfaces. Taking an enterprise as an example, these two CGI interfaces may include:

[0091] CGI Interface 1, ww_GetChainArchChange; used to retrieve a list of IDs corresponding to member IDs and department IDs in the upstream and downstream address book of a certain enterprise. For example, it can retrieve department node IDs, member node IDs, etc. in a member node tree within an enterprise.

[0092] CGI Interface 2, ww_GetChainArchNodeData; used to retrieve data of nodes whose version numbers have changed from the list of IDs returned by CGI Interface 1.

[0093] In related technologies, after a terminal synchronizes with a batch of enterprise nodes, it sequentially pulls data from each enterprise's internal nodes. This has no significant impact on upstream and downstream projects with a small number of enterprises. However, for large-scale or ultra-large-scale upstream and downstream projects involving 100,000 or 200,000 enterprises, the data retrieval process becomes significantly more time-consuming. If synchronization is performed on a per-enterprise basis, at least two CGI interface calls are made to retrieve data. Especially for the first login of a completely new client, synchronizing the address books of 100,000 enterprises would require at least 200,000 CGI interface calls. Assuming each call takes 120ms, it would take approximately 6 hours to complete the data retrieval process.

[0094] The terminal can simultaneously send 200 downstream corids (enterprise IDs) to CGI interface 2. The server then uses 20 times the number of concurrent tasks to retrieve the address book data for these 200 enterprise IDs. The overall synchronization time is expected to be optimized to 1 / 15 to 1 / 20 of related technologies. These two CGI interfaces support concurrent tasks, effectively optimizing the time-consuming problem caused by sequentially retrieving the address book of each enterprise in related technologies, thus improving data retrieval efficiency.

[0095] The data retrieval method provided in this application obtains the object set node tree corresponding to the target link from the server based on the data retrieval request, thereby obtaining the overall situation of each object set of the target link. This provides the possibility for subsequent batch retrieval of data and parallel retrieval of data from multiple object sets in each batch. Furthermore, the object set node tree is used to repeatedly perform parallel retrieval of each parallel object set. The object set node tree is used to obtain the identifiers of at least two parallel object sets corresponding to the current batch, enabling subsequent retrieval of the business collaboration information of the at least two parallel object sets from the server based on these identifiers. Because data is retrieved in batches, and the business collaboration information of multiple object sets is retrieved in parallel in each batch, the time consumed by data retrieval is reduced, and the data retrieval efficiency is improved.

[0096] Figure 5 This diagram illustrates the signaling interaction of a data retrieval method provided in an embodiment of this application. The method can be executed interactively between a server and a terminal. Figure 5 As shown, the method includes the following steps.

[0097] Step 501: The terminal sends a data retrieval request to the server.

[0098] Step 502: The server receives the data retrieval request sent by the terminal.

[0099] This data retrieval request is used to retrieve business collaboration information for the target link, which includes at least two sets of objects participating in the target business, as well as the business collaboration relationships between the sets of objects participating in the target business.

[0100] In one possible implementation, the server extracts the link identifier of the target link, the identifier of the current object set, and the version number of the data last retrieved by the terminal from the data retrieval request. The current object set is the set of objects to which the currently logged-in object belongs in the terminal's target application.

[0101] In one possible implementation, if the terminal is a client logging into the target application for the first time, the server extracts the link identifier of the target link and the identifier of the current object set from the data retrieval request.

[0102] Step 503: Based on the link identifier of the target link, the server returns the object set node tree corresponding to the target link to the terminal.

[0103] The server can return metadata of at least one batch of node trees to the terminal based on the link identifier of the target link; the metadata includes at least one of the following: the name of the object set, its parent node, or attribute information.

[0104] Step 504: The terminal receives the object set node tree corresponding to the target link sent by the server.

[0105] Based on this object collection node tree, repeat the following parallel fetching steps (including steps 505-506) until the information record of each object collection in the object collection node tree is fetched:

[0106] Step 505: The terminal obtains the identifiers of at least two parallel object sets corresponding to the current batch from the identifiers of each object set included in the object set node tree.

[0107] Step 506: The terminal sends the identifiers of at least two sets of parallel objects corresponding to the current batch to the server.

[0108] Step 507: The server receives the identifier of the set of parallel objects corresponding to the current batch sent by the terminal.

[0109] It should be noted that the terminal repeatedly executes steps 505-506 to send the identifiers of the parallel object sets corresponding to each batch to the server, and correspondingly, the server receives the identifiers of the parallel object sets corresponding to each batch sent by the terminal. For each current batch to be processed, the server can perform the following parallel fetching steps, namely steps 508-509:

[0110] Step 508: Based on the identifiers of at least two parallel object sets corresponding to the current batch, the server executes in parallel the retrieval of business collaboration information for each parallel object set from the business information database.

[0111] In this step, the server may first read the data into a cache, then iterate through the cache and return the data retrieved by the terminal. For example, this step may include: the server, based on the identifiers of at least two parallel object sets corresponding to the current batch, concurrently reading the initial data of the at least two parallel object sets from the business information database into the cache, and iterating through the cache to obtain the business collaboration information of the at least two parallel object sets. The business information database includes the business collaboration information of each object set; for example, the business information database may include the latest version of the business collaboration information for each object set. In one possible implementation, step 508 may be implemented through the following steps 5081-5082.

[0112] Step 5081: Based on the identifiers of the at least two parallel object sets, the server executes in parallel the reading of the initial business collaboration information of each parallel object set in the business information database into the cache.

[0113] The current batch may include identifiers for a target number of parallel object sets. The server can initiate a target multiple of concurrent tasks to execute the step of reading business collaboration information for each parallel object set into a cache in parallel, so as to efficiently and quickly read business collaboration information for multiple object sets at once. For example, the business information database includes full business information for each object set, which may include business information for at least one business in which the parallel object set participates. The server can read the full business information for each parallel object set from the business information database, filter out the initial business collaboration information from the full business information of each parallel object set, and read the initial business collaboration information of each parallel object set into a cache.

[0114] In one possible implementation, the server can adjust the process of reading into the cache or the cache capacity to further save data retrieval time. For example, the granularity of the cache can be adjusted, the cache capacity can be increased, and selectively stored in the cache a portion of the read data. For example, step 5081 can be implemented through the following steps S51-S54.

[0115] Step S51: The server increases the capacity of the cache to the pre-configured capacity value.

[0116] For example, the pre-configured capacity value is greater than the current capacity of the cache. The pre-configured capacity value can refer to a capacity value or a multiple that represents a multiple increase of the current capacity. For example, the pre-configured capacity value could be: adjusting the cache capacity to 1.5 times, 2 times, 5 times, etc., of the current capacity.

[0117] By increasing the cache capacity, the data read into the cache can reside there for a longer period of time, preventing data from being quickly evicted due to insufficient cache capacity. Since data is frequently evicted from the cache, the frequency of reading data from the business information database to the cache often increases, which slows down the data retrieval speed. Therefore, increasing the cache capacity can effectively avoid frequent data reading into the cache, thereby improving data retrieval efficiency.

[0118] The server executes the following data reading steps on each set of parallel objects in parallel; that is, it performs the data reading steps on multiple sets of parallel objects simultaneously in a parallel manner. For example, the server simultaneously starts 20 times the number of coroutines to pull address book data for 200 enterprise IDs. In one possible implementation, the data reading steps include the following steps S52-S54:

[0119] Step S52: The server reads the full member node tree corresponding to each parallel object set from the business information database to obtain the first full node corresponding to each parallel object set.

[0120] The first full node includes nodes belonging to at least one business link, and the at least one business link includes the target link.

[0121] The business information database stores all business information in a node tree format. For example, the database may include a full member node tree for each object set, representing the business collaboration relationships of each member in the object set participating in at least one business activity. For instance, the full member node tree may include the first full node in the object set participating in at least one business activity. The server then determines the full member node tree corresponding to the parallel object set in the business information database based on the identifier of the parallel object set, and reads the first full node included in that full member node tree.

[0122] Step S53: The server selects the initial node belonging to the target link corresponding to each set of parallel objects from the first full nodes corresponding to each set of parallel objects.

[0123] For example, the business information database may include configuration information corresponding to each object set, and the configuration information includes the business link to which each node in the corresponding full member node tree belongs. In this step, the server can filter out the initial node belonging to the target link from the first full set of nodes based on the target link identifier and the configuration information in the business information database.

[0124] For example, in the full member node tree of a company in the database, the nodes include: department a, department b, and department c; among them, department a and department c participate in business A, and department b participates in business B. If the current target business is business A, then the server will filter and obtain the required initial nodes including: department a and department c.

[0125] Step S54: The server stores the initial business collaboration information of the initial node corresponding to each parallel object set into the cache, and records the association between the identifier of each parallel object set, the target link identifier and the initial business collaboration information.

[0126] For example, the server uses "chain identifier + object set identifier" as the caching granularity to record various data items in the cache. For instance, the server can record the initial address book data corresponding to "chainid + enterprise ID" in the cache, such as recording the address book data of each department or group belonging to business A in enterprise A, and the address book data of each department or group belonging to business B in enterprise A, etc.

[0127] It should be noted that in a scenario involving large-scale enterprises with 100,000 or 200,000 upstream and downstream businesses, the overall request time for 200 enterprises is determined by the slowest enterprise when the data is read into the cache in parallel, due to the varying sizes of the participating enterprises. This application adopts a strategy of focusing on optimizing the performance of adding large-scale enterprises to the upstream and downstream processes to avoid the bottleneck effect leading to long processing times.

[0128] For example, the members participating in the upstream and downstream processes of a company are only a portion of its own members, generally not exceeding 1000 members or nodes depending on product functionality. This configuration is handled by the administrator or the person in charge of the upstream and downstream spaces. When retrieving contact data from a company, the system first reads all contact nodes from the company's contact list and iterates through each node one by one. Based on the company's configuration information, it checks whether each node participates in upstream and downstream process A to obtain the initial nodes. Then, based on the company's configured connection rules, it judges the contact data of the nodes that have participated in upstream and downstream process A to determine whether to return it to the user who retrieved the data.

[0129] In related technologies, if an enterprise with 500,000 members configures only one member to join upstream and downstream A, it is necessary to traverse all 500,000 nodes before returning the finally matched member, resulting in low performance. Steps S51-S54 are adopted: the cache granularity is adjusted from a "corpid" dimension to a "corpid + chainid" dimension; the cache capacity is appropriately increased to ensure data persistence in the cache; and during the initial caching, the initial node participating in the target chain is cached based on the enterprise configuration information. This ensures that subsequent cache traversals only traverse the initial node, eliminating the need to traverse the first full set of nodes, reducing the amount of data required for traversal, and thus improving data retrieval efficiency.

[0130] It should be noted that the server can use a parallel approach to execute the above steps S52-S54 in parallel on the target number of parallel object sets. By reading the initial business collaboration information of multiple object sets into the cache in parallel, the problem of reading into the cache one by one serially is avoided, which consumes a lot of time. This reduces the time spent reading into the cache and thus ensures the processing efficiency of data retrieval.

[0131] In one possible example, the server may provide target interfaces, such as CGI interface 1 and CGI interface 2. Taking the object collection as an example, the interface protocols of the two CGI interfaces are as follows:

[0132] CGI Interface 1, ww_GetChainArchChange; used to retrieve a list of IDs corresponding to member IDs and department IDs in the upstream and downstream address book of a certain enterprise. For example, it can retrieve department node IDs, member node IDs, etc. in a member node tree within an enterprise.

[0133] The CGI interface 1 protocol is as follows:

[0134] ww_BatchGetChainArchChange

[0135] / / cmdid=4700

[0136] message BatchGetChainArchChangeReq

[0137] {

[0138] message ChainArchReq

[0139] {

[0140] optional bytes cli_version=1;

[0141] optional uint32 limit = 2;

[0142] optional uint64 req_corpid=3;

[0143] optional bool real_data=4;

[0144] }

[0145] optional uint64 chainid=1;

[0146] repeated ChainArchReqreq_list=2;

[0147] }

[0148] message BatchGetChainArchChangeRsp

[0149] {

[0150] message ChainArchRsp

[0151] {

[0152] optional bool change = 1;

[0153] optional bool is_full_update = 2; / / Whether to perform a full update

[0154] optional bytes svr_version=3;

[0155] repeated wwcorplogic.ArchNodenode_list=4;

[0156] repeated wwcorplogic.ArchNodedelete_node_list=5;

[0157] optional uint32 delay_second = 6; / / The interval at which the client randomly pulls the architecture.

[0158] optional bool has_more = 7; / / Not yet finished updating

[0159] optional uint64 corpid = 8;

[0160] optional uint64 total_node_cnt = 9; / / Total node data

[0161] optional int32 ret_code=10;

[0162] }

[0163] repeated ChainArchRsprsp_list=1;

[0164] }

[0165] CGI Interface 2, ww_GetChainArchNodeData; used to retrieve data of nodes whose version numbers have changed from the list of IDs returned by CGI Interface 1.

[0166] The interface protocol corresponding to CGI interface 2 is as follows:

[0167] ww_BatchGetChainArchNodeData

[0168] / / cmdid=4701

[0169] message BatchGetChainArchNodeDataReq

[0170] {

[0171] message ChainDataReq

[0172] {

[0173] repeated wwcorplogic.ArchNodenode_list=1;

[0174] optional uint64 corpid = 2;

[0175] }

[0176] optional uint64 chainid=1;

[0177] repeated ChainDataReqreq_list=2;

[0178] }

[0179] message BatchGetChainArchNodeDataRsp

[0180] {

[0181] message ChainDataRsp

[0182] {

[0183] repeated GroupPatchpatch_list=1;

[0184] optional bool is_simplified=2;

[0185] optional uint64 corpid = 3;

[0186] optional int32 ret_code=4;

[0187] }

[0188] repeated ChainDataRsprsp_list=1;

[0189] }

[0190] It should be noted that variables such as the target link identifier `chainid`, the enterprise identifier `corpid`, and the parallel quantity `limit` can be defined in the protocol to define the information that the terminal needs to pull data from, thereby enabling the parallel retrieval of address book data from multiple enterprises. For example, the terminal can simultaneously send 200 downstream `corpid`s to CGI interface 2, and the server can start a concurrent task with 20 times the number of coroutines to pull the address book data for these 200 enterprise IDs. The overall synchronization time is expected to be optimized to 1 / 15 to 1 / 20 of related technologies. These two CGI interfaces support concurrent tasks, which effectively optimizes the long time consumption caused by sequentially pulling the address book of each enterprise one by one in related technologies, thus improving data retrieval efficiency.

[0191] Step 5082: The server iterates through the cache of business collaboration information that conforms to the pre-configured docking rules in each set of parallel objects.

[0192] The pre-configured docking rules refer to the rules governing the docking of each parallel object set with the current object set or the current object. For example, these pre-configured docking rules may include, but are not limited to: members in each parallel object set that dock with the current object set, and members in each parallel object set that correspond to the current object set within a specified time period. For example, in this step, for each parallel object set, the server can traverse the initial nodes of that parallel object set in the cache based on the pre-configured docking rules and the identifier of the current object set to obtain business nodes that conform to the pre-configured docking rules, and extract the business collaboration information corresponding to those business nodes; based on this traversal, the business collaboration information of each parallel object set is obtained.

[0193] For example, in a scenario where upstream distributor company A connects with downstream supplier companies B and C, A can be configured with the following connection rules: members 1, 2, and 3 of company A connect with company B, and members 4, 5, and 6 of company A connect with company C. When the server receives a data retrieval request from a member of downstream supplier company B, the server can use A's connection rules to iterate through and obtain the contact list data of members 1, 2, and 3 of company A.

[0194] In one possible implementation, the data storage method in the cache can be further optimized. For example, the server can use a key-value pair to record the data version of the stored data. For instance, the server uses the link identifier of the target link and the identifier of the object set as the key, and the version number of the corresponding business collaboration information as the value, to associate and store the business collaboration information corresponding to each object set in each business link. For example, the key can be the upstream / downstream ID and the enterprise ID, and the value is the version number of the address book data corresponding to the upstream / downstream ID. Each time the retrieved business collaboration information is sent to the terminal, the server can send the latest version number to the terminal. When the terminal sends a data retrieval request next time, the data retrieval request can carry the version number of the previously retrieved data. The server can compare its current latest version number with the version number that can be carried in the data retrieval request.

[0195] In related technologies, once a terminal has synchronized the entire upstream and downstream address book, if the scope of a company's participation in upstream / downstream B changes, it is necessary to resynchronize the entire address book of that company (including the address books of companies participating in upstream / downstream A and upstream / downstream B). For example, if company 1's internal address book version number is version 11, the terminal will record company 1's version number as version 11 after synchronization. When company 1's address book changes on the server, the server will record that company 1's internal address book version will change to version 12. The terminal can use a data pull request to make the server synchronize and update to company 1's internal address book version 12. However, because related technologies use one company ID corresponding to one address book version number, even if the data in downstream A's address book has not changed, it will still be synchronized and updated to the terminal along with the data in downstream B's address book, resulting in a large number of meaningless data pull requests. In this application, the upstream / downstream ID + enterprise ID are used as the key for recording, thus separating the version number used for data synchronization from the internal address book version number. When an enterprise participates in the upstream / downstream address book, the upstream / downstream service will detect address book change events for that enterprise. Only when the changed member or department node belongs to the upstream / downstream ID in the key will this independent version number be increased. Based on this, changes to members in the address book who have not participated in the upstream / downstream will no longer trigger data synchronization of the upstream / downstream address book, thereby avoiding frequent and meaningless data retrieval and improving data retrieval efficiency.

[0196] Step 509: The server returns the business collaboration information of each set of parallel objects retrieved to the terminal.

[0197] Step 510: The terminal receives the business collaboration information of each set of parallel objects sent by the server.

[0198] In one possible implementation, the server can determine whether the historical collaboration information of the parallel object set already stored in the terminal needs to be updated based on the parallel object set identifier and version number sent by the terminal. If an update is required, the server executes the above steps S52-S54 and sends the business collaboration information of the parallel object set to the terminal. If an update is not required, the server may not send the business collaboration information of the parallel object set. For example, the server may send a notification message to the terminal, such as a notification message to inform the terminal that the latest version of the data already exists and no update is required.

[0199] In one possible implementation, the server stores the business collaboration information corresponding to the object set in the form of a node tree in a cache or business information database. For example, the object member node tree corresponding to each object set represents the business collaboration relationship between at least one object within the object set participating in the target business. If steps S52-S54 above are used to selectively cache the data of each parallel object, the server can send the data of each parallel object set to the terminal using a full update method. For example, the step of the server sending the business collaboration information of each parallel object set obtained through traversal to the terminal may include the following step S6:

[0200] Step S6: For any object member node tree of any parallel object set, if any node in the object member node tree is removed, the server sends the business collaboration information of the second full node in the object member node tree that conforms to the pre-configured docking rules to the terminal.

[0201] The second full node refers to all nodes in the object member node tree, including member nodes and group nodes participating in the target business. It should be noted that if steps S52-S54 above are used to selectively cache data for each parallel object, and if a node is removed from the object member node tree, such as... Figure 6 As shown, department A within a company participates in a target business. However, if department B within department A is removed—meaning department B no longer participates in the target business despite department A's participation—the terminal must also synchronously remove department B from the department A node stored locally on the terminal. Because changes to the internal address book cause department B to disappear from the scope of the target business, and department B is not present in the latest cached data on the server, there is a possibility that the server may be unable to notify the terminal that department B needs to be deleted. To ensure that the server accurately notifies the terminal that department B needs to be removed, this application can execute step S6 to perform a full update, enabling the terminal to obtain the latest business collaboration information related to the target business, thus ensuring the accuracy and reliability of data retrieval.

[0202] For example, the server can send business collaboration information of each business node to the terminal in batches. For instance, for each set of parallel objects, the server can send the member node tree corresponding to that set of parallel objects to the terminal. The terminal receives the member node tree and extracts the identifiers of the business nodes included in the member node tree; for example, the business node may include the node identifiers of member nodes or group nodes. Based on the identifiers of the business nodes, the terminal sends at least one batch of node identifiers to the server in batches. The server receives at least one batch of node identifiers sent by the terminal; for each batch, the server extracts the business collaboration information corresponding to the node identifiers of that batch based on the node identifiers of that batch, and sends the extracted business collaboration information to the terminal. The terminal receives the business collaboration information corresponding to the node identifiers of each batch returned by the server.

[0203] The data retrieval method provided in this application, upon receiving a data retrieval request from a terminal, first returns the object set node tree corresponding to the target link to the terminal, enabling the terminal to obtain the overall situation of each object set. This provides the possibility for subsequent batch data retrieval and parallel retrieval of data from multiple object sets within each batch. Furthermore, utilizing the identifiers of the parallel object sets corresponding to the current batch, business collaboration information for each parallel object set is retrieved from the business information database in parallel, and the retrieved business collaboration information is returned to the terminal. Because data is retrieved in batches, with each batch using a parallel approach to retrieve business collaboration information from multiple object sets, the time consumed by data retrieval is reduced, improving data retrieval efficiency.

[0204] The data retrieval method provided in this application involves the following technical fields: big data, cloud technology, etc.

[0205] It should be understood that cloud computing is a computing model that distributes computing tasks across a resource pool composed of a large number of computers, enabling various application systems to obtain computing power, storage space, and information services as needed. The network providing these resources is called the "cloud." From the user's perspective, the resources in the "cloud" are infinitely scalable, readily available, on-demand, expandable, and pay-as-you-go.

[0206] As a provider of fundamental cloud computing capabilities, a cloud resource pool (referred to as a cloud platform, generally called an IaaS (Infrastructure as a Service) platform) is established. Various types of virtual resources are deployed in the resource pool for external customers to choose from. The cloud resource pool mainly includes: computing devices (virtualized machines containing operating systems), storage devices, and network devices.

[0207] Based on logical function, a PaaS (Platform as a Service) layer can be deployed on top of the IaaS (Infrastructure as a Service) layer, and a SaaS (Software as a Service) layer can be deployed on top of the PaaS layer. Alternatively, SaaS can be deployed directly on top of IaaS. PaaS is a platform for running software, such as databases and web containers. SaaS refers to various types of business software, such as web portals and bulk SMS senders. Generally speaking, SaaS and PaaS are upper layers compared to IaaS.

[0208] It should be understood that big data refers to data sets that cannot be captured, managed, and processed within a certain timeframe using conventional software tools. It represents massive, rapidly growing, and diverse information assets that require new processing models to achieve stronger decision-making, insightful discovery, and process optimization capabilities. With the advent of the cloud era, big data has attracted increasing attention. Big data requires specialized technologies to effectively process large amounts of data within a tolerable timeframe. Technologies suitable for big data include massively parallel processing databases, data mining, distributed file systems, distributed databases, cloud computing platforms, the internet, and scalable storage systems.

[0209] Figure 7 This is a schematic diagram of a data retrieval device provided in an embodiment of this application. Figure 7 As shown, the device includes: a pull request sending module 701, a receiving module 702, an acquisition module 703, and a pull module 704.

[0210] The pull request sending module 701 is used to send a data pull request to the server. The data pull request is used to pull the business collaboration information of the target link. The target link includes at least two object sets and the business collaboration relationship between the object sets participating in the target business.

[0211] The receiving module 702 is used to receive the object set node tree corresponding to the target link sent by the server;

[0212] Based on the node tree of this object set, repeat the following parallel fetching steps until the business collaboration information of each object set in the target link is fetched:

[0213] The acquisition module 703 is used to acquire the identifiers of at least two parallel object sets corresponding to the current batch from the identifiers of each object set included in the object set node tree;

[0214] The pull module 704 is used to send the identifiers of at least two parallel object sets corresponding to the current batch to the server, and to receive the business collaboration information of the at least two parallel object sets sent by the server.

[0215] In one possible implementation, the receiving module 702 is used for:

[0216] Receive at least one batch of node tree metadata sent by the server, whereby the node tree corresponding to each batch represents the business collaboration relationship between a subset of objects in the target link;

[0217] The target application page displays the metadata of each object collection in the target link. The metadata includes at least one of the following: the name of the object collection, its parent node, or attribute information.

[0218] In one possible implementation, the device further includes:

[0219] The first priority setting module is used to prioritize the fetching of any collection of objects over other collections in response to the detection of a view operation triggered on any collection of objects.

[0220] The acquisition module 703 is used for:

[0221] Based on the fetch priority of each object set, the identifiers of at least two parallel object sets corresponding to the current batch are filtered from the identifiers of each object set. The identifiers of the at least two object sets in the current batch include the identifier of any object set to be viewed.

[0222] In one possible implementation, the device further includes:

[0223] The second priority setting module is used to prioritize the retrieval of the current object set over other object sets. The current object set refers to the object set to which the currently logged-in object in the target application of the terminal belongs.

[0224] The acquisition module 703 is used for:

[0225] Based on the fetch priority of each object set, the identifiers of at least two parallel object sets corresponding to the current batch are filtered from the identifiers of each object set. The identifiers of the at least two object sets in the current batch include the identifier of the current object set.

[0226] In one possible implementation, the data retrieval request carries the link identifier of the target link, the identifier of the current object set, and the version number of the data last retrieved by the terminal.

[0227] The data retrieval method provided in this application obtains the object set node tree corresponding to the target link from the server based on the data retrieval request, thereby obtaining the overall situation of each object set of the target link. This provides the possibility for subsequent batch retrieval of data and parallel retrieval of data from multiple object sets in each batch. Furthermore, the object set node tree is used to repeatedly perform parallel retrieval of each parallel object set. The object set node tree is used to obtain the identifiers of at least two parallel object sets corresponding to the current batch, enabling subsequent retrieval of the business collaboration information of the at least two parallel object sets from the server based on these identifiers. Because data is retrieved in batches, and the business collaboration information of multiple object sets is retrieved in parallel in each batch, the time consumed by data retrieval is reduced, and the data retrieval efficiency is improved.

[0228] Figure 8 This is a schematic diagram of a data retrieval device provided in an embodiment of this application. Figure 8 As shown, the device includes: a receiving module 801, a transmitting module 802, and a parallel fetching module 803.

[0229] The receiving module 801 is used to receive a data retrieval request sent by the terminal. The data retrieval request is used to retrieve the business cooperation information of the target link. The target link includes at least two object sets and the business cooperation relationship between each object set participating in the target business.

[0230] The sending module 802 returns the object set node tree corresponding to the target link to the terminal using the link identifier based on the target link;

[0231] The receiving module 801 is also used to receive the identifier of the set of parallel objects corresponding to the current batch sent by the terminal;

[0232] The parallel fetch module 803 is used to fetch business collaboration information of each parallel object set from the business information database in parallel, based on the identifiers of at least two parallel object sets corresponding to the current batch.

[0233] The sending module 802 is also used to return the business collaboration information of the retrieved sets of parallel objects to the terminal.

[0234] In one possible implementation, the parallel fetch module 803 is used for:

[0235] Based on the identifiers of the at least two parallel object sets, the initial business collaboration information of each parallel object set in the business information database is read into the cache in parallel execution;

[0236] The cache iterates through the business collaboration information that conforms to the pre-configured docking rules in each set of parallel objects.

[0237] In one possible implementation, the parallel fetch module 803 is used for:

[0238] Increase the cache size to the pre-configured capacity value;

[0239] The following data reading steps are performed in parallel for each set of parallel objects:

[0240] Read the full member node tree corresponding to each parallel object set from the business information database to obtain the first full node corresponding to each parallel object set. The first full node includes nodes belonging to at least one business link, and the at least one business link includes the target link.

[0241] From the first full set of nodes corresponding to each set of parallel objects, select the initial node belonging to the target link corresponding to each set of parallel objects;

[0242] The initial business collaboration information of the initial node corresponding to each set of parallel objects is stored in the cache, and the association between the identifier of each set of parallel objects, the target link identifier and the initial business collaboration information is recorded.

[0243] In one possible implementation, the object member node tree corresponding to each object set represents the business collaboration relationship between at least one object in the object set participating in the target business.

[0244] The transmitting module 802 is also used for:

[0245] For any set of parallel objects, if any node in the object member node tree is removed, the business collaboration information of the second full node in the object member node tree that conforms to the pre-configured docking rules is sent to the terminal.

[0246] The data retrieval method provided in this application, upon receiving a data retrieval request from a terminal, first returns the object set node tree corresponding to the target link to the terminal, enabling the terminal to obtain the overall situation of each object set. This provides the possibility for subsequent batch data retrieval and parallel retrieval of data from multiple object sets within each batch. Furthermore, utilizing the identifiers of the parallel object sets corresponding to the current batch, business collaboration information for each parallel object set is retrieved from the business information database in parallel, and the retrieved business collaboration information is returned to the terminal. Because data is retrieved in batches, with each batch using a parallel approach to retrieve business collaboration information from multiple object sets, the time consumed by data retrieval is reduced, improving data retrieval efficiency.

[0247] The apparatus in this application embodiment can execute the method provided in this application embodiment, and the implementation principle is similar. The actions performed by each module in the apparatus of each embodiment of this application correspond to the steps in the method of each embodiment of this application. For detailed functional descriptions of each module of the apparatus, please refer to the descriptions in the corresponding methods shown above, which will not be repeated here.

[0248] Figure 9 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. For example... Figure 9 As shown, the computer device includes: a memory, a processor, and a computer program stored in the memory. The processor executes the computer program to implement the steps of the data retrieval method, which, compared with related technologies, can achieve:

[0249] The data retrieval method provided in this application obtains the object set node tree corresponding to the target link from the server based on the data retrieval request, thereby obtaining the overall situation of each object set of the target link. This provides the possibility for subsequent batch retrieval of data and parallel retrieval of data from multiple object sets in each batch. Furthermore, the object set node tree is used to repeatedly perform parallel retrieval of each parallel object set. The object set node tree is used to obtain the identifiers of at least two parallel object sets corresponding to the current batch, enabling subsequent retrieval of the business collaboration information of the at least two parallel object sets from the server based on these identifiers. Because data is retrieved in batches, and the business collaboration information of multiple object sets is retrieved in parallel in each batch, the time consumed by data retrieval is reduced, and the data retrieval efficiency is improved.

[0250] The data retrieval method provided in this application, upon receiving a data retrieval request from a terminal, first returns the object set node tree corresponding to the target link to the terminal, enabling the terminal to obtain the overall situation of each object set. This provides the possibility for subsequent batch data retrieval and parallel retrieval of data from multiple object sets within each batch. Furthermore, utilizing the identifiers of the parallel object sets corresponding to the current batch, business collaboration information for each parallel object set is retrieved from the business information database in parallel, and the retrieved business collaboration information is returned to the terminal. Because data is retrieved in batches, with each batch using a parallel approach to retrieve business collaboration information from multiple object sets, the time consumed by data retrieval is reduced, improving data retrieval efficiency.

[0251] In one alternative embodiment, a computer device is provided, such as Figure 9 As shown, Figure 9The computer device 900 shown includes a processor 901 and a memory 903. The processor 901 and the memory 903 are connected, for example, via a bus 902. Optionally, the computer device 900 may further include a transceiver 904, which can be used for data interaction between the computer device and other computer devices, such as sending and / or receiving data. It should be noted that in practical applications, the transceiver 904 is not limited to one type, and the structure of the computer device 900 does not constitute a limitation on the embodiments of this application.

[0252] Processor 901 may be a CPU (Central Processing Unit), a general-purpose processor, a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It can implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. Processor 901 may also be a combination that implements computational functions, such as including one or more microprocessor combinations, a combination of a DSP and a microprocessor, etc.

[0253] Bus 902 may include a pathway for transmitting information between the aforementioned components. Bus 902 may be a PCI (Peripheral Component Interconnect) bus or an EISA (Extended Industry Standard Architecture) bus, etc. Bus 902 can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 9 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0254] The memory 903 may be ROM (Read Only Memory) or other types of static storage devices capable of storing static information and instructions, RAM (Random Access Memory) or other types of dynamic storage devices capable of storing information and instructions, or EEPROM (Electrically Erasable Programmable Read Only Memory), CD-ROM (Compact Disc Read Only Memory) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.), magnetic disk storage media, other magnetic storage devices, or any other medium capable of carrying or storing computer programs and capable of being read by a computer, without limitation herein.

[0255] The memory 903 stores computer programs that execute embodiments of this application, and its execution is controlled by the processor 901. The processor 901 executes the computer programs stored in the memory 903 to implement the steps shown in the foregoing method embodiments.

[0256] Electronic devices include, but are not limited to, servers, terminals, or cloud computing center equipment.

[0257] This application provides a computer-readable storage medium storing a computer program. When the computer program is executed by a processor, it can implement the steps and corresponding content of the aforementioned method embodiments.

[0258] This application also provides a computer program product, including a computer program that, when executed by a processor, can implement the steps and corresponding content of the aforementioned method embodiments.

[0259] Those skilled in the art will understand that, unless otherwise stated, the singular forms “a,” “an,” “the,” and “the” used herein may also include the plural forms. The terms “comprising” and “including” as used in the embodiments of this application mean that the corresponding feature can be implemented as the presented feature, information, data, step, or operation, but do not exclude implementation as other features, information, data, steps, or operations supported by this art.

[0260] The terms "first," "second," "third," "fourth," "1," "2," etc. (if present) in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in a sequence other than that shown in the figures or text.

[0261] It should be understood that although arrows indicate various operation steps in the flowcharts of this application's embodiments, the order in which these steps are implemented is not limited to the order indicated by the arrows. Unless explicitly stated herein, in some implementation scenarios of this application's embodiments, the implementation steps in each flowchart can be executed in other orders as required. Furthermore, some or all steps in each flowchart, based on the actual implementation scenario, may include multiple sub-steps or multiple stages. Some or all of these sub-steps or stages can be executed at the same time, and each sub-step or stage can also be executed at different times. In scenarios where execution times differ, the execution order of these sub-steps or stages can be flexibly configured according to requirements, and this application's embodiments do not limit this.

[0262] The above description is only an optional implementation method for some implementation scenarios of this application. It should be noted that for those skilled in the art, other similar implementation methods based on the technical concept of this application without departing from the technical concept of this application also fall within the protection scope of the embodiments of this application.

Claims

1. A data pulling method, characterized by, The method includes: Send a data retrieval request to the server. The data retrieval request is used to retrieve business collaboration information of the target link. The target link includes at least two object sets and the business collaboration relationship between each object set participating in the target business. The business collaboration information is the information required for business collaboration between each object set participating in the target business. Each object set is a set of multiple objects with target relationships. The business collaboration information includes the information directory, application, URL link or multimedia resources of the target link. The server sends a target link corresponding to an object set node tree, which represents the business collaboration relationship of each object set participating in the target business. Each node in the object set node tree identifies an object set. Based on the object set node tree, the following parallel fetching steps are repeated until the business collaboration information of each object set in the target link is fetched: From the identifiers of each object set included in the object set node tree, obtain the identifiers of at least two parallel object sets corresponding to the current batch; Based on the identifiers of at least two parallel object sets corresponding to the current batch, the object member node trees corresponding to each parallel object set are pulled from the server in parallel. Based on the object member node trees corresponding to each parallel object set, the business collaboration information of the at least two parallel object sets is pulled from the server in parallel. The object member node tree corresponding to each object set represents the business collaboration relationship between each object in the object set participating in the target business.

2. The method of claim 1, wherein, The receiving of the target link corresponding to the target link sent by the server includes: Receive at least one batch of node tree metadata sent by the server, wherein the node tree corresponding to each batch represents the business collaboration relationship between a subset of objects in the target link; The metadata of each object set in the target link is displayed on the target application page. The metadata includes at least one of the following: the name of the object set, its parent node, or attribute information.

3. The method of claim 2, wherein, After displaying the metadata of each object set in the target link on the target application page, the method further includes: In response to the detection of a view operation triggered on any collection of objects, the fetch priority of any collection of objects to be viewed is placed above that of other collections of objects; The step of obtaining the identifiers of at least two parallel object sets corresponding to the current batch from the identifiers of each object set included in the object set node tree includes: Based on the fetch priority of each object set, the identifiers of at least two parallel object sets corresponding to the current batch are filtered from the identifiers of each object set. The identifiers of the at least two object sets corresponding to the current batch include the identifier of any object set to be viewed.

4. The method of claim 2, wherein, After displaying the metadata of each object set in the target link on the target application page, the method further includes: The fetch priority of the current object set is placed above that of other object sets. The current object set refers to the object set to which the currently logged-in object in the target application of the terminal belongs. The step of obtaining the identifiers of at least two parallel object sets corresponding to the current batch from the identifiers of each object set included in the object set node tree includes: Based on the fetch priority of each object set, the identifiers of at least two parallel object sets corresponding to the current batch are filtered from the identifiers of each object set. The identifiers of the at least two parallel object sets corresponding to the current batch include the identifier of the current object set.

5. The method according to claim 1, characterized in that, The data retrieval request carries the link identifier of the target link, the identifier of the current object set, and the version number of the data last retrieved by the terminal.

6. A data retrieval method, characterized in that, The method includes: The receiving terminal sends a data retrieval request, which is used to retrieve business collaboration information of the target link. The target link includes at least two object sets and the business collaboration relationship between each object set participating in the target business. The business collaboration information is the information required for business collaboration between each object set participating in the target business. Each object set is a set of multiple objects with target relationships. The business collaboration information includes the information directory, application, website link or multimedia resources of the target link. Based on the link identifier of the target link, the object set node tree corresponding to the target link is returned to the terminal. The object set node tree is used to represent the business cooperation relationship of each object set participating in the target service. Each node in the object set node tree identifies an object set. Receive the identifier of the set of parallel objects corresponding to the current batch sent by the terminal; Based on the identifiers of at least two parallel object sets corresponding to the current batch, the business collaboration information of each parallel object set is retrieved from the business information database in parallel, and the retrieved business collaboration information of each parallel object set is returned to the terminal.

7. The method according to claim 6, characterized in that, The step of retrieving business collaboration information from the business information database for each parallel object set based on the identifiers of at least two parallel object sets corresponding to the current batch includes: Based on the identifiers of the at least two parallel object sets, the initial business collaboration information of each parallel object set in the business information database is read into the cache in parallel. The cache is used to traverse the business collaboration information that conforms to the pre-configured docking rules in each set of parallel objects.

8. The method according to claim 7, characterized in that, The step of reading the initial business collaboration information of each parallel object set from the business information database into the cache based on the identifiers of the at least two parallel object sets includes: Increase the capacity of the cache to the pre-configured capacity value; The following data reading steps are performed in parallel for each set of parallel objects: Read the full member node tree corresponding to each parallel object set from the business information database to obtain the first full node corresponding to each parallel object set. The first full node includes nodes belonging to at least one business link, and the at least one business link includes the target link. From the first full set of nodes corresponding to each set of parallel objects, select the initial node belonging to the target link corresponding to each set of parallel objects; The initial business collaboration information of the initial node corresponding to each parallel object set is stored in the cache, and the association relationship between the identifier of each parallel object set, the target link identifier and the initial business collaboration information is recorded.

9. The method according to claim 8, characterized in that, The object member node tree corresponding to each object collection represents the business collaboration relationship between at least one object in the object collection that participates in the target business; The process of returning the retrieved set of parallel objects to the terminal includes: For any set of parallel objects, if any node in the object member node tree is removed, the business collaboration information of the second full node in the object member node tree that conforms to the pre-configured docking rules is sent to the terminal.

10. A data retrieval device, characterized in that, The device includes: The pull request sending module is used to send a data pull request to the server. The data pull request is used to pull business collaboration information of the target link. The target link includes at least two object sets and the business collaboration relationship between each object set participating in the target business. The business collaboration information is the information required for business collaboration between each object set participating in the target business. Each object set is a set of multiple objects with target relationships. The business collaboration information includes the information directory, application, URL link or multimedia resources of the target link. The receiving module is used to receive the object set node tree corresponding to the target link sent by the server. The object set node tree is used to represent the business cooperation relationship of each object set participating in the target business. Each node in the object set node tree identifies an object set. Based on the object set node tree, the following parallel fetching steps are repeated until the business collaboration information of each object set in the target link is fetched: The acquisition module is used to acquire the identifiers of at least two parallel object sets corresponding to the current batch from the identifiers of each object set included in the object set node tree; The pull module is used to pull the object member node tree corresponding to each of the at least two parallel object sets corresponding to the current batch from the server in parallel. Based on the object member node tree corresponding to each of the parallel object sets, the module also pulls the business collaboration information of the at least two parallel object sets from the server in parallel. The object member node tree corresponding to each object set represents the business collaboration relationship between the objects in the object set participating in the target business.

11. The apparatus according to claim 10, characterized in that, When the receiving module receives the object set node tree corresponding to the target link sent by the server, it is specifically used for: Receive at least one batch of node tree metadata sent by the server, wherein the node tree corresponding to each batch represents the business collaboration relationship between a subset of objects in the target link; The metadata of each object set in the target link is displayed on the target application page. The metadata includes at least one of the following: the name of the object set, its parent node, or attribute information.

12. The apparatus according to claim 11, characterized in that, After displaying the metadata of each object set in the target link on the target application page, the device further includes a first priority setting module. The first priority setting module is used to, in response to detecting a view operation triggered on any object collection, prioritize the retrieval of any object collection to be viewed over other object collections. When the acquisition module obtains the identifiers of at least two parallel object sets corresponding to the current batch from the identifiers of each object set included in the object set node tree, it is specifically used for: Based on the fetch priority of each object set, the identifiers of at least two parallel object sets corresponding to the current batch are filtered from the identifiers of each object set. The identifiers of the at least two object sets corresponding to the current batch include the identifier of any object set to be viewed.

13. The apparatus according to claim 11, characterized in that, After displaying the metadata of each object set in the target link on the target application page, the device further includes a second priority setting module. The second priority setting module is used to prioritize the retrieval of the current object set over other object sets, wherein the current object set refers to the object set to which the currently logged-in object in the target application of the terminal belongs; When the acquisition module obtains the identifiers of at least two parallel object sets corresponding to the current batch from the identifiers of each object set included in the object set node tree, it is specifically used for: Based on the fetch priority of each object set, the identifiers of at least two parallel object sets corresponding to the current batch are filtered from the identifiers of each object set. The identifiers of the at least two parallel object sets corresponding to the current batch include the identifier of the current object set.

14. The apparatus according to claim 10, characterized in that, The data retrieval request carries the link identifier of the target link, the identifier of the current object set, and the version number of the data last retrieved by the terminal.

15. A data retrieval device, characterized in that, The device includes: The receiving module is used to receive a data retrieval request sent by the terminal. The data retrieval request is used to retrieve business collaboration information of the target link. The target link includes at least two object sets and the business collaboration relationship between each object set participating in the target business. The business collaboration information is the information required for business collaboration between each object set participating in the target business. Each object set is a set of multiple objects with target relationships. The business collaboration information includes the information directory, application, URL link or multimedia resources of the target link. The sending module is used to return an object set node tree corresponding to the target link to the terminal based on the link identifier of the target link. The object set node tree is used to represent the business cooperation relationship of each object set participating in the target service. Each node in the object set node tree identifies an object set. The receiving module is also used to receive the identifier of the set of parallel objects corresponding to the current batch sent by the terminal; The parallel fetch module is used to retrieve business collaboration information of each parallel object set from the business information database in parallel, based on the identifiers of at least two parallel object sets corresponding to the current batch. The sending module is also used to return the business collaboration information of each set of parallel objects retrieved to the terminal.

16. The apparatus according to claim 15, characterized in that, When the parallel fetching module, based on the identifiers of at least two parallel object sets corresponding to the current batch, performs parallel fetching of business collaboration information for each parallel object set from the business information database, it is specifically used for: Based on the identifiers of the at least two parallel object sets, the initial business collaboration information of each parallel object set in the business information database is read into the cache in parallel. The cache is used to traverse the business collaboration information that conforms to the pre-configured docking rules in each set of parallel objects.

17. The apparatus according to claim 16, characterized in that, When the parallel fetch module, based on the identifiers of the at least two parallel object sets, reads the initial business collaboration information of each parallel object set in the business information database into the cache in parallel, it is specifically used for: Increase the capacity of the cache to the pre-configured capacity value; The following data reading steps are performed in parallel for each set of parallel objects: Read the full member node tree corresponding to each parallel object set from the business information database to obtain the first full node corresponding to each parallel object set. The first full node includes nodes belonging to at least one business link, and the at least one business link includes the target link. From the first full set of nodes corresponding to each set of parallel objects, select the initial node belonging to the target link corresponding to each set of parallel objects; The initial business collaboration information of the initial node corresponding to each parallel object set is stored in the cache, and the association relationship between the identifier of each parallel object set, the target link identifier and the initial business collaboration information is recorded.

18. The apparatus according to claim 17, characterized in that, The object member node tree corresponding to each object collection represents the business collaboration relationship between at least one object in the object collection that participates in the target business; When the sending module returns the business collaboration information of the retrieved sets of parallel objects to the terminal, it is specifically used for: For any set of parallel objects, if any node in the object member node tree is removed, the business collaboration information of the second full node in the object member node tree that conforms to the pre-configured docking rules is sent to the terminal.

19. A computer device comprising a memory, a processor, and a computer program stored in the memory, characterized in that, The processor executes the computer program to implement the steps of the method according to any one of claims 1 to 9.

20. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 9.

21. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 9.