Information query method, information query device and terminal device
By using multiple associated hash functions and cuckoo filters in database queries, the database query concentration problem caused by malicious requests is solved, and normal queries to the database and the universality of cuckoo filters are improved.
Patent Information
- Application Number
- CN202010054756.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-01-17
- Publication Date
- 2025-06-20
- Estimated Expiration
- 2040-01-17
AI Technical Summary
In database queries, malicious requesters may conduct a large number of repeated queries on elements that do not exist in the database cache, resulting in all queries being concentrated in the database, thus affecting the normal queries of the database.
The preset tag is determined by using multiple different and associated hash functions to determine the storage location of the preset label in the cuckoo filter and associate the cuckoo filter with the preset service so that the preset service can call the cuckoo filter for query.
It effectively avoids cache breakdown and other situations, maintains the normal use of the database, and improves the universality of the cuckoo filter.
Smart Images

Figure CN111259049B_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the technical field of information query, and particularly relates to an information query method, an information query device, a terminal device, and a computer-readable storage medium. Background Art
[0002] When querying a database, in order to improve the query efficiency, cache query is usually performed first. If the corresponding element does not exist or has expired in the cache query, the database is then queried.
[0003] However, some requestors of query requests, such as malicious requestors, may deliberately make a large number of repeated requests for elements that do not exist in the cache of some databases, resulting in all requests being concentrated on the database, thus causing situations such as database downtime (i.e., cache breakdown), which affects the normal query of the database. Summary of the Invention
[0004] Embodiments of this application provide an information query method, an information query device, a terminal device, and a computer-readable storage medium, which can solve the problem that a large number of repeated queries are made for elements that do not exist in the cache of the database, resulting in all queries being concentrated on the database, thus affecting the normal query of the database.
[0005] In a first aspect, an embodiment of this application provides an information query method, including:
[0006] Based on at least one first hash function in the first hash function set, determine the storage positions corresponding to each preset tag in the preset storage space of the cuckoo filter and store them, where the first hash function set includes at least two first hash functions, each first hash function is different and related to each other, and for any preset tag, the storage positions of the preset tag in the preset storage space of the cuckoo filter obtained based on each first hash function are different;
[0007] Associate the cuckoo filter with a preset service so that the preset service can call the cuckoo filter;
[0008] If it is determined that the preset service obtains a query request for a to-be-query element, obtain a first tag corresponding to the to-be-query element through a second hash function;
[0009] Based on the preset service, query whether there is a preset tag identical to the first tag stored in the preset storage space through the cuckoo filter;
[0010] If there is a preset tag identical to the first tag stored in the preset storage space, query whether there is target information about the to-be-query element stored in the cache.
[0011] In a second aspect, an information query device provided by an embodiment of the present application includes:
[0012] A storage module, configured to determine storage positions corresponding to respective preset tags in a preset storage space of a cuckoo filter based on at least one first hash function in a first hash function set and store them, where the first hash function set includes at least two first hash functions, the first hash functions are different from and related to each other, and for any preset tag, the storage positions of the preset tag in the preset storage space of the cuckoo filter obtained based on each first hash function are different;
[0013] A setting module, configured to associate the cuckoo filter with a preset service, so that the preset service can call the cuckoo filter;
[0014] A processing module, configured to, if it is determined that the preset service obtains a query request for a to-be-query element, obtain a first tag corresponding to the to-be-query element through a second hash function;
[0015] A first query module, configured to query, based on the preset service, whether a preset tag identical to the first tag is stored in the preset storage space through the cuckoo filter;
[0016] A second query module, configured to, if a preset tag identical to the first tag is stored in the preset storage space, query whether target information about the to-be-query element is stored in a cache.
[0017] In a third aspect, an embodiment of the present application provides a terminal device, including a memory, a processor, a display, and a computer program stored in the memory and executable on the processor, characterized in that when the processor executes the computer program, the information query method described in the first aspect is implemented.
[0018] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium storing a computer program, where when the computer program is executed by a processor, the information query method described in the first aspect is implemented.
[0019] In a fifth aspect, an embodiment of the present application provides a computer program product, which when running on a terminal device, causes the terminal device to execute the information query method described in the first aspect above.
[0020] The beneficial effects of the embodiments of the present application compared with the prior art are as follows: In the embodiments of the present application, based on at least one first hash function in the first hash function set, the storage positions corresponding to each preset tag in the preset storage space of the cuckoo filter can be determined and stored. The first hash function set includes at least two first hash functions. Therefore, through multiple first hash functions, each preset tag can have multiple corresponding storage positions in the preset storage space of the cuckoo filter, and one of the storage positions is selected to store the preset tag. Since each of the first hash functions is different and related to each other, in practical applications, the storage positions corresponding to other first hash functions can be obtained based on the storage position corresponding to one of the first hash functions. Thus, in some cases, through one first hash function, the multiple storage positions corresponding to the preset tag can be quickly found, and one storage position that can be used for storage among the multiple storage positions can be determined. In addition, since the architecture and programming language adopted by the cuckoo filter may be different from the object (such as various applications) that issues the query request, associating the cuckoo filter with a preset service enables the preset service to call the cuckoo filter, which can overcome the problem that the architecture and programming language adopted by the cuckoo filter are different from the object that issues the query request. Thus, through the preset service, the cuckoo filter can be called by various objects that issue query requests for querying, to meet the needs of multiple application scenarios, greatly enhancing the versatility of the cuckoo filter. If a preset tag identical to the first tag is stored in the preset storage space, it is checked whether target information about the element to be queried is stored in the query cache. At this time, the element to be queried can be filtered by the cuckoo filter, and only valid query content is allowed to perform subsequent queries on the cache and even the database, thereby avoiding situations such as cache breakdown and maintaining the normal use of the database. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following will briefly introduce the drawings required for use in the embodiments or the description of the prior art. Obviously, the following drawings are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0022] Figure 1 It is a flowchart of the first information query method provided by an embodiment of the present application;
[0023] Figure 2 It is a flowchart of the second information query method provided by an embodiment of the present application;
[0024] Figure 3It is a schematic structural diagram corresponding to the information query method provided by an embodiment of the present application;
[0025] Figure 4 It is a schematic structural diagram of an information query device provided by an embodiment of the present application;
[0026] Figure 5 It is a schematic structural diagram of a terminal device provided by an embodiment of the present application. Detailed implementation manners
[0027] In the following description, for the purpose of illustration rather than limitation, specific details such as specific system architectures and technologies are presented to thoroughly understand the embodiments of the present application. However, those skilled in the art should clearly understand that the present application can also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to avoid unnecessary details from interfering with the description of the present application.
[0028] It should be understood that when used in the specification and claims of the present application, the term "comprising" indicates the presence of the described features, wholes, steps, operations, elements, and / or components, but does not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components, and / or their combinations.
[0029] It should also be understood that the term "and / or" as used in the specification and claims of the present application refers to any combination and all possible combinations of one or more of the associated listed items, and includes these combinations.
[0030] As used in the specification and claims of the present application, the term "if" can be interpreted as "when", "once", "in response to determining", or "in response to detecting" depending on the context. Similarly, the phrase "if determined" or "if detected [the described condition or event]" can be interpreted as meaning "once determined", "in response to determining", "once detected [the described condition or event]", or "in response to detecting [the described condition or event]" depending on the context.
[0031] References to "one embodiment" or "some embodiments" etc. described in the specification of this application mean that a specific feature, structure, or characteristic described in connection with that embodiment is included in one or more embodiments of this application. Thus, statements such as "in one embodiment", "in some embodiments", "in other some embodiments", "in still other embodiments", etc. that appear in different places in this specification do not necessarily all refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized. The terms "comprising", "including", "having" and their variants all mean "including but not limited to", unless otherwise specifically emphasized.
[0032] Specifically, Figure 1 FIG. shows a flowchart of a first information query method provided by an embodiment of this application, and this information query method can be applied to a terminal device.
[0033] In an embodiment of this application, the type of the terminal device can be various. For example, the terminal device can be a server, a mobile phone, a tablet computer, a wearable device, a vehicle-mounted device, an augmented reality (AR) / virtual reality (VR) device, a laptop computer, an ultra-mobile personal computer (UMPC), a netbook, a personal digital assistant (PDA), etc. The specific type of the terminal device is not limited herein in the embodiments of this application.
[0034] In an application scenario, the information query method of this application can be implemented in the terminal device through a specific software module. Among them, the specific software module of the terminal device can include a module for implementing the function of the cuckoo filter and a module for implementing the function of the preset service. The specific software module can be implemented by one or more programming languages. Among them, in the specific software module, different programming languages can be used when implementing different functions. For example, the module for implementing the function of the cuckoo filter can be implemented by the Go language, while the module for implementing the function of the preset service can be implemented by the Java language.
[0035] In addition, the specific software module can also be used to implement other functions, and the terminal device can also include other software modules, which are not limited herein.
[0036] For example, in some embodiments, the terminal device may further include a software module that implements at least one of the functions of a service registry, a target gateway, a gateway, and other service systems, so as to implement functions involved in some embodiments of the information query method, such as obtaining the address of a preset service and verifying the legitimacy of the source of a query request. Of course, in some embodiments, the functions of the above-mentioned service registry, target gateway, gateway, and other service systems may also be implemented on other terminals other than the terminal device. At this time, the other terminals may transmit information to and from the terminal device through a specified information transmission method (such as wired transmission or wireless transmission, etc.).
[0037] The information query method includes:
[0038] Step S101: Based on at least one first hash function in a first hash function set, determine the storage locations corresponding to respective preset tags in a preset storage space of a cuckoo filter and store them, where the first hash function set includes at least two first hash functions, the first hash functions are different from and related to each other, and for any preset tag, the storage locations of the preset tag in the preset storage space of the cuckoo filter obtained based on each first hash function are different.
[0039] In the embodiments of the present application, a hash function, also known as a Hash Function, is used to calculate the storage address corresponding to an element to be stored. The first hash function is used to determine the storage locations corresponding to respective preset tags in the preset storage space of the cuckoo filter. Exemplarily, the first hash function may be a function based on hash algorithms such as MD5, SHA1, and MD4. The preset tag may represent a corresponding preset element. In some embodiments, the preset tag may be obtained by calculating a preset element through a preset hash function. Exemplarily, the preset element may include, for example, websites, phone numbers, email addresses, words, etc. By presetting the preset element, a whitelist or blacklist of, for example, websites, phone numbers, email addresses, etc., or a correct word list, etc., can be obtained. The preset tag is called the fingerprint of the corresponding preset element, where the fingerprint is a digital fingerprint and is an identifier of a certain file or element generated based on a hash function. Generally, the size of the preset tag is smaller than that of the preset element. Therefore, storing the preset tag in the preset storage space instead of storing the corresponding preset element can save storage resources and improve space efficiency.
[0040] It should be noted that in some embodiments, for a preset hash function, the preset tags corresponding to different preset elements may be the same. Therefore, in practical applications, there may be a certain misjudgment rate. However, by selecting an appropriate hash function and certain optimizations, this misjudgment rate can be reduced to a reasonable range without affecting the normal use of the database.
[0041] In the embodiments of the present application, the cuckoo filter is also known as the Cuckoo Filter. The specific structure of the cuckoo filter can be selected and optimized according to the actual application scenario. In actual use, the storage positions obtained by different preset tags through the first hash function may be the same. Therefore, in the embodiments of the present application, the set of the first hash functions of the cuckoo filter may include at least two first hash functions, so that at least two storable positions corresponding to the preset tag in the preset storage space can be obtained, and for any preset tag, the storage positions of the preset tag in the preset storage space obtained based on each first hash function are different.
[0042] In the embodiments of the present application, for any preset tag, the storage position for storing the preset tag may be one or multiple. Generally speaking, for any of the preset tags, it is only necessary to store it in a corresponding storage position. At this time, among the other storage positions corresponding to the preset tag, there may be no other preset tags stored, or there may be other preset tags stored, and the storage position obtained by the other preset tag through the first hash function is the same as the storage position of this preset tag. Therefore, determining the storage positions corresponding to each preset tag in the preset storage space of the cuckoo filter and storing them may include determining multiple storable positions corresponding to each preset tag in the preset storage space of the cuckoo filter, and for any preset tag, selecting a storage position with an empty storage content among the multiple storable positions corresponding to the preset tag for storage; in addition, it is also possible to determine one storable position corresponding to each preset tag in the preset storage space of the cuckoo filter through one first hash function, and determine whether the storage content of this storable position is empty. If it is empty, use this storable position as the storage position for storage. If it is not empty, then determine one storable position corresponding to each preset tag in the preset storage space of the cuckoo filter through another first hash function until a storage position with an empty storage content among the multiple storable positions corresponding to the preset tag is determined and stored.
[0043] In some embodiments, if, for a certain preset tag, none of the multiple storable positions corresponding to the preset tag is empty, one of the storable positions corresponding to the preset tag can be selected, and a replacement storage operation for the preset tag can be performed. The replacement storage operation for the preset tag can cause the preset tag to replace other preset tags pre-stored in this storage position for storage; for the other preset tags replaced out, calculate other storable positions of the other preset tags in the preset storage space of the cuckoo filter, select a storage position with an empty storage content from the multiple storable positions corresponding to the other preset tags for storage, or perform a replacement storage operation for the other preset tags until the number of times of the replacement storage operation reaches a preset number threshold, then it can be considered that the preset storage space of the cuckoo filter is insufficient, so as to expand the preset storage space, and the degree of the expansion can be determined according to the actual application scenario.
[0044] In the embodiments of the present application, the first hash functions are mutually related. Therefore, the storage positions corresponding to the first hash functions are also mutually related. Among them, there can be multiple ways for the first hash functions to be mutually related. Exemplarily, it can be set that the first hash function set includes two first hash functions, and the setting manners of the two first hash functions are as follows:
[0045] p1 = hash(key)
[0046] p2 = p1 xor hash(f(key))
[0047] Wherein, p1 is a first hash function, p2 is another first hash function, the key is any preset tag, and f(key) is to process the preset tag through a preset function. For example, f(key) = fingerprint(key). At this time, fingerprint(key) can be the fingerprint corresponding to the preset tag. The xor is an exclusive or operation. At this time, two corresponding storage positions of the preset tag can be found through one of the first hash functions. Of course, the specific setting manner of the first hash function can also be other ways that can make the first hash functions different and related to each other, which is not limited herein.
[0048] Step S102, associate the cuckoo filter with a preset service so that the preset service can call the cuckoo filter.
[0049] In the embodiments of the present application, the programming language used by the cuckoo filter is often different from the object (such as various applications) that issues the query request. For example, the cuckoo filter can be written in the Go language, while the query requests of various applications such as browsers, application programs, and preset platforms are implemented in the Java language. Therefore, in the embodiments of the present application, the cuckoo filter can be associated with a preset service so that the preset service can call the cuckoo filter. Among them, by way of example, the preset service can be a DaemonSet or a Sidecar. By way of example, the preset service can be a Sidecar. The Sidecar is a microservice that can separate application functions from the application as a separate process. Through the Sidecar, multiple functions can be added to the application without intrusion. In the embodiments of the present application, the preset service can call the cuckoo filter for an application whose programming language is different from that of the cuckoo filter.
[0050] Since the architecture and programming language adopted by the cuckoo filter may be different from the object (such as various applications) that issues the query request, associating the cuckoo filter with a preset service so that the preset service can call the cuckoo filter can overcome the problem that the architecture and programming language adopted by the cuckoo filter are different from the object that issues the query request. Thus, through the preset service, the cuckoo filter can be called for various objects that issue query requests for querying, to meet the needs of various application scenarios, and greatly improve the versatility of the cuckoo filter.
[0051] Step S103, if it is determined that the preset service obtains a query request for the element to be queried, obtain the first tag corresponding to the element to be queried through the second hash function.
[0052] In the embodiments of the present application, the element to be queried can be all of the content to be queried, or an identifier of the content to be queried (such as the id, name, number, etc. of the content to be queried). There can be various specific forms of the element to be queried. For example, in one embodiment, the element to be queried can be a key in a database query. In practical applications, there can be various types of keys, which can be determined according to actual needs. For example, the key can include a candidate key, a primary key, an alternate (secondary) key, a superkey, a foreign key, and so on.
[0053] In an embodiment of the present application, exemplarily, the second hash function may be a function based on hash algorithms such as MD5, SHA1, MD4, etc. In some embodiments, the preset tag may be obtained by calculating a preset element through a preset hash function. At this time, correspondingly, the second hash function may be the same as the preset hash function. And, in some embodiments, the first tag may be the fingerprint of the element to be queried. Wherein, the fingerprint is a digital fingerprint and is an identifier of a certain file or element generated based on a hash function.
[0054] Step S104, based on the preset service, query whether a preset tag identical to the first tag is stored in the preset storage space through the cuckoo filter.
[0055] In an embodiment of the present application, the preset service invokes the cuckoo filter to query whether a preset tag identical to the first tag is stored in the preset storage space. Specifically, first, at least one first hash function in the first hash function set may be determined to calculate the first storage location corresponding to the first tag in the preset storage space of the cuckoo filter, and then query whether each of the first storage locations stores a preset tag identical to the first tag.
[0056] Optionally, in some embodiments, at least one first hash function in the first hash function set is used to calculate at least one first storage location corresponding to the first tag in the preset storage space of the cuckoo filter;
[0057] Based on the preset service, query whether a preset tag identical to the first tag is stored in each of the first storage locations through the cuckoo filter until all the first storage locations corresponding to the first tag are traversed, or until it is determined that a preset tag identical to the first tag is stored in the preset storage space.
[0058] In an embodiment of the present application, the number of calculated first storage locations can be determined according to the actual application scenario. For example, if a preset tag identical to the first tag is stored in the first calculated first storage location, then at this time, only one first storage location needs to be calculated. And if after traversing all the first storage locations corresponding to the first tag, none of the first storage locations stores a preset tag identical to the first tag, then it can be considered that the first tag is an invalid tag.
[0059] Step S105, if a preset tag identical to the first tag is stored in the preset storage space, query whether target information about the element to be queried is stored in the cache.
[0060] In the embodiments of the present application, if a preset tag identical to the first tag is stored in the preset storage space, it can be considered that the first tag is a valid tag, that is, the element to be queried corresponding to the first tag is valid content to be queried, so that further queries can be performed in the cache and even the database.
[0061] In the embodiments of the present application, the element to be queried may be an identifier of the target information. Of course, it may also be the target information itself. When the element to be queried is an identifier of the target information, the element to be queried may be an ID, name, number, etc. of the target information, for uniquely identifying the target information. At this time, the target information identified by the element to be queried can be obtained through the query.
[0062] In some embodiments, after querying whether the target information about the element to be queried is stored in the cache, it further includes:
[0063] If the target information about the element to be queried is not stored in the cache, query the database for the target information about the element to be queried.
[0064] If the target information about the element to be queried is stored in the cache, obtain the target information about the element to be queried in the cache.
[0065] In the embodiments of the present application, if the target information about the element to be queried is queried from the database, the target information about the element to be queried can be stored in the cache for subsequent quick queries, reducing the query pressure on the database.
[0066] Among them, in some embodiments, in the cache, there may be stored content queried from the database during a specified time period or a specified operating cycle before the current time; of course, the cache may also include other content, such as high-frequency query content for the database. The high-frequency query content may be content with a query frequency higher than a preset frequency.
[0067] In some embodiments, the information query method further includes:
[0068] If the first tag does not have a corresponding storage location in the preset storage space, determine that the first tag is an invalid tag.
[0069] In the embodiments of the present application, if the first tag is an invalid tag, further querying whether the target information about the element to be queried is stored in the cache is no longer performed, and an indication instruction indicating that the first tag is an invalid tag can be returned. At this time, some invalid query contents can be filtered out through the cuckoo filter, thereby avoiding a large number of repeated query requests for the cache and even the database by the invalid query contents.
[0070] In some embodiments, determining the storage positions corresponding to the respective preset tags in the preset storage space of the cuckoo filter and storing them based on at least one first hash function in the first hash function set includes:
[0071] Determining the categories of the respective preset tags;
[0072] Dividing the preset storage space of the cuckoo filter so that the preset storage space includes at least one sub-storage space, where each sub-storage space corresponds to one category;
[0073] Based on at least one first hash function in the first hash function set, determining the storage positions of the respective preset tags in the corresponding sub-storage spaces and storing them;
[0074] The step of, if it is determined that the preset service obtains a query request for an element to be queried, obtaining a first tag corresponding to the element to be queried through a second hash function includes:
[0075] If it is determined that the preset service obtains a query request for an element to be queried, determining the category of the element to be queried;
[0076] According to the category of the element to be queried, determining the second hash function corresponding to the element to be queried, where different categories correspond to different second hash functions;
[0077] Obtaining a first tag corresponding to the element to be queried through the corresponding second hash function;
[0078] The step of querying whether a preset tag identical to the first tag is stored in the preset storage space through the cuckoo filter based on the preset service includes:
[0079] According to the category of the element to be queried, determining the sub-storage space in the preset storage space corresponding to the element to be queried;
[0080] Based on the preset service, querying whether a preset tag identical to the first tag is stored in the sub-storage space through the cuckoo filter.
[0081] In the embodiments of the present application, generally, since the preset tag can be obtained by calculating a preset element through a preset hash function. Therefore, the category of the preset tag can be determined according to the category of the preset element corresponding to the preset tag. The category can be determined according to the actual application scenario. For example, the category can include website URLs, phone numbers, email addresses, etc. Since the performance of different preset hash functions when calculating different types of data may vary according to the type, different preset hash functions can correspond to different categories of preset tags. And since the second hash function can be the same as the preset hash function, there can also be multiple second hash functions. At this time, different second hash functions can be selected according to the category of the element to be queried, and according to the category of the element to be queried, the sub-storage space corresponding to the element to be queried in the preset storage space can be determined.
[0082] By adopting different second hash functions and sub-storage spaces for different categories, different elements can be stored and queried more targeted, thereby reducing the probability that the storage positions corresponding to different tags are the same, reducing the error rate, and improving the query efficiency.
[0083] In the embodiments of the present application, since different types of elements to be queried can be processed based on different second hash functions and queried in different sub-storage spaces, in some embodiments, after determining the category of the element to be queried, in subsequent processing, parallel queries can be performed for different types of elements to be queried, thereby improving the query speed and query efficiency.
[0084] In the embodiments of the present application, at least one first hash function in the first hash function set can be used to determine the storage positions corresponding to each preset label in the preset storage space of the cuckoo filter and store them. The first hash function set includes at least two first hash functions. Therefore, through multiple first hash functions, each preset label can have multiple corresponding storage positions in the preset storage space of the cuckoo filter, and one of the storage positions is selected to store the preset label. Each of the first hash functions is different from and related to each other. Therefore, in practical applications, based on the storage position corresponding to one of the first hash functions, the storage positions corresponding to other first hash functions can be obtained. Thus, in some cases, through one first hash function, the multiple storage positions corresponding to the preset label can be quickly found, and one storage position that can be used for storage among the multiple storage positions can be determined. In addition, since the architecture and programming language adopted by the cuckoo filter may be different from the object (such as various applications) that issues the query request, associating the cuckoo filter with a preset service so that the preset service can call the cuckoo filter can overcome the problem that the architecture and programming language adopted by the cuckoo filter are different from the object that issues the query request. Thus, through the preset service, the cuckoo filter can be called by various objects that issue query requests for querying to meet the needs of various application scenarios, greatly improving the generality of the cuckoo filter. If a preset label identical to the first label is stored in the preset storage space, check whether target information about the element to be queried is stored in the query cache. At this time, the cuckoo filter can be used to filter the element to be queried, allowing only valid query content to perform subsequent queries on the cache and even the database, thereby avoiding situations such as cache breakdown and maintaining the normal use of the database.
[0085] Based on the above embodiments, Figure 2 FIG. shows a flowchart of a second information query method provided by an embodiment of the present application.
[0086] The information query method includes:
[0087] Step S201: Based on at least one first hash function in the first hash function set, determine the storage positions corresponding to each preset label in the preset storage space of the cuckoo filter and store them. The first hash function set includes at least two first hash functions. Each of the first hash functions is different from and related to each other, and for any preset label, the storage positions of the preset label in the preset storage space obtained based on each first hash function are different.
[0088] Step S202: Associate the cuckoo filter with a preset service so that the preset service can call the cuckoo filter.
[0089] Step S203, if it is determined that the preset service obtains a query request for the element to be queried from the target gateway, then the first tag corresponding to the element to be queried is obtained through the second hash function.
[0090] In the embodiment of the present application, the target gateway may be an application programming interface (API) gateway of a microservice architecture provided in the system of the terminal device. Exemplarily, the target gateway may be Zuul in Spring Cloud, etc. Generally, requests (such as query requests) obtained from devices, websites, etc. need to be authenticated by the target gateway.
[0091] Among them, the target gateway may pre-obtain the address of the preset service, so as to send a query request for the element to be queried to the preset service. In some embodiments, the target gateway may obtain the address of the preset service from the registration service center. Among them, the registration service center may provide a list of services available for invocation, which may include information about the address of the preset service.
[0092] Step S204, based on the preset service, query whether there is a preset tag identical to the first tag stored in the preset storage space through the cuckoo filter.
[0093] Step S205, if there is a preset tag identical to the first tag stored in the preset storage space, query whether there is target information about the element to be queried stored in the cache.
[0094] Steps S201, S202, S204 and step S205 in this embodiment are the same as or similar to steps S101, S102, S104 and step S105 above, and will not be elaborated here.
[0095] In some embodiments, the step of if it is determined that the preset service obtains a query request for the element to be queried from the target gateway, then the first tag corresponding to the element to be queried is obtained through the second hash function includes:
[0096] If it is determined that the preset service receives a query request for the element to be queried sent by the target gateway according to the address of the preset service obtained from the service registration center, then the first tag corresponding to the element to be queried is obtained through the second hash function, where the service registration center registers the preset service and the target gateway.
[0097] In the embodiments of the present application, the service registry can provide a list of services available for invocation, and the list of services can include the addresses of each service provider. When a device, a website, an application, etc. perform service invocation through the target gateway, they can perform service invocation according to the list of services and the addresses of the service providers (such as each business system, preset service, etc.). Among them, the preset service and the target gateway can be pre-registered in the service registry, so that the service registry can obtain the address of the preset service and can provide the address of the preset service for the target gateway.
[0098] Exemplarily, the service registry can be Zookeeper, Eureka, etc., which is not limited herein.
[0099] It should be noted that other business systems, other services, interfaces, etc. can also be registered in the service registry, and the specific setting method of the service registry can be set according to the actual application scenario.
[0100] In the embodiments of the present application, when the target gateway sends a query request about the element to be queried to the preset service according to the address of the preset service, it can be that the target gateway directly sends a query request about the element to be queried to the preset service, or it can be that through the service registry, a query request about the element to be queried is sent to the preset service, and there can be various information transmission methods.
[0101] In some embodiments, the address of the preset service is returned to the target gateway by the service registry after receiving the address query request of the target gateway, where the address query request instructs the target gateway to request the service registry to query the address of the preset service, and the address query request is generated when the target gateway obtains a query request about the element to be queried of a specified application and verifies that the source of the query request is the target source, and the preset service is a service that matches the query request.
[0102] In the embodiments of the present application, the target source can be pre-set or determined by judging according to information such as the address of the source of the query request. Exemplarily, the target source can include a target application (such as an application of a specified application type or specified attribute), a target device, etc. When the target gateway obtains a query request for an element to be queried, verifying whether the source of the query request is the target source can reduce illegal queries and further ensure the normal use of database queries. In the embodiments of the present application, the service matching the query request can be determined according to the function of the service and the requirements of the query request. For example, if the query request is to query database information, then in the embodiments of the present application, the preset service is the service matching the query request.
[0103] The following uses a specific example to exemplarily illustrate an exemplary architecture corresponding to an information query method provided by the embodiments of the present application.
[0104] As Figure 3 shown, it is a schematic diagram of an architecture corresponding to an information query method provided by the embodiments of the present application. Among them, the target source can be a browser, the target gateway can be zuul, the service registry can be Eureka, and other business systems can also be registered in the service registry, such as Business System 1 and Business System 2, and the preset service can be Sidecar.
[0105] It should be noted that the Figure 3 shown architecture can be implemented on one or more terminals. Among them, the terminal implementing the architecture can include the terminal device executing the above information query method, and can also include other terminals other than the terminal device.
[0106] Generally speaking, the cuckoo filter and the preset service can be implemented by the terminal device executing the information query method in the embodiments of the present application; while the other parts of the architecture, that is, the target source, target gateway, service registry, and other business systems can be implemented by the terminal device running the preset service and the cuckoo filter, or can be implemented by one or more other terminals. At this time, between the various parts of the architecture, at least one of system-to-system communication, wireless communication, or wired communication and other methods can be used for information transmission according to the distribution of each part on the terminal.
[0107] It should be noted that Figure 3 is only an exemplary display of the architecture in the embodiments of the present application, rather than a limitation.
[0108] When the embodiment of the present application obtains a query request for a to-be-query element from the target gateway of the preset service, a first tag corresponding to the to-be-query element is obtained through a second hash function. The query requests from various sources can be obtained through the preset service and the target gateway, so as to meet the requirements of various application scenarios. Moreover, through the target gateway, the security of the source of the query request can be guaranteed.
[0109] It should be understood that the magnitudes of the sequence numbers of the steps in the above embodiments do not mean the order of execution. The execution order of each process should be determined according to its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.
[0110] Corresponding to the information query method described in the above embodiments, Figure 4 The structural block diagram of an information query device provided by the embodiment of the present application is shown. For the convenience of description, only the parts related to the embodiment of the present application are shown.
[0111] Referring to Figure 4 , the information query device 4 includes:
[0112] A storage module 401, configured to determine and store the storage positions corresponding to each preset tag in the preset storage space of the cuckoo filter based on at least one first hash function in the first hash function set, where the first hash function set includes at least two first hash functions, each first hash function is different and related to each other, and for any preset tag, the storage positions of the preset tag in the preset storage space obtained based on each first hash function are different;
[0113] A setting module 402, configured to associate the cuckoo filter with the preset service so that the preset service can call the cuckoo filter;
[0114] A processing module 403, configured to, if it is determined that the preset service obtains a query request for a to-be-query element, obtain a first tag corresponding to the to-be-query element through a second hash function;
[0115] A first query module 404, configured to query whether a preset tag identical to the first tag is stored in the preset storage space through the cuckoo filter based on the preset service;
[0116] A second query module 405, configured to, if a preset tag identical to the first tag is stored in the preset storage space, query whether target information about the to-be-query element is stored in the cache.
[0117] Optionally, the processing module 403 is specifically configured to:
[0118] If it is determined that the preset service obtains a query request regarding the element to be queried from the target gateway, the first tag corresponding to the element to be queried is obtained through the second hash function.
[0119] Optionally, the processing module 403 is specifically configured to:
[0120] If it is determined that the preset service receives a query request regarding the element to be queried sent by the target gateway according to the address of the preset service obtained from the service registration center, the first tag corresponding to the element to be queried is obtained through the second hash function, where the service registration center registers the preset service and the target gateway.
[0121] Optionally, in the information query device 4, the address of the preset service is returned by the service registration center to the target gateway after receiving an address query request of the target gateway, where the address query request instructs the target gateway to request the service registration center to query the address of the preset service, and the address query request is generated by the target gateway when obtaining a query request regarding the element to be queried and verifying that the source of the query request is the target source, and the preset service is a service matching the query request.
[0122] Optionally, the first query module specifically includes:
[0123] A calculation module, configured to calculate at least one first storage location corresponding to the first tag in the preset storage space of the cuckoo filter based on at least one first hash function in the first hash function set;
[0124] A second query unit, configured to query, based on the preset service, whether a preset tag identical to the first tag is stored in each of the first storage locations through the cuckoo filter until all the first storage locations corresponding to the first tag are traversed, or until it is determined that a preset tag identical to the first tag is stored in the preset storage space.
[0125] Optionally, the information query device 4 further includes:
[0126] A third query unit, configured to query the database for target information regarding the element to be queried if the target information regarding the element to be queried is not stored in the cache.
[0127] An acquisition unit, configured to acquire the target information regarding the element to be queried in the cache if the target information regarding the element to be queried is stored in the cache.
[0128] Optionally, the storage module 401 specifically includes:
[0129] A first determination unit, configured to determine the categories of each preset tag;
[0130] A splitting unit, configured to split the preset storage space of the cuckoo filter, so that the preset storage space includes at least one sub-storage space, where each sub-storage space corresponds to one category;
[0131] A storage unit, configured to determine the storage positions of each preset tag in the corresponding sub-storage space based on at least one first hash function in the first hash function set and store them;
[0132] The processing module 403 includes:
[0133] A second determination unit, configured to determine the category of the element to be queried if it is determined that the preset service obtains a query request for the element to be queried;
[0134] A third determination unit, configured to determine the second hash function corresponding to the element to be queried according to the category of the element to be queried, where different categories correspond to different second hash functions;
[0135] A processing unit, configured to obtain the first tag corresponding to the element to be queried through the corresponding second hash function;
[0136] The first query module 404 specifically includes:
[0137] A fourth determination unit, configured to determine the sub-storage space corresponding to the element to be queried in the preset storage space according to the category of the element to be queried;
[0138] A fourth query unit, configured to query whether a preset tag identical to the first tag is stored in the corresponding sub-storage space through the cuckoo filter based on the preset service.
[0139] In the embodiments of the present application, at least one first hash function in the first hash function set can be used to determine the storage locations corresponding to each preset tag in the preset storage space of the cuckoo filter and store them. The first hash function set includes at least two first hash functions. Therefore, through multiple first hash functions, each preset tag can have multiple corresponding storage locations in the preset storage space of the cuckoo filter, and one of the storage locations is selected to store the preset tag. Each of the first hash functions is different and related to each other. Therefore, in practical applications, based on the storage location corresponding to one of the first hash functions, the storage locations corresponding to other first hash functions can be obtained. Thus, in some cases, through one first hash function, the multiple storage locations corresponding to the preset tag can be quickly found, and one storage location that can be used for storage among the multiple storage locations can be determined. In addition, since the architecture and programming language adopted by the cuckoo filter may be different from the object (such as various applications) that issues the query request, associating the cuckoo filter with a preset service enables the preset service to call the cuckoo filter, which can overcome the problem that the architecture and programming language adopted by the cuckoo filter are different from the object that issues the query request. Thus, through the preset service, the cuckoo filter can be called by various objects that issue query requests for querying, to meet the needs of multiple application scenarios, greatly improving the versatility of the cuckoo filter. If a preset tag identical to the first tag is stored in the preset storage space, it is checked whether target information about the element to be queried is stored in the query cache. At this time, the element to be queried can be filtered through the cuckoo filter, allowing only valid query content to perform subsequent queries on the cache and even the database, thereby avoiding situations such as cache breakdown and maintaining the normal use of the database.
[0140] It should be noted that for the information interaction, execution process, etc. between the above-mentioned devices / units, since they are based on the same concept as the method embodiments of the present application, for their specific functions and the technical effects brought, reference can be specifically made to the method embodiment part, and details are not elaborated here.
[0141] Those skilled in the art can clearly understand that, for the convenience and conciseness of description, only the above division of each functional unit and module is used as an example. In actual applications, the above functions can be allocated to different functional units and modules according to needs, that is, the internal structure of the device is divided into different functional units or modules to complete all or part of the functions described above. Each functional unit and module in the embodiment can be integrated into a processing unit, or each unit can exist physically alone, or two or more units can be integrated into one unit. The above integrated unit can be implemented in the form of hardware or in the form of a software functional unit. In addition, the specific names of each functional unit and module are only for the convenience of mutual distinction and do not limit the protection scope of this application. The specific working processes of the units and modules in the above system can refer to the corresponding processes in the foregoing method embodiments and will not be elaborated herein.
[0142] Figure 5 FIG. is a schematic structural diagram of a terminal device provided by an embodiment of the present application. As Figure 5 shown, the terminal device 5 of this embodiment includes: at least one processor 50 ( Figure 5 only one is shown in the figure), a processor, a memory 51, and a computer program 52 stored in the memory 51 and executable on the at least one processor 50. When the processor 50 executes the computer program 52, the steps in any of the foregoing information query method embodiments are implemented.
[0143] The above terminal device 5 can be a wearable device, an augmented reality (AR) / virtual reality (VR) device, a desktop computer, a notebook, a palm computer, a cloud server, and other computing devices. The terminal device may include, but is not limited to, a processor 50 and a memory 51. Those skilled in the art can understand that Figure 5 merely examples of the terminal device 5 do not constitute a limitation on the terminal device 5, and may include more or fewer components than shown in the figure, or combine some components, or different components. For example, it may further include an input device, an output device, a network access device, etc. Among them, the above input device may include a keyboard, a touchpad, a fingerprint acquisition sensor (for acquiring the fingerprint information and the fingerprint direction information of the user), a microphone, a camera, etc., and the output device may include a display, a speaker, etc.
[0144] The so-called processor 50 may be a Central Processing Unit (CPU), and the processor 50 may also be other general-purpose processors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field-Programmable Gate Arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc.
[0145] In some embodiments, the above-mentioned memory 51 may be an internal storage unit of the above-mentioned terminal device 5, such as the hard disk or memory of the terminal device 5. In other embodiments, the above-mentioned memory 51 may also be an external storage device of the above-mentioned terminal device 5, such as a plug-in hard disk, Smart Media Card (SMC), Secure Digital (SD) card, Flash Card, etc. equipped on the above-mentioned terminal device 5. Further, the above-mentioned memory 51 may also include both the internal storage unit of the above-mentioned terminal device 5 and the external storage device. The above-mentioned memory 51 is used to store an operating system, application programs, a BootLoader, data, and other programs, such as the program code of the above-mentioned computer program. The above-mentioned memory 51 may also be used to temporarily store data that has been output or will be output.
[0146] In addition, although not shown, the above-mentioned terminal device 5 may also include a network connection module, such as a Bluetooth module, Wi-Fi module, cellular network module, etc., which will not be elaborated here.
[0147] In the embodiments of the present application, when the above-mentioned processor 50 executes the above-mentioned computer program 52 to implement the steps in any of the above-mentioned information query method embodiments, it may determine the storage locations corresponding to each preset tag in the preset storage space of the cuckoo filter based on at least one first hash function in the first hash function set and store them. The first hash function set includes at least two first hash functions. Therefore, through multiple first hash functions, each preset tag can have multiple corresponding storage locations in the preset storage space of the cuckoo filter, and one of the storage locations is selected to store the preset tag. Moreover, the first hash functions are different from and related to each other. Therefore, in practical applications, the storage locations corresponding to other first hash functions can be obtained based on the storage location corresponding to one of the first hash functions. Thus, in some cases, the multiple storage locations corresponding to the preset tag can be quickly found through one first hash function, and one storage location that can be used for storage can be determined from the multiple storage locations. In addition, since the architecture and programming language adopted by the cuckoo filter may be different from the object (such as various applications) that issues the query request, the cuckoo filter is associated with a preset service so that the preset service can call the cuckoo filter, which can overcome the problem that the architecture and programming language adopted by the cuckoo filter are different from the object that issues the query request. Thus, through the preset service, the cuckoo filter can be called by various objects that issue query requests for querying to meet the needs of multiple application scenarios, greatly improving the versatility of the cuckoo filter. If a preset tag identical to the first tag is stored in the preset storage space, it is checked whether target information about the element to be queried is stored in the query cache. At this time, the element to be queried can be filtered through the cuckoo filter, and only valid query content is allowed to perform subsequent queries on the cache and even the database, thereby avoiding situations such as cache breakdown and maintaining the normal use of the database.
[0148] The embodiments of the present application also provide a computer-readable storage medium. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps in the above-mentioned method embodiments can be implemented.
[0149] The embodiments of the present application provide a computer program product. When the computer program product runs on a terminal device, the terminal device is caused to execute the steps in the above-mentioned method embodiments.
[0150] When the above integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, to implement all or part of the processes in the above-described embodiment methods of this application, a computer program can be used to instruct the relevant hardware to complete. The above computer program can be stored in a computer-readable storage medium. When the computer program is executed by a processor, the steps of the above various method embodiments can be implemented. Among them, the above computer program includes computer program code, and the above computer program code can be in the form of source code, object code, executable file, or some intermediate form, etc. The above computer-readable medium can at least include: any entity or device that can carry the computer program code to the photographing device / terminal device, recording medium, computer memory, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), electrical carrier signal, telecommunication signal, and software distribution medium. For example, a USB flash drive, a mobile hard disk, a magnetic disk, or an optical disc, etc. In some jurisdictions, according to legislation and patent practice, computer-readable media may not be electrical carrier signals and telecommunication signals.
[0151] In the above embodiments, the descriptions of each embodiment have their own emphases. For parts not detailed or recorded in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0152] Those of ordinary skill in the art can realize that the units and algorithm steps of the examples described in combination with the embodiments disclosed in this article can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods for each specific application to implement the described functions, but such implementation should not be considered to exceed the scope of this application.
[0153] In the embodiments provided in this application, it should be understood that the disclosed device / network device and method can be implemented in other ways. For example, the device / network device embodiments described above are only illustrative. For example, the above-mentioned module or unit division is only a logical function division. In actual implementation, there can be other division methods. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the displayed or discussed coupling or direct coupling or communication connection to each other can be through some interfaces. The indirect coupling or communication connection of the device or unit can be in an electrical, mechanical, or other form.
[0154] The units described above as separate components may or may not be physically separated. The components shown as units may or may not be physical units, that is, they may be located in one place or distributed over multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0155] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit it; although the present application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: they can still modify the technical solutions described in the foregoing embodiments, or perform equivalent replacements on some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the various embodiments of the present application, and should all be included in the protection scope of the present application.
Claims
1. An information query method, characterized in that, Including: Based on at least one first hash function in the first hash function set, determine the storage positions corresponding to each preset label in the preset storage space of the cuckoo filter and store them. Wherein, the first hash function set includes at least two first hash functions, each first hash function is different from and related to each other, and the storage positions corresponding to each first hash function are also related to each other; and for any preset label, the storage positions of the preset label in the preset storage space obtained based on each first hash function are different; the step of determining the storage positions corresponding to each preset label in the preset storage space of the cuckoo filter and storing them based on at least one first hash function in the first hash function set includes: determining the category of each preset label; dividing the preset storage space of the cuckoo filter so that the preset storage space includes at least one sub-storage space, where each sub-storage space corresponds to one category; based on at least one first hash function in the first hash function set, determine the storage positions of each preset label in the corresponding sub-storage space and store them; Associate the cuckoo filter with a preset service so that the preset service can call the cuckoo filter; If it is determined that the preset service obtains a query request regarding a to-be-query element, obtain a first label corresponding to the to-be-query element through a second hash function; Based on the preset service, query whether a preset label identical to the first label is stored in the preset storage space through the cuckoo filter; If a preset label identical to the first label is stored in the preset storage space, query whether target information regarding the to-be-query element is stored in the cache.
2. The information query method according to claim 1, characterized in that, The step of if it is determined that the preset service obtains a query request regarding a to-be-query element, obtaining a first label corresponding to the to-be-query element through a second hash function includes: If it is determined that the preset service obtains a query request regarding a to-be-query element from a target gateway, obtain a first label corresponding to the to-be-query element through a second hash function.
3. The information query method according to claim 2, characterized in that, The step of if it is determined that the preset service obtains a query request regarding a to-be-query element from a target gateway, obtaining a first label corresponding to the to-be-query element through a second hash function includes: If it is determined that the preset service receives a query request regarding a to-be-query element sent by the target gateway according to the address of the preset service obtained from the service registration center, obtain a first label corresponding to the to-be-query element through a second hash function, where the service registration center registers the preset service and the target gateway.
4. The information query method according to claim 3, characterized in that, The address of the preset service is returned by the service registry to the target gateway after receiving the address query request of the target gateway. Among them, the address query request instructs the target gateway to request the service registry to query the address of the preset service, and the address query request is generated by the target gateway when it obtains a query request for the element to be queried and verifies that the source of the query request is the target source. The preset service is a service that matches the query request.
5. The information query method according to claim 1, characterized in that, Based on the preset service, querying whether there is a preset label identical to the first label stored in the preset storage space through the cuckoo filter includes: Based on at least one first hash function in the first hash function set, calculating at least one first storage location corresponding to the first label in the preset storage space of the cuckoo filter; Based on the preset service, querying whether there is a preset label identical to the first label stored in each first storage location through the cuckoo filter until all the first storage locations corresponding to the first label are traversed, or until it is determined that there is a preset label identical to the first label stored in the preset storage space.
6. The information query method according to claim 1, characterized in that, After querying whether there is target information about the element to be queried in the query cache, it further includes: If the target information about the element to be queried is not stored in the cache, query the target information about the element to be queried from the database; If the target information about the element to be queried is stored in the cache, obtain the target information about the element to be queried in the cache.
7. The information query method according to any one of claims 1 to 6, characterized in that, The step of, if it is determined that the preset service obtains a query request for the element to be queried, obtaining the first label corresponding to the element to be queried through the second hash function includes: If it is determined that the preset service obtains a query request for the element to be queried, determining the category of the element to be queried; According to the category of the element to be queried, determining the second hash function corresponding to the element to be queried, where different categories correspond to different second hash functions; Obtaining the first label corresponding to the element to be queried through the corresponding second hash function; Based on the preset service, querying whether there is a preset label identical to the first label stored in the preset storage space through the cuckoo filter includes: According to the category of the element to be queried, determining the sub-storage space corresponding to the element to be queried in the preset storage space; Based on the preset service, querying whether there is a preset label identical to the first label stored in the corresponding sub-storage space through the cuckoo filter.
8. An information query device, characterized in that, Includes: A storage module, configured to determine storage locations corresponding to respective preset tags in a preset storage space of a cuckoo filter based on at least one first hash function in a first set of hash functions, and perform storage, where the first set of hash functions includes at least two first hash functions, the first hash functions are different from and related to each other, and the storage locations corresponding to the first hash functions are also related to each other; and for any preset tag, the storage locations of the preset tag in the preset storage space of the cuckoo filter obtained based on each first hash function are different; the determining storage locations corresponding to respective preset tags in the preset storage space of the cuckoo filter based on at least one first hash function in the first set of hash functions and performing storage includes: determining categories of respective preset tags; partitioning the preset storage space of the cuckoo filter such that the preset storage space includes at least one sub-storage space, where each sub-storage space corresponds to one category; determining storage locations of respective preset tags in the corresponding sub-storage space based on at least one first hash function in the first set of hash functions and performing storage; A setting module, configured to associate the cuckoo filter with a preset service, so that the preset service can call the cuckoo filter; A processing module, configured to, if it is determined that the preset service obtains a query request for a to-be-query element, obtain a first tag corresponding to the to-be-query element through a second hash function; A first query module, configured to query, based on the preset service, whether a preset tag identical to the first tag is stored in the preset storage space through the cuckoo filter; A second query module, configured to, if a preset tag identical to the first tag is stored in the preset storage space, query whether target information about the to-be-query element is stored in a cache.
9. A terminal device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, the information query method according to any one of claims 1 to 7 is implemented.
10. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, the information query method according to any one of claims 1 to 7 is implemented.
Citation Information
Patent Citations
Systems and methods for searching heterogeneous indexes of metadata and tags in file systems
CN107924408A
Data query method and device
CN110096899A