US12639304B1
Pattern recognition in application database queries with scheduled pre-cached data retrieval
Publication
Application
Classifications
IPC Classifications
CPC Classifications
Applicants
DISH Wireless L.L.C.
Inventors
Mahdi Khansari, David Ricardo Bentolila Sapiani, Abbas Ali Khan
Abstract
Technologies directed to pattern recognition in application database queries with scheduled pre-cached data retrieval are described. One method identifies, using a machine learning (ML) model, a query pattern from a set of historical data queries directed to one or more target databases. Each of the historical data queries includes parameters, including a temporal range to retrieve data corresponding to a specific period. The method retrieves, according to the query pattern, pre-retrieved data from the one or more target databases, storing the pre-retrieved data in a cache server. The method receives a subsequent data query from an application after retrieving the pre-retrieved data. The method determines that the subsequent data query matches the query pattern. The method retrieves the pre-retrieved data corresponding to the subsequent data query from the cache server. The method sends the pre-retrieved data corresponding to the subsequent data query to the application.
Get a summary, plain-language explanation, or ask your own question.
Figures
Description
BACKGROUND
[0001]Telecommunication networks, such as cellular networks, have various resources that produce data and metadata concerning operations of the cellular network. Metadata is data that provides information about data. Metadata enriches the data with information about one or more aspects of the data. Metadata insights can facilitate efficient processing and understanding the data. Status reports, including error codes, may be generated which are indicative of deficiencies in operations of the network. With the development of information technology, data to be used in different applications can be large in volume and complex in variety. The data can include a great quantity of diverse information from various data sources/data owners. With the development of communication technologies, such as fifth generation (5G) new radio (NR) cellular networks, applications supporting a massive number of connected devices are enabled. Such applications can be based on data from myriad sources, including third party sources. Obtaining insight of the data can be important to create and capture value from the data, for example, to develop data products.
[0002]The 5G NR cellular networks being cloud-native architectures have created a very vast opportunity to use the data from the network to create service-level agreement (SLA) driven network of networks, private networks, etc. There are opportunities to bring the value from data that is generated by the 5G NR cellular network, given that the cellular network can be an open, secure, flexible, cloud-native network. 5G NR cellular networks now have the capability to build intelligence at every cell tower, at various network tiers from National Data Center, Regional Data Center, Edge Data centers including the Cell Sites. All the components that are software driven can use this opportunity. However, with this opportunity, telecommunication companies will have enormous amounts of data at hand that can lead to automation, orchestration with infinite intelligence driven from the network. This can be monetized with enterprise customers.
[0003]In applications that gather data from databases for time-related reports, users often query data to review the previous week or day. These initial queries can lead to additional queries that depend on the values retrieved, and the variability in these follow-up queries can be significant. Throughout the day and across different projects, users exhibit distinct querying patterns. Processing all of these queries can be time-consuming for the database, leading to considerable delays.
[0004]In addition, there can be a lot of queries to a database. And these queries may not necessarily come from human users. For example, there can be applications, such as report generators, that generate reports. These report generators can be on-demand based on a user's needs. As described above, all of these queries that come to the database are going to take some time to retrieve the data. However, this whole process of querying the database to generate a report is performed on-demand in response to a request from a user.
BRIEF DESCRIPTION OF DRAWINGS
[0005]The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
DETAILED DESCRIPTION
[0014]As described above, processing queries for time-related reports can be time-consuming for a database, leading to considerable delays. Aspects and embodiments of the present disclosure overcome these deficiencies and others by providing a machine learning (ML) system that detects query patterns and pre-processes the relevant data, storing it on a cache server. The ML system can store all queries sent to the database in a data source. The ML system can analyze these queries to detect patterns based on temporal ranges (e.g., date ranges, time ranges, or both) and other query parameters. If a pattern is identified, the ML system can create a scheduled task for the database to retrieve the relevant data in advance and store it in a cache server. This ensures that when similar queries are made, the pre-processed data is already available, reducing query time. A detection algorithm of the ML system can continuously learn from user behavior and adapt by storing the pre-processed data in the cache server. Ultimately, this approach will significantly reduce query response times for those queries that follow identifiable patterns.
[0015]Aspects and embodiments of the present disclosure can recognize the pattern of these data queries and try to proactively obtain the data before it is requested. The data can be stored somewhere, such as a cache server, where the data can be retrieved much faster than querying the target database. By doing so, routine queries or queries from report generators to the database can be done much faster, saving time for the users.
[0016]
[0017]In at least one embodiment, the analytics subsystem 102 is a web application that allows an application user 114 to get data from different data sources (referred to herein as target databases), such as external database 108 and internal database 110, and perform analytics on-demand in response to a request from an application user 114. That is, the analytics subsystem 102 can communicate with the external database 108, the internal database 110, and the automation subsystem 104. As described above, data queries by the analytics subsystem 102 to the external database 108 can take time and can create a bottleneck in generating analytics.
[0018]In at least one embodiment, the automation subsystem 104 is an automation process that can communicate with the analytics subsystem 102, the external database 108, the internal database 110, and the cache database 112. The automation subsystem 104 operates in parallel to the analytics subsystem 102, and can perform different jobs. The automation subsystem 104 can include pattern recognition logic 106. The automation subsystem 104 can include one or more processing nodes that can implement the pattern recognition logic 106 to identify query patterns made by the analytics subsystem 102 to the external database 108. The functionality of the pattern recognition logic 106 is described in more detail below. In at least one embodiment, the automation subsystem 104 can be equipped with one or more ML models that performs some analysis beyond a legacy algorithm of the analytics subsystem 102, such as providing some insights on the data. The one or more ML models can be used to identify query patterns for retrieving data before it is requested by the analytics subsystem 102. The automation subsystem 104 can put the pre-retrieved data (and insights) in a location where it is ready for the analytics subsystem 102 (i.e., the web application). The automation subsystem 104 can store the pre-retrieved data in the cache database 112. In other embodiments, the automation subsystem 104 can include other types of data stores to cache the pre-retrieved data.
[0019]As described above, significant delays can occur when accessing data in the external database 108, causing a bottleneck in generating analytics of the data. The pattern recognition logic 106 can help reduce these significant delays as described in more detail below.
[0020]In at least one embodiment, the analytics subsystem 102 includes a set of application programming interfaces (APIs) 116 that can be used to access data in the external database 108 using API calls (also referred to as API requests). The automation subsystem 104 includes a set of APIs 118 that can also be used to access data in the external database 108 using API calls (or API requests). In general, the pattern recognition logic 106 can proactively recognize the types of different queries that are coming from the application users 114. Once one or more query patterns have been identified by the pattern recognition logic 106, the automation subsystem 104 can retrieve pre-retrieved data from the external database 108 and store it in the cache database 112 before receiving subsequent data queries that match the identified patterns. Now, instead of retrieving data for a subsequent data query from the external database 108, the pre-retrieved data can be retrieved from the cache database 112 quicker. That is, the subsequent data query does not go to the external database 108, rather it goes to the cache database 112. The automation subsystem 104 can intercept the API call and redirect the API call to the cache database 112.
[0021]In at least one embodiment, an application user 114 can make a request for data from the analytics subsystem 102. The analytics subsystem 102 generates an API request to retrieve the data. Before the API request is sent to the external database 108, the pattern recognition logic 106 can determine that the API request matches a query pattern. When the API request matches a query pattern, the automation subsystem 104 can redirect the API request to the cache database 112 instead, since this data has already been pre-retrieved from the external database 108.
[0022]
- [0024]#1 Convert to another data type
- [0025]#2 Remove if Null
- [0026]#3 Fill avg if null
- [0027]#4 Remove If not in the defined list
For the available parameter, the parameter preparation 216 can apply the functions as set forth in the following example:
| Weighted & Filtered Parameters: |
|---|
| KPI_Name | #4 | ||
| Object | #2 | ||
| Time diff. | #1 & #3 | ||
| Granularity | #4 | ||
| Filter Object Type | #4 | ||
| Filter Object List | #2 | ||
[0029]In at least one embodiment, the pattern recognition logic 106 can use one or more machine learning (ML) models. There are several types of ML models that are commonly used to detect patterns in data. The ML model can be any type of model used to recognizing patterns, such as statistical models, neural networks, deep learning models, clustering algorithms, decision trees and random forests, regression models, classification models, or the like. The statistical models can include linear regression or logistic regression, which are used to identify relationships between variables and predict outcomes based on those relationships. Neural networks, which include layers of interconnected nodes, are models that are particularly effective for pattern recognition tasks. Recurrent Neural Networks (RNN) can be used for time series predictions. Deep Learning models are a subset of neural networks. Deep learning models have multiple layers that allow them to learn complex patterns in large datasets. Clustering algorithms, such as k-means and hierarchical clustering, group similar data points together based on their features. Decision Trees and Random Forests are used for classification and regression tasks. They work by splitting the data into subsets based on feature values and making predictions based on the majority class or average value in each subset. To detect patterns in data queries that include temporal ranges, there are several types of machine learning models, such as unsupervised or supervised behavior models, pattern recognition models, etc. Unsupervised behavior models can be trained to monitor and detect patterns and anomalous patterns in user behavior. They can be fine-grained and unsupervised, making them suitable for analyzing temporal ranges in data queries. Pattern recognition models can be used for recognizing patterns in application database queries with scheduled pre-cached data retrieval. They can be particularly useful for detecting temporal patterns in data queries.
[0030]In at least one embodiment, once the API server 206 receives a request (data query), it processes it based on the specified endpoint and parameters. This can involve several steps, including routing, validation, execution, and response. The routing can be determined based on whether the data is already cached or not, such as described herein. The API server 206 can determine which endpoint (target database 212 or cache database 220) the request is targeting and routes it to the appropriate handler or function. The API server 206 can check the parameters to ensure they are valid and meet the required criteria. As described above, the API server 206 can determine if the query should be excluded from the remaining process involving caching and pattern recognition logic 106. The API server 206 can also perform the API parameter fetch 214 and parameter preparation 216 for determining whether the data query matches an identified pattern and its data has already been cached in the cache database 220. The API server 206 can execute the corresponding function or operation of querying either the target database 212 or the cache database 220, performing calculations, or interacting with other services to fulfill the data query. After processing the request, the API server 206 can generate a response (e.g., either the regular response 234 or cached response 232), which typically includes the requested data or a confirmation of the action taken. This response is then sent by the API server 206 back to the user 202, such as via the application UI 204.
[0031]In at least one embodiment, the API parameter fetch 214 and the parameter preparation 216 can be performed by an API prompter that determines whether the data query matches one of the query patterns that has been cached in the cache database 220. Once the parameters for the data query have been fetched and prepared, these parameters are used to determine whether the cache database 220 and the pre-retrieved data is ready. If so, the automation process 200 is going to get the pre-retrieved data from the cache database 220 and send the pre-retrieved data in the cached response 232. If the data is cached, the response to the data query will be faster than making the regular query 210 to the target database 212. In at least one embodiment, the API server 206 can operate or act as an intermediary that receives requests from users (or processes, machines, services, etc.), processes them according to the defined endpoints and parameters, and returns the appropriate responses. The API server 206, however, also includes the capability of determining whether the data has been pre-retrieved using identified query patterns, identified by the pattern recognition logic 106. This process allows users (or processes, machines, services, etc.) to interact with the underlying data and services in a structured and efficient manner.
[0032]As described above, all of the data queries (API calls) are stored in the query database 222. The pattern recognition model 224 can start to detect any pattern in these stored data queries. The pattern recognition model 224 can focus on the timings and comparing them to the current time to find any relation between the data queries. For example, users in a specific area can be looking for some kind of data or using some kind of APIs for the last N number of days. This is something that can be recognized by the pattern recognition model 224. So, if the pattern recognition model 224 can recognize a query pattern, some evaluation checks can be done at block 226. If determined to be accurate, the pre-cache API agent at block 230 can generate a scheduled task to perform the API calls proactively at a specified time so that the data can be pre-retrieved and stored in the cache database 220 before a subsequent data query is made for this data. For example, when a user requests data the next day, the cache database 220 already stores the pre-retrieved data for the request. It should be noted that the pattern recognition model 224 can make everything relative to the current time. For example, a data query can be changed to a user asking for 8-hours ago data, so that is set in the scheduled pre-cache API agent so that the API agent can determine that the data is going to be ready 6 hours ago, so it will schedule it accordingly. It should be noted that the pattern recognition logic 106 may need to convert specific temporal ranges in data queries into relative temporal ranges given that the subsequent data queries will be at a future time. In this manner, the scheduled tasks generated by the pre-cache API agent 122 can be relative to a future current time of the subsequent data query. For example, temporal ranges that specify an absolute time in the system may need to be converted to temporal ranges like “a week ago” or “two days ago” or “last week” or “yesterday” or other timing that is relative to a current time of a subsequent data query. It should also be noted that the pattern recognition logic 106 can have an ML model per user, per organization, per application, or any combination thereof. The pattern recognition logic 106 can use multiple ML models to identify query patterns of the API calls. In other embodiments, the pattern recognition logic 106 uses deterministic algorithms that are not necessarily ML model based.
[0033]In at least one embodiment, the pattern recognition logic 106 can determine if the incoming data query matches one of the query patterns identified by the ML model (e.g., pattern recognition model 224), as described in more detail below. If the data query matches (i.e., is cached), the automation process 200 sends the data query to a cache database 220, and sends a cached response 232 back to the user 202 via the application UI 204.
[0034]If it is determined that the data query is not cached at block 218, the automation process 200 stores a copy of the query in a query database 222. The automation process 200 can send the regular query 210 to the target database 212. A copy of each of the data queries to the target database 212 can be stored in the query database 222. A pattern recognition model 224 can access the copies of the data queries stored in the query database 222 to identify one or more query patterns. Once a query pattern is identified by the pattern recognition model 224, the automation process 200 can evaluate the identified query pattern (block 226) and determine whether the identified query pattern is accurate (block 228). If the identified query pattern is determined to not be accurate at block 228, the automation process 200 can send the regular query 210 to the target database, which sends the regular response 234 back to the application UI 204. If the identified query pattern is determined to be accurate at block 228, the automation process 200 can schedule a pre-cache API agent (block 230) to query the target database 212 to retrieve pre-retrieved data and store the pre-retrieved data in the cache database 220. Thus, when a subsequent data query matches the identified query pattern (i.e., is matched at block 218), the cached response 232 with the pre-retrieved data can be sent back to the application UI 204, instead of making the regular query 210 to the target database 212.
[0035]
[0036]As described above, the pattern recognition logic 106 can perform pattern recognition in application database queries with scheduled pre-cached data retrieval. In applications that gather data from the target database 304 for time-related reports, the user 306 (or process 308 or machine 310) often queries data to review the previous week or day or other specified time period. These initial queries can lead to additional queries that depend on the values retrieved, and the variability in these follow-up queries can be significant. Throughout the day and across different projects, one or more users 306 can exhibit distinct querying patterns. Processing all of these queries can be time-consuming for the target database 304, leading to considerable delays (referred to herein as database performance bottlenecks). The pattern recognition logic 106 aims to detect such patterns and pre-process the relevant data using the agent 316, storing the relevant data for a subsequent data query in the cache 314. As a result, when the user 306 executes queries that match the recognized patterns, the user 306 can access already processed data without waiting for the target database 304. A detection algorithm of the pattern recognition logic 106 can continuously learn from user behavior and adapt by storing the pre-retrieved data (also referred to as pre-processed data) in the cache 314. Ultimately, this approach will significantly reduce query response times for those queries that follow identifiable patterns, reducing the database performance bottlenecks for retrieving data from the target database 304.
[0037]During operation, the analytics system 302 can send the data queries to the target database 304 to retrieve data from the target database 304. In some cases, the query server 312 sends the data queries to the target database 304 to retrieve the data being requested. In other cases, an agent 316 can send the data queries to the target database 304 to pre-retrieve data according to the pattern recognition logic 106. The pattern recognition logic 106 can be part of the query server 312. The pattern recognition logic 106 can store copies of the data queries being made to the target database 304 and identify a query pattern from the copies of the data queries. When the pattern recognition logic 106 identifies a query pattern, the pattern recognition logic 106 can coordinate with the agent 316 to schedule a task to retrieve pre-retrieved data from the target database 304 and store the pre-retrieved data in a cache 314. The pattern recognition logic 106 can coordinate with the agent 316 to send data queries for the identified query pattern in anticipation of subsequent data queries. When a subsequent data query matches the identified query pattern, the query server 312 can retrieve the pre-retrieved data from the cache 314, instead of the target database 304.
[0038]In at least one embodiment, the pattern recognition logic 106 can store all data queries sent to the target database 304 in a data source. This data source can be part of the cache 314 or can be a separate data store that is accessible by the pattern recognition logic 106. In at least one embodiment, the pattern recognition logic 106 includes one or more ML models that can analyze these stored queries to detect patterns based on time ranges and other parameters of the data queries. If a pattern is identified by the one or more ML models, the pattern recognition logic 106 can create one or more scheduled tasks to retrieve the relevant data in advance from the target database 304 and store it in the cache 314. In at least one embodiment, the cache 314 can be implemented in a separate cache server that is communicatively coupled to the query server 312 (or the analytics system 302). This ensures that when the user 306 (or other users) makes similar queries, the pre-processed data is already available in the cache 314, reducing query time.
[0039]
[0040]UE 402 can represent various types of end-user devices, such as cellular phones, smartphones, cellular modems, cellular-enabled computerized devices, sensor devices, gaming devices, access points (APs), any computerized device capable of communicating via a cellular network, etc. Generally, UE can represent any type of device that has an incorporated 5G interface, such as a 5G modem. Examples can include sensor devices, Internet of Things (IoT) devices, manufacturing robots; unmanned aerial (or land-based) vehicles, network-connected vehicles, etc. Depending on the location of individual UEs, UE 402 may use RF to communicate with various base stations of cellular network 406. As illustrated, two base stations are illustrated: base station 408 can include: base station structure 404, RU 410, and DU 414. Base station structure 404 may be any structure to which one or more antennas (not illustrated) of the base station are mounted. Base station structure 404 may be a dedicated cellular tower, a building, a water tower, or any other human-made or natural structure to which one or more antennas can reasonably be mounted to provide cellular coverage to a geographic area. Similarly, base station 408 can include: base station structure 404, RU 410, and DU 414.
[0041]Real-world implementations of system 400 can include many (e.g., thousands) of base stations and many CUs and 5G core 424. Base station Structure 404 can include one or more antennas that allow RUs 410 to communicate wirelessly with UEs 402. RUs 410 can represent an edge of cellular network 406 where data is transitioned to wireless communication. The radio access technology (RAT) used by RU 410 may be 5G New Radio (NR), or some other RAT. The remainder of cellular network 406 may be based on an exclusive 5G architecture, a hybrid 4G/5G architecture, a 4G architecture, or some other cellular network architecture. Base station 408 may include an RU 410 and a DU 414.
[0042]One or more RUs 410 may communicate with DU 414. As an example, at a possible cell site, three RUs may be present, each connected with the same DU. Different RUs may be present for different portions of the spectrum. For instance, a first RU may operate on the spectrum in the citizens broadcast radio service (CBRS) band while a second RU may operate on a separate portion of the spectrum, such as, for example, band 71. One or more DUs 414 may communicate with CU 420. Collectively, an RU, DU, and CU create a gNodeB, which serves as the radio access network (RAN) of cellular network 406. CU 420 can communicate with 5G core 424. The specific architecture of cellular network 406 can vary by embodiment. Edge cloud server systems outside of cellular network 406 may communicate, either directly, via the Internet, or via some other network, with components of cellular network 406. For example, DU 414 may be able to communicate with an edge cloud server system without routing data through CU 420 or 5G core 424. Other DUs may or may not have this capability.
[0043]While
[0044]In a possible virtualized O-RAN implementation, CU 420, 5G core 424, and/or orchestrator 422 can be implemented virtually as software being executed by general-purpose computing equipment, such as in a data center of a cloud-computing platform, as detailed herein. Therefore, depending on needs, the functionality of a CU, and/or 5G core may be implemented locally to each other and/or specific functions of any given component can be performed by physically separated server systems (e.g., at different server farms). For example, some functions of a CU may be located at a same server facility as where the DU is executed, while other functions are executed at a separate server system. In the illustrated embodiment of system 400, cloud-based cellular network components 418 include CU 420, 5G core 424, and orchestrator 422. Such cloud-based cellular network components 418 may be executed as specialized software executed by underlying general-purpose computer servers. Cloud-based cellular network components 418 may be executed on a third-party cloud-based computing platform or a cloud-based computing platform operated by the same entity that operates the RAN. A cloud-based computing platform may have the ability to devote additional hardware resources to cloud-based cellular network components 418 or implement additional instances of such components when requested.
[0045]Kubernetes, or some other container orchestration platform, can be used to create and destroy the logical CU or 5G core units and subunits as needed for the cellular network 406 to function properly. Kubernetes allows for container deployment, scaling, and management. As an example, if cellular traffic increases substantially in a region, an additional logical CU or components of a CU may be deployed in a data center near where the traffic is occurring without any new hardware being deployed. (Rather, processing and storage capabilities of the data center would be devoted to the needed functions.) When the need for the logical CU or subcomponents of the CU no longer exists, Kubernetes can allow for removal of the logical CU. Kubernetes can also be used to control the flow of data (e.g., messages) and inject a flow of data to various components. This arrangement can allow for the modification of nominal behavior of various layers.
[0046]The deployment, scaling, and management of such virtualized components can be managed by orchestrator 422. Orchestrator 422 can represent various software processes executed by underlying computer hardware. Orchestrator 422 can monitor cellular network 406 and determine the amount and location at which cellular network functions should be deployed to meet or attempt to meet service level agreements (SLAs) across slices of the cellular network.
[0047]Orchestrator 422 can allow for the instantiation of new cloud-based components of cellular network 406. As an example, to instantiate a new core function, orchestrator 422 can perform a pipeline of calling the core function code from a software repository incorporated as part of, or separate from, cellular network 406; pulling corresponding configuration files (e.g., helm charts); creating Kubernetes nodes/pods; loading the related core function containers; configuring the core function; and activating other support functions (e.g., Prometheus, instances/connections to test tools).
[0048]A network slice functions as a virtual network operating on cellular network 406. Cellular network 406 is shared with some number of other network slices, such as hundreds or thousands of network slices. Communication bandwidth and computing resources of the underlying physical network can be reserved for individual network slices, thus allowing the individual network slices to reliably meet defined SLA parameters. By controlling the location and amount of computing and communication resources allocated to a network slice, the quality of service (QOS) and quality of experience (QoE) for UE can be varied on different slices. A network slice can be configured to provide sufficient resources for a particular application to be properly executed and delivered (e.g., gaming services, video services, voice services, location services, sensor reporting services, data services, etc.). However, resources are not infinite, so allocation of an excess of resources to a particular UE group and/or application may be desired to be avoided. Further, a cost may be attached to cellular slices: the greater the amount of resources dedicated, the greater the cost to the user; thus, optimization between performance and cost is desirable.
[0049]Particular network slices may only be reserved in particular geographic regions. For instance, a first set of network slices may be present at RU 410 and DU 414, a second set of network slices, which may only partially overlap or may be wholly different from the first set, may be reserved at the other RU 410 and DU 414.
[0050]Further, particular cellular network slices may include some number of defined layers. Each layer within a network slice may be used to define QoS parameters and other network configurations for particular types of data. For instance, high-priority data sent by a UE may be mapped to a layer having relatively higher QoS parameters and network configurations than lower-priority data sent by the UE that is mapped to a second layer having relatively less stringent QoS parameters and different network configurations.
[0051]Components such as DUs 414, CU 420, orchestrator 422, and 5G core 424 may include various software components that are required to communicate with each other, handle large volumes of data traffic, and are able to properly respond to changes in the network. In order to ensure not only the functionality and interoperability of such components, but also the ability to respond to changing network conditions and the ability to meet or perform above vendor specifications, significant testing must be performed.
[0052]5G core 424, which can be physically distributed across data centers or located at a central national data center (NDC), can perform various core functions of the cellular network. 5G core 424 can include: network resource management components; policy management components; subscriber management components; and packet control components. Individual components may communicate on a bus, thus allowing various components of 5G core 424 to communicate with each other directly. 5G core 424 is simplified to show some key components. Implementations can involve additional other components.
[0053]Network resource management components can include network repository function (NRF) and network slice selection function (NSSF). NRF can allow 5G network functions (NFs) to register and discover each other via a standards-based application programming interface (API). NSSF can be used by access and mobility management function (AMF) to assist with the selection of a network slice that will serve a particular UE.
[0054]Policy management components can include charging function (CHF) and policy control function (PCF). CHF allows charging services to be offered to authorized network functions. Converged online and offline charging can be supported. PCF allows for policy control functions and the related 5G signaling interfaces to be supported.
[0055]Subscriber management components can include unified data management (UDM) and authentication server function (AUSF). UDM can allow for generation of authentication vectors, user identification handling, NF registration management, and retrieval of UE individual subscription data for slice selection. AUSF performs authentication with UE.
[0056]Packet control components can include access and mobility management function (AMF) and session management function (SMF). AMF can receive connection- and session-related information from UE and is responsible for handling connection and mobility management tasks. SMF is responsible for interacting with the decoupled data plane, creating, updating, and removing protocol data unit (PDU) sessions, and managing session context with the user plane function (UPF).
[0057]User plane function (UPF) can be responsible for packet routing and forwarding, packet inspection, QoS handling, and external PDU sessions for interconnecting with a data network (DN) (e.g., the Internet) or various access networks. Access networks can include the RAN of cellular network 406.
[0058]5G core 424 may reside on a cloud computing platform. While from a client's or user's point of view, the “cloud” can be envisioned as an ephemeral computing workspace that occupies no physical space, in reality, a cloud computing platform is an interconnected group of data centers throughout which computing and storage resources are spread. Therefore, data centers may be scattered geographically and can provide redundancy.
[0059]As illustrated in
[0060]As described herein, the data platform can be implemented in a cloud computing system, providing data storage, data warehousing, real-time data processing, analytic engines for large-scale data processing, ML/AI services, data flow for stream and batch processing, or other data services. The data platform can provide a web application, such as automation and analytics platform 100 of
[0061]As illustrated in
[0062]
[0063]While a network infrastructure component 500 configured as described may be used in some embodiments, in various other embodiments, the network infrastructure component 500 may be implemented using devices of various types and configurations, and having various components. The memory 502 may include the pattern recognition logic 106 which contains computer-executable instructions that, when executed by the CPU 504, cause the network infrastructure component 500 to perform the operations and functions described herein. For example, the programs referenced above, which may be stored in computer memory 502, may include or be comprised of such computer executable instructions. The memory 502 may also include a network infrastructure component data structure. In another embodiment, one or more memories can store instructions that, when executed by one or more processors, causes the one or more processors to perform the operations and functions described herein.
[0064]In at least one embodiment, the pattern recognition logic 106 can be part of a data platform. The data platform performs the core functions of the network infrastructure component 500, as discussed herein. In particular, the data platform facilitates the management of creating, modifying, saving, and deploying executable code for collecting, processing, and storing data of a cellular network. The data platform can facilitate the management of data produced, consumed, stored, or otherwise used or accessible by consumers of the data. Additionally, the data platform may allow the network infrastructure controller to provide a microservice, data product, etc., to another network infrastructure controller, allow the network infrastructure controller to enforce data governance rules, perform audits, etc., of data produced by, stored on, used by, etc., other network infrastructure controllers, and perform other functions to manage the data platform as described herein.
[0065]In an example embodiment, the pattern recognition logic 106 can be implemented as hardware logic or computer-executable instructions stored on memory 502 of the network infrastructure component 500. The pattern recognition logic 106 can be implemented using standard programming techniques. For example, the computer executable instructions of the pattern recognition logic 106 stored on memory 502 of the network infrastructure component 500 may be implemented as a “native” executable running on CPU 504, along with one or more static or dynamic libraries. In other embodiments, the computer-executable instructions of the pattern recognition logic 106 stored on memory 502 of the network infrastructure component 500 may be implemented as instructions processed by a virtual machine that executes as some other program.
[0066]The embodiments described above may also use synchronous or asynchronous client-server computing techniques. However, the various components may be implemented using more monolithic programming techniques as well, for example, as an executable running on a single CPU computer system, or alternatively decomposed using a variety of structuring techniques known in the art, including but not limited to, multiprogramming, multithreading, client-server, or peer-to-peer, running on one or more computer systems each having one or more CPUs. Some embodiments may execute concurrently and asynchronously, and communicate using message passing techniques. Equivalent synchronous embodiments are also supported. Also, other functions could be implemented or performed by each component/module, and in different orders, and by different components/modules, yet still achieve the functions of the network infrastructure component 500.
[0067]In addition, programming interfaces to the data stored as part of the pattern recognition logic 106 can be available by standard mechanisms such as through C, C++, C#, Java, and web APIs; libraries for accessing files, databases, or other data repositories; through scripting languages such as JavaScript and VBScript; or through Web servers, File Transfer Protocol (FTP) servers, or other types of servers providing access to stored data. The pattern recognition logic 106 may be implemented by using one or more database systems, file systems, or any other technique for storing such information, or any combination of the above, including implementations using distributed computing techniques.
[0068]Different configurations and locations of programs and data are contemplated for use with techniques described herein. A variety of distributed computing techniques are appropriate for implementing the components of the embodiments in a distributed manner including but not limited to TCP/IP sockets, RPC, RMI, HTTP, Web Services (XML-RPC, JAX-RPC, SOAP, and the like). Other variations are possible. Also, other functionality could be provided by each component/module, or existing functionality could be distributed amongst the components/modules in different ways, yet still achieve the functions of the network infrastructure component 500 and network infrastructure components.
[0069]Furthermore, in some embodiments, some or all of the components/portions of the pattern recognition logic 106, or functionality provided by the computer-executable instructions stored on memory 502 of the network infrastructure component 500 may be implemented or provided in other manners, such as at least partially in firmware or hardware, including, but not limited to, one or more application-specific integrated circuits (ASICs), standard integrated circuits, controllers (e.g., by executing appropriate instructions, and including microcontrollers or embedded controllers), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and the like. Some or all of the system components or data structures may also be stored as contents (e.g., as executable or other machine-readable software instructions or structured data) on a computer readable medium (e.g., as a hard disk; a memory; a computer network or cellular wireless network; or a portable media article to be read by an appropriate drive or via an appropriate connection, such as a DVD or flash memory device) so as to enable or configure a non-transitory computer-readable medium or one or more associated computing systems or devices to execute or otherwise use or provide the contents to perform at least some of the described techniques. The non-transitory computer-readable storage medium includes instructions that when executed by a computing system, cause the computing system to perform operations described herein. Such computer program products may also take other forms in other embodiments. Accordingly, embodiments of this disclosure may be practiced with other computer system configurations.
[0070]In general, a range of programming languages may be employed for implementing any of the functionality of the servers, functions, user equipment, etc., present in the example embodiments, including representative implementations of various programming language paradigms and platforms, including but not limited to, object-oriented (e.g., Java, C++, C#, Visual Basic.NET, Smalltalk, and the like), functional (e.g., ML, Lisp, Scheme, and the like), procedural (e.g., C, Pascal, Ada, Modula, and the like), scripting (e.g., Perl, Ruby, PHP, Python, JavaScript, VBScript, and the like) and declarative (e.g., SQL, Prolog, and the like).
[0071]
[0072]Referring to
[0073]In a further embodiment, the processing logic can receive the plurality of historical data queries from one or more applications directed to the one or more target databases, and store a copy of each of the plurality of historical data queries in a data store. The processing logic, at block 602, can identify the query pattern by identifying, using the ML model and the plurality of parameters, the query pattern in the copies of the plurality of historical data queries in the data store. In at least one embodiment, the plurality of historical data queries received from one or more applications are API calls (or API requests) from the one or more application. Similarly, the subsequent data query can be a subsequent API call (or API request).
- [0075]SELECT*FROM sales WHERE sale date BETWEEN ‘2024 Jan. 1’ AND ‘2024 Dec. 31’;
[0076]In a further embodiment, the processing logic can identify, using the ML model and the plurality of parameters, a second query pattern in the copies of the plurality of historical data queries in the data store. The processing logic can create a second scheduled task for the second query pattern to retrieve second pre-retrieved data from the one or more target databases. The processing logic can retrieve, using the second scheduled task, the second pre-retrieved data from the one or more target databases and stores the second pre-retrieved data in the cache server. The processing logic can repeat this for additional query patterns identified.
[0077]In a further embodiment, the processing logic receives a second subsequent data query from a second application after retrieving the second pre-retrieved data. The processing logic determines that the second subsequent data query matches the second query pattern. The processing logic retrieves the second pre-retrieved data corresponding to the second subsequent data query from the cache server. The processing logic sends the second pre-retrieved data corresponding to the second subsequent data query to the second application. The processing logic can repeat this for other subsequent data queries that match any of the identified query patterns.
[0078]In at least one embodiment, the application is a report generator that generates automated time-related reports using the pre-retrieved data corresponding to the subsequent data query. In another embodiment, the application can be other processes. In other embodiments, the queries can be received from a user, a machine (physical or virtual), a service, or the like.
[0079]In at least one embodiment, the application is executed by a network component of a cellular network. In at least one embodiment, the application is executed in an automation and analytics platform associated with a cellular network. The automation and analytics platform includes the ML model. In at least one embodiment, the automation and analytics platform includes an automation subsystem with the ML model, and an analytics subsystem with the application. In at least one embodiment, the application is a web application associated with a cellular network.
[0080]
[0081]Referring to
[0082]In at least one embodiment, the plurality of historical data queries received from one or more applications are API calls (or API requests) from the one or more application. Similarly, the subsequent data query can be a subsequent API call (or API request).
[0083]In at least one embodiment, the temporal range includes a time range, a date range, or a combination of both.
[0084]In at least one embodiment, the processing logic identifies, using the ML model and the plurality of parameters, a second query pattern in the copies of the plurality of data queries in the data store. The processing logic creates a second scheduled task for the second query pattern to retrieve second pre-retrieved data from the target database. The processing logic retrieves, using the second scheduled task, the second pre-retrieved data from the target database and stores the second pre-retrieved data in the cache server.
[0085]In at least one embodiment, the processing logic receives a second subsequent data query from a second application after retrieving the second pre-retrieved data. The processing logic determines that the second subsequent data query matches the second query pattern. The processing logic retrieves the second pre-retrieved data corresponding to the second subsequent data query from the cache server. The processing logic sends the second pre-retrieved data corresponding to the second subsequent data query to the second application.
[0086]In at least one embodiment, the application is a report generator that generates automated time-related reports using the pre-retrieved data corresponding to the subsequent data query. In another embodiment, the application can be other processes. In other embodiments, the queries can be received from a user, a machine (physical or virtual), a service, or the like.
[0087]In at least one embodiment, the application is executed by a network component of a cellular network. In at least one embodiment, the application is executed in an automation and analytics platform associated with a cellular network. The automation and analytics platform includes the ML model. In at least one embodiment, the automation and analytics platform includes an automation subsystem with the ML model, and an analytics subsystem with the application. In at least one embodiment, the application is a web application associated with a cellular network.
[0088]
[0089]The one or more data sources 814 can be located in different sites either on the same network or entirely different networks. Each data source 814 can have its own data included in data files. The data of each data source 814 can include structured data, unstructured data, or both. Structured data refers to data that is organized in a specific format or structure, making it easy to search, process, and analyze using automated tools. This data is typically stored in databases, spreadsheets, or other data management systems. Structured data is characterized by the presence of clearly defined fields, columns, and rows, and often follows a consistent format or syntax. Examples of structured data include financial data, inventory data, customer information, and transactional data. Unstructured data refers to data that is not organized in a specific format or structure, making it difficult to process and analyze using automated tools. This data is often created in a free-form manner and does not follow a consistent syntax. For example, unstructured data is a conglomeration of many varied types of data that are stored in their native formats, which can result in irregularities and ambiguities that make it difficult to understand as compared to structured data. Examples of unstructured data can include emails, social media posts, audio and video recordings, images, and text documents. Unstructured data is more difficult to analyze and interpret than structured data because it requires natural language processing and other advanced techniques to extract insights and meaning. However, unstructured data can provide valuable insights into customer sentiment, market trends, and other areas that are not easily captured by structured data.
[0090]The computing system 802 can include one or more computing devices, such as a server. The number of computing devices may be scaled (e.g., increased or decreased) automatically as per the computation resources needed. The various functional components of the computing system 802 may be installed on one or more computers as separate functional components or as different modules of a same functional component. For example, the various components of the computing system 802 can be implemented as computer programs installed on one or more computers in one or more locations that are coupled to each through a network. In cloud-based systems for example, these components can be implemented by individual computing nodes of a distributed computing system. The query server 818 can identifying, using the pattern recognition logic 106, a query pattern from a plurality of historical data queries directed to one or more target databases. Each of the plurality of historical data queries includes a plurality of parameters. At least one of the plurality of parameters comprises a temporal range to retrieve data corresponding to a specific period. The query server 818 can retrieve, according to the query pattern, pre-retrieved data from the one or more target databases and storing the pre-retrieved data in a cache server. The query server 818 can receive a subsequent data query from an application after retrieving the pre-retrieved data. In at least one embodiment, the application is executed by a network component of a cellular network. In at least one embodiment, the application is executed in an automation and analytics platform associated with a cellular network. The automation and analytics platform includes the ML model. In at least one embodiment, the automation and analytics platform includes an automation subsystem with the ML model, and an analytics subsystem with the application. Alternatively, the query server 818 can receive a subsequent data query from a process, a user, a service, a machine, or the like. The query server 818 can determine that the subsequent data query matches the query pattern. The query server 818 can retrieve the pre-retrieved data corresponding to the subsequent data query from the cache server. The query server 818 can send the pre-retrieved data corresponding to the subsequent data query to the application. The query server 818 can perform other operations as described herein, such as the operations described above with respect to method 600 of
[0091]The user device 816 can include personal computer, mobile communication device, and other devices that can communicate with the computing system 802 over the network 804. The network 804 can include a local area network (“LAN”), wide area network (“WAN”), the Internet, or a combination thereof. Each data source 814 can include one or more computing devices, such as a server. Each data source 814 can have its own database that stores its data files and corresponding data dictionaries.
[0092]Embodiments of the subject matter and the actions and operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, e.g., one or more modules of computer program instructions, encoded on a computer program carrier, for execution by, or to control the operation of, data processing apparatus. The carrier may be a tangible non-transitory computer storage medium. Alternatively or in addition, the carrier may be an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium can be or be part of a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them. A computer storage medium is not a propagated signal.
[0093]The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. Data processing apparatus can include special-purpose logic circuitry, e.g., an FPGA (field programmable gate array), an ASIC (application-specific integrated circuit), or a GPU (graphics processing unit). The apparatus can also include, in addition to hardware, code that creates an execution environment for computer programs, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
[0094]A computer program can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages; and it can be deployed on a system of one or more computers in any form, including as a stand-alone program, e.g., as an app, or as a module, component, engine, subroutine, or other unit suitable for executing in a computing environment, which environment may include one or more computers interconnected by a data communication network in one or more locations.
[0095]A computer program may, but need not, correspond to a file in a file system. A computer program can be stored in a portion of a file that holds other programs or data, e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, e.g., files that store one or more modules, sub-programs, or portions of code.
[0096]The processes and logic flows described in this specification can be performed by one or more computers executing one or more computer programs to perform operations by operating on input data and generating output. The processes and logic flows can also be performed by special-purpose logic circuitry, e.g., an FPGA, an ASIC, or a GPU, or by a combination of special-purpose logic circuitry and one or more programmed computers.
[0097]Computers suitable for the execution of a computer program can be based on general or special-purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a central processing unit for executing instructions and one or more memory devices for storing instructions and data. The central processing unit and the memory can be supplemented by, or incorporated in, special-purpose logic circuitry.
[0098]Generally, a computer will also include, or be operatively coupled to, one or more mass storage devices, and be configured to receive data from or transfer data to the mass storage devices. The mass storage devices can be, for example, magnetic, magneto-optical, or optical disks, or solid state drives. However, a computer need not have such devices.
[0099]Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device, e.g., a universal serial bus (USB) flash drive, to name just a few.
[0100]To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on one or more computers having, or configured to communicate with, a display device, e.g., a LCD (liquid crystal display) or organic light-emitting diode (OLED) monitor, a virtual-reality (VR) or augmented-reality (AR) display, for displaying information to the user, and an input device by which the user can provide input to the computer, e.g., a keyboard and a pointing device, e.g., a mouse, a trackball or touchpad. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback and responses provided to the user can be any form of sensory feedback, e.g., visual, auditory, speech or tactile; and input from the user can be received in any form, including acoustic, speech, or tactile input, including touch motion or gestures, or kinetic motion or gestures or orientation motion or gestures. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's device in response to requests received from the web browser, or by interacting with an app running on a user device, e.g., a smartphone or electronic tablet. Also, a computer can interact with a user by sending text messages or other forms of message to a personal device, e.g., a smartphone that is running a messaging application, and receiving responsive messages from the user in return.
[0101]This specification uses the term “configured to” in connection with systems, apparatus, and computer program components. That a system of one or more computers is configured to perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. That one or more computer programs is configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions. That special-purpose logic circuitry is configured to perform particular operations or actions means that the circuitry has electronic logic that performs the operations or actions.
[0102]Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface, a web browser, or an app through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
[0103]The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server transmits data, e.g., an HTML page, to a user device, e.g., for purposes of displaying data to and receiving user input from a user interacting with the device, which acts as a client. Data generated at the user device, e.g., a result of the user interaction, can be received at the server from the device.
[0104]While this specification contains many specific implementation details, these should not be construed as limitations on the scope of what is being claimed, which is defined by the claims themselves, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially be claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claim may be directed to a sub-combination or variation of a sub-combination.
[0105]Similarly, while operations are depicted in the drawings and recited in the claims in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0106]Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous.
Claims
What is claimed is:
1. A method comprising:
receiving, by a computer system, a plurality of data queries from one or more applications directed to a target database, wherein each data query of the plurality of data queries comprises a plurality of parameters, wherein at least one parameter of the plurality of parameters comprises a temporal range to retrieve data corresponding to a specific period, wherein the receiving the plurality of data queries from one or more applications comprises receiving a plurality of application programming interface (API) calls from the one or more applications;
in response to receiving the plurality of data queries:
storing a copy of each data query of the plurality of data queries in a data store of the computer system;
identifying, using a machine learning (ML) model executed on the computer system and the plurality of parameters, a query pattern in the copies of the plurality of data queries in the data store;
creating, by the computer system, a scheduled task for the query pattern to retrieve pre-retrieved data from the target database;
retrieving, using the scheduled task, the pre-retrieved data from the target database and storing the pre-retrieved data in a cache server;
receiving a subsequent data query from an application after the retrieving the pre-retrieved data, wherein receiving the subsequent data query comprises receiving a subsequent API call of the plurality of API calls from the one or more applications;
determining that the subsequent data query matches the query pattern;
retrieving the pre-retrieved data corresponding to the subsequent data query from the cache server; and
sending the pre-retrieved data corresponding to the subsequent data query to the application.
2. The method of
3. The method of
identifying, using the ML model and the plurality of parameters, a second query pattern in the copies of the plurality of data queries in the data store;
creating a second scheduled task for the second query pattern to retrieve second pre-retrieved data from the target database; and
retrieving, using the second scheduled task, the second pre-retrieved data from the target database and storing the second pre-retrieved data in the cache server.
4. The method of
receiving a second subsequent data query from a second application after retrieving the second pre-retrieved data;
determining that the second subsequent data query matches the second query pattern;
retrieving the second pre-retrieved data corresponding to the second subsequent data query from the cache server; and
sending the second pre-retrieved data corresponding to the second subsequent data query to the second application.
5. A computing system comprising:
one or more processors; and
one or more memories storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
receiving, by a computer system, a plurality of data queries from one or more applications directed to a target database, wherein each data query of the plurality of data queries comprises a plurality of parameters, wherein at least one parameter of the plurality of parameters comprises a temporal range to retrieve data corresponding to a specific period, and wherein receiving the plurality of data queries from one or more applications comprises receiving a plurality of application programming interface (API) calls from the one or more applications;
in response to receiving the plurality of data queries:
storing a copy of each data query of the plurality of data queries in a data store of the computer system;
identifying, using a machine learning (ML) model executed on the computer system and the plurality of parameters, a query pattern in the copies of the plurality of data queries in the data store;
creating, by the computer system, a scheduled task for the query pattern to retrieve pre-retrieved data from the target database;
retrieving, using the scheduled task, the pre-retrieved data from the target database and storing the pre-retrieved data in a cache server;
receiving a subsequent data query from an application after retrieving the pre-retrieved data, wherein receiving the subsequent data query comprises receiving a subsequent API call of the plurality of API calls from the one or more applications;
determining that the subsequent data query matches the query pattern;
retrieving the pre-retrieved data corresponding to the subsequent data query from the cache server; and
sending the pre-retrieved data corresponding to the subsequent data query to the application.
6. The computing system of
7. The computing system of
8. The computing system of
identifying, using the ML model and the plurality of parameters, a second query pattern in the copies of the plurality of data queries in the data store;
creating a second scheduled task for the second query pattern to retrieve second pre-retrieved data from the target database; and
retrieving, using the second scheduled task, the second pre-retrieved data from the target database and storing the second pre-retrieved data in the cache server.
9. The computing system of
receiving a second subsequent data query from a second application after retrieving the second pre-retrieved data;
determining that the second subsequent data query matches the second query pattern;
retrieving the second pre-retrieved data corresponding to the second subsequent data query from the cache server; and
sending the second pre-retrieved data corresponding to the second subsequent data query to the second application.
10. A device comprising:
a processor; and
memory storing instructions that, when executed by the processor, cause the processor to perform operations comprising:
receiving, by a computer system, a plurality of data queries from one or more applications directed to a target database, wherein each data query of the plurality of data queries comprises a plurality of parameters, wherein at least one parameter of the plurality of parameters comprises a temporal range to retrieve data corresponding to a specific period, and wherein receiving the plurality of data queries from one or more applications comprises receiving a plurality of application programming interface (API) calls from the one or more applications;
in response to receiving the plurality of data queries:
storing a copy of each data query of the plurality of data queries in a data store of the computer system;
identifying, using a machine learning (ML) model executed on the computer system and the plurality of parameters, a query pattern in the copies of the plurality of data queries in the data store;
creating, by the computer system, a scheduled task for the query pattern to retrieve pre-retrieved data from the target database;
retrieving, using the scheduled task, the pre-retrieved data from the target database and storing the pre-retrieved data in a cache server;
receiving a subsequent data query from an application after retrieving the pre-retrieved data, wherein receiving the subsequent data query comprises receiving a subsequent API call of the plurality of API calls from the one or more applications;
determining that the subsequent data query matches the query pattern;
retrieving the pre-retrieved data corresponding to the subsequent data query from the cache server; and
sending the pre-retrieved data corresponding to the subsequent data query to the application.
11. The device of
12. The device of
13. The device of
identifying, using the ML model and the plurality of parameters, a second query pattern in the copies of the plurality of data queries in the data store;
creating a second scheduled task for the second query pattern to retrieve second pre-retrieved data from the target database; and
retrieving, using the second scheduled task, the second pre-retrieved data from the target database and storing the second pre-retrieved data in the cache server.
14. The device of
receiving a second subsequent data query from a second application after retrieving the second pre-retrieved data;
determining that the second subsequent data query matches the second query pattern;
retrieving the second pre-retrieved data corresponding to the second subsequent data query from the cache server; and
sending the second pre-retrieved data corresponding to the second subsequent data query to the second application.