System and method for managing system data aggregation and transformation using client-specific criteria

CN115698976BActive Publication Date: 2026-08-11OPTX SOLUTIONS LLC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-01-15
Publication Date
2026-08-11

Smart Images

  • Figure CN115698976B_ABST
    Figure CN115698976B_ABST
Patent Text Reader

Abstract

A method may include receiving instructions to execute a stored procedure at a database system in a timely manner, retrieving the schema of the database structure used by a management system of a client entity, determining the identifier of the management system and the data type to be retrieved for the client entity. The method may further include, in response to determining the identifier and the data type to be retrieved, determining criteria to be used in a dynamic query based on the identifier and the data type to be retrieved. The method may further include, in response to determining the criteria, generating a dynamic query including the criteria in the stored procedure, executing the stored procedure to retrieve raw data from the database used by the management system, and using the dynamic query to transform the raw data into transformed data.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application claims the benefit of U.S. Provisional Application Serial No. 62 / 962,084, filed January 16, 2020, entitled "System and Method for Management System Data Aggregation and Transformation Using Client-Specific Criteria". The provisional application is incorporated herein by reference, as described in its entirety below. Technical Field

[0003] This disclosure relates to a database system. More specifically, this disclosure relates to systems and methods for managing system data aggregation and transformation using client-specific standards. Background Technology

[0004] Entities such as corporations, law firms, companies, and / or any business operations may generate large amounts of data. For example, an entity may operate multiple hotels in different locations, either in the same or different geographic areas. There may be different systems used for management. Within these different systems, there may be different categories of data generated and stored in databases. Entities may wish to view the data stored in the databases to generate various reports and / or use the data to perform analyses. Summary of the Invention

[0005] The representative embodiments described herein disclose various techniques for implementing systems and methods for managing system data aggregation and transformation using client-specific standards.

[0006] In one embodiment, a method may include receiving instructions to execute a stored procedure at a database system in a first-time manner, retrieving a schema of a database structure used by a management system of a client entity, determining an identifier of the management system and a data type to be retrieved for the client entity. In response to determining the identifier and the data type to be retrieved, the method may further include determining criteria to be used in a dynamic query based on the identifier and the data type to be retrieved. In response to determining the criteria, the method may further include generating a dynamic query in the stored procedure that includes the criteria, executing the stored procedure to retrieve raw data from the database used by the management system, and using the dynamic query to transform the raw data into transformed data.

[0007] In some embodiments, a tangible, non-transitory computer-readable medium storing instructions, which, when executed, cause a processing device to perform one or more of the operations described above. In some embodiments, a system may include a memory storing the instructions and a processor communicatively coupled to the memory. The processor may execute the instructions to perform one or more of the operations described above.

[0008] Other technical features will be apparent to those skilled in the art from the following drawings, description and claims. Attached Figure Description

[0009] For a detailed description of the exemplary embodiments, reference will now be made to the accompanying drawings, in which:

[0010] Figure 1 A high-level component diagram illustrating an illustrative system architecture according to certain embodiments of the present disclosure is shown;

[0011] Figure 2 A block diagram of tables in a database according to certain embodiments of the present disclosure is shown;

[0012] Figure 3 A block diagram of an example data flow according to certain embodiments of the present disclosure is shown;

[0013] Figure 4 Example operations of a method for generating dynamic queries using client entities according to certain embodiments of this disclosure are shown;

[0014] Figure 5 Example operations of a method for generating a second dynamic query using a second standard of a second client entity, according to certain embodiments of this disclosure, are shown;

[0015] Figure 6 Example operations of a method for executing a stored procedure at a second time to retrieve second data created after the runtime date of a stored procedure executed at a first time, according to certain embodiments of the present disclosure, are shown; and

[0016] Figure 7 An example computer system is shown.

[0017] Symbols and terms

[0018] Various terms are used to refer to specific system components. Different entities may refer to components by different names—this application does not intend to distinguish between components with different names but the same function. In the following discussion and claims, the terms "comprising" and "including" are used in an open-ended manner and should therefore be interpreted as "including but not limited to...". Furthermore, the terms "coupled" or "multiple couples" are intended to refer to indirect or direct connections. Thus, if a first device is coupled to a second device, the connection can be either a direct connection or an indirect connection via other devices and connections.

[0019] The terminology used herein is for describing particular exemplary embodiments only and is not intended to be limiting. As used herein, the singular forms “a,” “an,” and “the” may also include the plural forms unless the context clearly indicates otherwise. The method steps, processes, and operations described herein should not be construed as necessarily requiring them to operate in a particular order discussed or described unless explicitly determined. It should also be understood that additional or alternative steps may be employed.

[0020] The terms first, second, third, etc., may be used herein to describe various elements, components, regions, layers, and / or parts; however, these elements, components, regions, layers, and / or parts should not be limited by these terms. These terms are only used to distinguish one element, component, region, layer, or part from another. Terms used herein, such as “first,” “second,” and other numerical terms, do not imply order or sequence unless explicitly indicated by the context. Therefore, the first element, component, region, layer, or part discussed below may be referred to as the second element, component, region, layer, or part without departing from the teachings of the exemplary embodiments. The phrase “at least one,” when used with a list of items, means that different combinations of one or more of the listed items may be used, and that only one item from the list may be required. For example, “at least one of A, B, and C” includes any combination of: A, B, C, A and B, A and C, B and C, and A and B and C. In another example, the phrase “one or more” when used with a list of items means that there may be one item or any appropriate number of items.

[0021] Furthermore, the various functions described below can be implemented or supported by one or more computer programs, each formed by computer-readable program code and embodied in a computer-readable medium. The terms "application program" and "program" refer to one or more computer programs, software components, instruction sets, procedures, functions, objects, classes, instances, associated data, or portions thereof, adapted to be implemented in appropriate computer-readable program code. The phrase "computer-readable program code" includes any type of computer code, including source code, object code, and executable code. The phrase "computer-readable medium" includes any type of medium that can be accessed by a computer, such as read-only memory (ROM), random access memory (RAM), hard disk drive, optical disc (CD), digital video disc (DVD), solid-state drive (SSD), flash memory, or any other type of memory. "Non-transitory" computer-readable media does not include wired, wireless, optical, or other communication links that transmit transient electrical or other signals. A non-transitory computer-readable medium includes media that can permanently store data and media that can store data and subsequently overwrite it, such as rewritable optical discs or erasable storage devices.

[0022] The term "client entity" can refer to an organization that operates at least one management system, with which the database system communicates.

[0023] The term "raw data" can refer to data stored in a first format by a management system used by a client entity.

[0024] The term "converted data" can refer to data that has been converted to a second format based on a standard tailored for the client entity.

[0025] Definitions of other specific words and phrases are provided in this patent application. Those skilled in the art will understand that, in many cases (if not most), such definitions apply to the prior and future use of the words and phrases defined in this way. Detailed Implementation

[0026] Client entities, such as hotels, companies, corporations, and / or any suitable organization, may utilize management systems to operate their businesses. For example, management systems can include types such as hotel management systems, food and beverage management systems, etc. The management systems used by client entities can be different instances of the same type or completely different types. Management systems can generate and / or store large amounts of raw data in various formats from various sources, such as databases, database collection objects (tables), flat files, comma-separated value (CSV) files and other delimited files, text files, spreadsheet files, etc.

[0027] Client entities can also use content management systems (CMS) that can optimize the lifecycle of file and document management and / or improve business operations. CMS can perform predictive data analytics, allowing users to take action based on the predictions. For example, predictive analytics can track business operations, files, records, and tasks and suggest which content should be reviewed to improve results.

[0028] Receiving large amounts of raw data in various formats from various sources used by a content management system (CMS) from a single client entity and / or multiple client entities can be inefficient and / or infeasible. However, in order to perform analysis and / or generate reports from the raw data stored in the CMS, it is necessary to provide the CMS with data from the CMS, where the raw data is transformed to be compatible with the schema of the database used by the CMS in terms of processing time, memory usage, and / or network usage.

[0029] Therefore, embodiments of this disclosure may relate to a database system capable of acquiring raw data from various management systems used by various client entities, transforming the raw data into transformed data, and providing the transformed data for use by a content management system. The database system may be schema-independent for the data source of the management system from which the raw data is obtained. The data source of the management system can use any suitable schema, and the disclosed techniques can achieve efficient extraction, transformation to a unified schema for the content management system, and loading into the content management system. The database system may use predefined or artificial intelligence-generated standards based on the data type to be extracted, the management system type, and / or client entities specified in the schema.

[0030] The disclosed techniques utilize a single job (e.g., a stored procedure) that identifies patterns from various data sources across different management systems and determines criteria for retrieving and / or transforming raw data to conform to patterns used by the content management system. The stored procedure enables workflows to simultaneously extract and transform similar types of raw data from the management system and load the transformed data into the content management system. Compared to traditional systems that use stored procedures with numerous sequential (e.g., continuous) operations to extract, transform, and load data, the disclosed techniques improve the processing of data aggregation and migration.

[0031] For example, a database system can collect raw data or information from one or more sources within one or more management systems used by client entities. The database system can connect to the management system via a secure network connection, virtual private network, or tunnel. The database system can execute stored procedures to retrieve the raw data and store it in the database system's database.

[0032] Raw data collected can be processed using standards tailored to specific data types, management systems, and / or client entities to transform it into transformed data. For example, two client entities might use the same type of management system but define different field names for the same type of data. Therefore, a standard can specify that the same type of raw data from the management systems of both client entities is transformed using their respective field names. For this purpose, when retrieving data of the same type, dynamic queries can be generated using the different standards for each client entity. In some embodiments, raw data of the same type from the management systems of two client entities can use the same naming convention. In this case, the same standard can be used in the dynamic queries generated for these client entities.

[0033] As described above, parallel processing can be used in this disclosure to acquire and / or transform data. For example, workflows for each data type to be retrieved can be executed concurrently in parallel, rather than sequentially. This parallel processing can improve the time efficiency and / or processing efficiency of retrieval by reducing the amount of time that processing devices spend retrieving, transforming, and / or loading data. The retrieved data can be stored in appropriate tables in a database of a database system and transformed according to the standards of different client entities, data types, and / or management systems. The transformed data can be loaded into a database associated with the client entity. The database from which the transformed data is loaded may be the same as or different from the database from which the original data was retrieved.

[0034] Compared to traditional systems, the disclosed technologies offer numerous advantages. These technologies can provide a schema-independent database system for the management system from which raw data is extracted, transformed, and loaded into the content management system. These technologies can improve the efficiency of extracting, transforming, and loading data from sources used by the management system and / or its users into the content management system. Furthermore, the disclosed technologies can reduce the amount of processing resources used by processing devices by using parallel processing to retrieve data. The disclosed technologies can achieve interoperability between multiple different management systems with different raw data formats by converting client-specific standard-based raw data into a uniform format used by the schema of the content management system.

[0035] Figure 1A high-level component diagram of an illustrative system architecture 100 according to certain embodiments of the present disclosure is shown. In some embodiments, system architecture 100 may include computing devices 101 and 102, a database system 116, and / or a third-party database 130 communicatively coupled via a network 112. As used herein, a database system refers to, but is not limited to, any remote or remote computing system accessed via a network link. Each of computing devices 101 and 102 may include one or more processing devices, memory devices, and network interface devices.

[0036] The network interface devices of computing devices 101 and 102 can communicate via wireless protocols for short-range data transmission, such as Bluetooth, ZigBee, and Near Field Communication (NFC). Furthermore, the network interface devices can transmit data over long distances, and in one example, computing devices 101 and / or 102 can communicate with network 112. Network 112 can be a public network (e.g., connected to the Internet via wired (Ethernet) or wireless (WiFi), a private network (e.g., a Local Area Network (LAN), Wide Area Network (WAN), Virtual Private Network (VPN)) or a combination thereof.

[0037] Computing device 101 can be any suitable computing device, such as a laptop, tablet, smartphone, server, or computer. Computing device 101 can run a management system 150 (referred to herein as a “source application”) implemented in computer instructions stored on a memory device and executed by a processing device. Management system 150 can be of some type, such as a hotel management system, a food and beverage management system, etc. Management system 150 can generate and / or store raw data 151 used by management system 150. Raw data 151 can have a first format, including the type of raw data 151, the naming convention of raw data 151, the size of raw data 151, etc. The first format can be configured by a client entity that sets management system 150 to operate on computing device 101.

[0038] Although only one computing device 101 is shown, it should be understood that there may be multiple computing devices 101 operated by multiple client entities. Each computing device 101 may run the same type of management system 150 and / or different types of management systems 151. Therefore, the first format of the raw data 151 may differ between management systems 150 of the same type running on computing device 101, or the first format of the raw data may be the same between management systems 150 of the same type. The first format of the raw data 151 may be defined in a first schema specifying the structure of the raw data 151. The raw data 151 may be stored in one or more databases, one or more database collection objects, one or more flat files, one or more CSV files and / or other delimited files, one or more text files, one or more spreadsheet files, etc. The raw data 151 may be associated with player information, reservation information, points information, food and beverage information, reward information, game information, preference information, etc.

[0039] In some embodiments, the third-party database 130 may be hosted on a separate computing device that communicates with the computing device 101 running the management system 150. The raw data 151 used by the management system 150 may be stored in the third-party database 130, which may serve as a source of the raw data 151 for the management system 150. In some embodiments, the third-party database 130 may be hosted by the computing device 101.

[0040] Computing device 102 may execute content management system 105. Content management system 105 may be implemented in computer instructions stored on one or more memory devices of computing device 102 and may be executed by one or more processing devices of computing device 102. Content management system 105 may be any suitable software application capable of managing content, improving business workflows, analyzing data, and making predictions. Content management system may receive transformed data 111 from database system 116. As further described herein, transformed data 111 may be transformed using client entity-specific standards. Standards may classify, map, and / or transform raw data 151 in a first format into transformed data 111 in a second format. In some embodiments, the first and second formats are different. For example, a first client entity may use the names “f and b” to represent food and beverage information in raw data 151 generated using a first type of management system 150, while a second client entity may use the names “food and bev” to represent food and beverage information in raw data 151 generated using a first type of management system 150. The standard of the first client entity can specify that “f and b” in the first format of the converted data 111 is mapped to “food and beverage” in the second format, while the standard of the second client entity can specify that “food and bev” in the first format of the converted data 111 is mapped to “food and beverage” in the second format.

[0041] In some embodiments, the database computing system 116 may include one or more servers 128 forming a distributed, grid, and / or peer-to-peer (P2P) computing architecture. Each of the servers 128 may include one or more processing devices, storage devices, data storage, and / or network interface devices. The servers 128 may communicate with each other via any suitable communication protocol. The servers 128 may use a schedule stored in the database 129 to perform jobs (e.g., stored procedures) periodically, scheduled, and / or on demand. The database 129 may be hosted by one of the servers 128, and multiple databases 129 may be deployed to perform the disclosed techniques. The servers 128 may perform jobs to collect raw data 151 from each management system 150 and / or source (e.g., third-party database 130) used by the client entities, transform the raw data 151 into transformed data 111 to be used by the content management system 105, and load the transformed data 111 into the database used by the content management system 105. In some embodiments, the raw data 151 is transformed in the job using a generated dynamic query that uses standards specifically tailored for the client entities, the type of management system 150, and / or the type of data.

[0042] In some embodiments, the database computing system 116 may include a training engine 152 and / or one or more machine learning models 154. The training engine 152 and / or one or more machine learning models 154 may be communicatively coupled to a server 128, or may be included in one of the servers 128. In some embodiments, the training engine 152 and / or machine learning models 154 may be included in computing devices 101 and / or 102.

[0043] One or more machine learning models 154 may reference model artifacts created by training engine 152 using training data including training inputs and corresponding target outputs (the correct answers to the respective training inputs). Training engine 152 may find patterns in the training data that map training inputs to target outputs (the answers to be predicted) and provide machine learning models 154 that capture these patterns. This set of machine learning models 154 may include, for example, single-layer linear or non-linear operations (e.g., support vector machines [SVM]) or deep networks, i.e., machine learning models that include multiple layers of non-linear operations. Examples of such deep networks are neural networks, including but not limited to convolutional neural networks, recurrent neural networks with one or more hidden layers, and / or fully connected neural networks.

[0044] In some embodiments, training data may include inputs in the data format of the raw data 151 used by the management system 150 and standard relevant outputs used in dynamic queries. Training data may also include other inputs, such as the type of management system 150, the type of data, the type of content management system 150, the schema of the database structure, etc., which correspond to the standard relevant outputs to be used in dynamic queries.

[0045] In some embodiments, a trained machine learning model 154 may receive input from a pattern that defines the structure (e.g., a first format) of the raw data and output one or more standards for the raw data to transform the raw data into a structure (e.g., a second format) specified in a second pattern. In some embodiments, machine learning models 60 are linked such that their outputs are used as inputs to each other.

[0046] In some embodiments, database system 116 may include an application programming interface (API) communicatively coupled to third-party database 130 via network 112. The API may be implemented as computer instructions stored on one of the servers 128 and executed by a processing device of one of the servers 128. Third-party database 130 may store raw data 151. The API may retrieve raw data 151 from third-party database 130 to perform the techniques disclosed herein.

[0047] Figure 2A block diagram of tables in a database 129 according to certain embodiments of the present disclosure is shown. These tables may include a client table 200, a client system mapping table 202, a client system table 204, a custom query table 206, a query table 208, and a query run table 210. In some embodiments, any suitable number of tables may be used to implement the disclosed techniques. These tables may consist of records and fields for storing data, using a model of vertical columns and horizontal rows. Each table may include a primary key, which is a unique identifier for each row in each table. In some embodiments, each table may include one or more secondary keys that link to primary keys in other tables.

[0048] In some embodiments, client table 200 may contain data about client entities, such as name, address, phone number, region, country, database name, schema name, creator, creation timestamp, modifier, modification timestamp, activity status, language, primary key, parent identifier, etc. Client table 200 may store data for each client entity of the operation management system 150, which is communicatively coupled to database system 116.

[0049] In some embodiments, the client system mapping table 202 may contain data about the management systems used by client entities. The client system mapping table 202 can associate client entities with the management systems used by those entities. For example, the data in the client system mapping table 202 may include a primary key, a management system identifier, a client entity identifier, a link name (e.g., the name of the content management system that the management system links to), etc. A single client entity can be associated with multiple management systems. For example, a single client entity can use a hotel management system and a certain other management system, which are mapped accordingly in the client system mapping table 202. Therefore, management systems of the same type can be mapped to multiple different client entities in the client system mapping table 202. For example, a management system of type A can be mapped to multiple different client entities in the client system mapping table 202.

[0050] In some embodiments, Client System Table 204 may contain data about a third-party database management system (referred to herein as a "management system") used by a client entity. Management systems may include hotel management systems, food and beverage management systems, etc. It should be noted that a particular type of management system is not unique to a specific client entity, but can be used by multiple client entities as separate instances. For example, different instances of the same management system (e.g., Management System A) may be used by different client entities. Data in Client System Mapping Table 202 may include management system name, management system version, management system purpose, creator, creation timestamp, modifier, modification timestamp, etc.

[0051] In some embodiments, custom query table 206 may contain data about custom queries used by a particular client entity to request data that exists in its own database but not in the database of another client entity. Custom queries may reside in custom query table 206, which is separate from query table 208.

[0052] In some embodiments, query table 208 contains data about how to retrieve and process each piece of data from a management system used by a client entity and / or a source database used by the management system of a client entity. A query can refer to a set of instructions and criteria used to request data and / or information from a database. Custom query table 206 can include data for management system identifiers, primary keys, query tags, query text, etc. A management system identifier can identify the management system from which data will be collected by the client entity. As previously described, management system information is stored in client system table 204. Query tags can refer to annotations for each specific query text that identify the data type the query will retrieve from the management system of the client entity. Query text can refer to criteria (e.g., SQL statements) used to categorize data from table and / or database collection objects using query strings and / or query methods. The query text may be unique for each management system for each client entity. In some embodiments, the query text may be the same for the same type of management systems for different client entities.

[0053] For example, some client entities may store food and beverage data using different naming conventions and / or data types. One client entity might refer to the data as "f and b," while another client entity might refer to the data as "food and beverage" within the same type of food and beverage management system. Therefore, query text can be customized for certain management systems, certain types of data, and / or certain client entities. In another example, different client entities might refer to the data as "food and beverage" for the same type of food and beverage management system. In this case, the same query text can be defined and / or dynamically created for different client entities.

[0054] 1 2 Players DECLARE @Run… 3 4 HotelArrivals DECLARE @Run…

[0055] Table 1

[0056] 2 Management System A 1 A certain management system 4 Management System B 1 Hotel Management System

[0057] Table 2

[0058] The following description is for illustrative purposes. As mentioned above, Table 1 is an example of query table 208, including the first row with Id 1, which contains instructions (e.g., standard) in the QueryText regarding how to retrieve and transform player-level data (QueryTag) from SystemId 2. By cross-referencing the client system table 204 shown in Table 2, SystemId 2 corresponds to the row with SystemName "Management System A" and SystemPurpose "Management System X".

[0059] Furthermore, as mentioned above, Table 1 includes a second row with Id 3, which contains instructions (e.g., standard) in the QueryText regarding how to retrieve and transform HotelArrivals-level data (QueryTag) from SystemId 4. By cross-referencing Client System Table 204 shown in Table 2, SystemId 4 corresponds to the row with SystemName "Management System B" and SystemPurpose "Hotel Management System".

[0060] In some embodiments, querying the run table 210 may include data (e.g., a stored procedure) storing the last run date of a job. When a scheduler specifies that a job should be executed at a time following the last run date of the previous job run, the job may collect raw data created after the last run date of the job. That is, only the raw data may be retrieved, transformed, and loaded into the database used by the content management system 105, which was subsequently created based on a timestamp after the previous run of the job.

[0061] Figure 3 A block diagram 300 illustrating an example data flow according to certain embodiments of the present disclosure is shown. At block 302, database system 116 may execute a job (e.g., a stored procedure) at a first moment. The stored procedure may include information relating to: (i) how raw data 151 is retrieved from one or more management systems 150 or from one or more client entities (e.g., a third-party database 130), (ii) the client entity from which the raw data 151 is extracted, (iii) which management systems 150 are used by the client entity, and / or (iv) a schema defining the database structure used by the client entity, as well as other information.

[0062] At box 304, database system 116 can access tables 200, 202, 204, 206, 208, and 210 in database 129 to obtain additional instructions, identify the data type to be retrieved, and / or identify criteria for generating dynamic queries for specific client entities, systems, and / or data types.

[0063] At box 306, the execution of a stored procedure by database system 116 may result in database system 116 accessing the source of management system 150 and / or client entities. Database system 116 may retrieve raw data 151 from the source of management system 150 and / or client entities via a secure network connection, virtual private network, or tunnel.

[0064] At box 308, the retrieved raw data 151 can be stored at a location specified for the raw data 151 on database 129. As previously mentioned, the raw data 151 can have different data formats for different management systems and / or client entities. In some embodiments, database system 116 can convert the raw data 151 into transformed data 111 using specific standards tailored to a particular client entity before storing the transformed data 111 in database 129. In some embodiments, database system 116 can store the raw data 151 in database 129 and convert the raw data 151 into transformed data 111 before loading the transformed data 111 into the database used by content management system 105.

[0065] The example standard can perform various transformation functions, such as converting values ​​with source parameter names in a data source (e.g., database, collection object, file, etc.) to target parameter names in a data target. For example, a data field named "MEMBERSHIP_CARD_NO" used by a management system 150 for a client entity can be converted to a data field named "PlayerId" for storage in a database of a content management system with a second schema. The standard for each client entity can classify the original data 151 into transformed data 111 based on the type of management system 150 and / or the type of data to be transformed.

[0066] At box 310, database system 116 can transfer the transformed data 111 from database 129 to the various databases used by content management system 105 for each client entity. The transformed data 111 can conform to the schema of the database structure used by content management system 105 and can be stored in the database.

[0067] At box 312, database system 116 can execute operating system tasks and / or job schedules set in application job scheduling that are running on one of servers 128. Database system 116 can return to box 302 to execute the job again. Database system 116 can retrieve only the original data 151 created after the last run date of the previous job execution.

[0068] Figure 4Example operations of a method 400 for generating dynamic queries using client entities according to certain embodiments of this disclosure are illustrated. Method 400 can be executed by processing logic, which may include hardware (circuit, dedicated logic, etc.), software, or a combination of both. Each of the methods 400 and / or their respective functions, subroutines, or operations may be implemented by a computing device (e.g., [implementation details missing]). Figure 1 The method 400 may be executed by one or more processing devices of any component (server 128) of the database system 116. The method 400 may be implemented as computer instructions stored on a memory device and may be executed by one or more processing devices. In some implementations, the method 400 may be executed by a single processing thread. Alternatively, the method 400 may be executed by two or more processing threads, each implementing the operation of one or more separate functions, routines, subroutines, or methods.

[0069] At box 402, the processing device can receive instructions to execute a stored procedure at the database system 116 at the first opportunity. In some embodiments, instructions can be received periodically based on a schedule running via the operating system of the database system 116, and the processing device can store the last execution date of the stored procedure.

[0070] At box 404, the processing device can retrieve the schema of the database structure used by the management system 150 of the client entity (e.g., a hotel management system, a food and beverage management system, etc.). The schema can be specified in a stored procedure and / or dynamically determined by querying the management system 150 of the client entity.

[0071] At box 406, the processing device can determine the identifier of the management system 150 and the data type to be retrieved for the client entity, where the data type is specified in the schema. Example data types may include player information, reservation information, game information, reward information, food and beverage information, etc.

[0072] At box 408, in response to determining the identifier of management system 150 and the data type to be retrieved for the client entity, the processing device can determine the criteria to be used in the dynamic query based on the identifier of management system 150 and the data type to be retrieved for the client entity. As discussed herein, criteria can be specifically tailored for the client entity based on the identifier of management system 150 and the data type to be retrieved for the client entity.

[0073] At box 410, in response to determining a criterion, the processing device can generate a dynamic query that includes that criterion. Generating a dynamic query may include assigning values ​​to parameters in the dynamic query using the criterion. For example, a dynamic query may be represented as: “SELECT @SQL = QueryText, @QueryId = Id FROM table.Queries WHERE SystemId = @CMSSystemId and QueryTag = 'Adjustments'”. “QueryText” can represent the criterion, “QueryId” can represent the identifier of the query, “SystemId” can represent the identifier of the management system 150, and “QueryTag” can represent the data type that the query can retrieve from the management system 150. The SQL statement can select QueryText in the appropriate field in query table 208.

[0074] At box 412, the processing device may execute a stored procedure to retrieve data from a database used by the management system 150 of the client entity and convert the original data 151 into transformed data using a dynamic query. In some embodiments, the processing device may convert the data into transformed data based on a second schema of a second structure of a second database used by the content management system 105 of the client entity. The processing device may store the transformed data in the original data format in database 129 before or after the original data 151 is converted into transformed data 111.

[0075] Figure 5 Example operations of a method 500 for generating a second dynamic query using a second standard of a second client entity, according to certain embodiments of the present disclosure, are shown. Method 500 includes operations performed by a computing device (e.g., computing device 101) implementing method 500. Figure 1 The operations of method 500 are performed by the processor of any component (server 128) of the database system 116. In some embodiments, one or more operations of method 500 are implemented in computer instructions stored on a memory device and executed by a processing device. Method 500 may be performed in the same or similar manner as method 400 described above. Figure 4 The method 400 operations are combined in a certain way.

[0076] At box 502, the processing device can retrieve a second client entity (e.g., different from...). Figure 4 The management system 150 (e.g., with the first client entity in the system) Figure 4 The second schema of the second structure of the second database used by the same type of management system 150.

[0077] At box 504, the processing device can determine the identifier of the management system 150 and the data type to be retrieved for the second client entity, wherein the data type to be retrieved for the second client entity is specified in the second schema. The identifier of the management system 150 can be related to... Figure 4 The client entities use the same identifier for the management system.

[0078] At box 505, in response to determining the identifier of the management system and the data type to be retrieved for the second client entity, the processing device can determine the second criterion to be used in the dynamic query based on the identifier of the management system and the data type to be retrieved for the second client entity. If Figure 4 The identification and management system of China Figure 5 The identifiers in the management system are the same, and must be for Figure 4 Client entities and Figure 5 If the data type retrieved by the second client entity in the dataset is the same, then the first and second criteria may be the same. If... Figure 4 The identification and management system of the middle management system Figure 5 The identifiers for the central management system are the same, but must be for Figure 4 The data types for client-side entity retrieval differ from those required for... Figure 5 The data type of the client entity retrieval in the file is then... Figure 4 The standards in China may differ from those in other countries. Figure 5 The second standard in the process.

[0079] At box 510, in response to determining the second criterion, the processing device may generate a second dynamic query that includes the second criterion. Generating the second dynamic query may include assigning values ​​to parameters in the dynamic query using the second criterion. In some embodiments, the criterion and the second criterion may be different. In some embodiments, the criterion may be the same.

[0080] At box 512, the processing device can execute a second dynamic query to retrieve second data from a database used by the management system of the second client entity. In some embodiments, the processing device can use a workflow designed to execute the dynamic and second dynamic queries in parallel to retrieve data and second data, both of which have data types. For example, SQL Server Integration Services (SSIS) can be used to execute dynamic queries in parallel. In some embodiments, separate dynamic queries can be generated for each type of data to retrieve from the management system. If there are five management systems of the same type, including player information, five different dynamic queries (with the same or different criteria) can be generated to retrieve player information in parallel using a workflow designed for player information. Such a workflow layer can reduce processing resource consumption by executing the dynamic queries in each workflow in parallel.

[0081] Figure 6 Example operation of method 600 according to certain embodiments of the present disclosure is illustrated. Method 600 is used to execute a stored procedure at a second time to retrieve second data created after the run date of a stored procedure executed at a first time. Method 600 includes a computing device (e.g., implementing method 600) Figure 1 The operations of method 600 are performed by the processor of any component (server 128) of the database system 116. In some embodiments, one or more operations of method 600 are implemented in computer instructions stored on a memory device and executed by a processing device. Method 600 may be performed in the same or similar manner as method 400 described above. Various operations of method 600 may be combined Figure 4 The operation of method 400 and / or the above Figure 5 The operation is executed using method 500.

[0082] At box 602, the processing device may store the execution date when the stored procedure is first executed (as referenced above). Figure 4 (As described in method 400). The execution date may include the timestamp of the last execution of the stored procedure.

[0083] At box 604, the processing device may receive a second instruction based on a schedule to execute a stored procedure at a second time, which is after the first time. The processing device may retrieve client entities (and... Figure 4 The management system 150 uses the same database structure schema as the client entities in the database. The processing device can determine the identifier of the management system and the data type to be retrieved for the client entities. In response to determining the identifier of the management system and the data type to be retrieved for the client entities, the processing device can determine the criteria used in the second dynamic query based on the identifier of the management system and the data type to be retrieved for the client entities. In some embodiments, when the identifier of the management system and the data type to be retrieved are the same at the first time the instruction is received and at the second time the second instruction is received, the criteria used in the second dynamic query can be the same as those referenced above. Figure 4 The same standards are used in the dynamic queries described.

[0084] At box 606, the processing device can generate a second dynamic query to be included in the stored procedure to transform second raw data 151 from the database used by the management system 150 of the client entity into second transformed data 111 using a standard. The second raw data 151 is created after the last run date of the first execution of the stored procedure.

[0085] The processing device can execute a stored procedure to retrieve the second raw data 151 and convert the second raw data 151 into the second transformed data 111 using a standard. The processing device can store the transformed data 111 in a second database used by the content management system 105 so that reporting, analysis, prediction, etc., can be performed on the transformed data 111.

[0086] Figure 7 An example computer system 700 is illustrated, which can perform any or more of the methods described herein. In one example, computer system 700 may correspond to one or more servers 128 of computing device 101, computing device 102, database system 116, or... Figure 1 The database system 116 includes one or more training engines 152. The computer system 700 can execute... Figure 1 The system includes a management system 150, a content management system 105, and / or a hosted database 130. The computer system 700 can be connected (e.g., networked) to other computer systems in a LAN, intranet, extranet, or the Internet. The computer system 700 can operate with server capabilities in a client-server network environment. The computer system 700 can be a personal computer (PC), tablet computer, wearable device (e.g., wristband), set-top box (STB), personal digital assistant (PDA), mobile phone, camera, camcorder, or any device capable of executing a set of instructions (sequentially, in parallel, or otherwise) specifying the actions to be taken by the device. Furthermore, while only a single computer system is described, the term "computer" should also be considered as encompassing any collection of computers that individually or jointly execute a set (or more) of instructions to perform any one or more methods discussed herein.

[0087] Computer system 700 includes processing device 702, main memory 704 (e.g., read-only memory (ROM), solid-state drive (SSD), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM)), static memory 706 (e.g., solid-state drive (SSD), flash memory, static random access memory (SRAM)) and data storage device 708, which communicate with each other via bus 710.

[0088] Processing device 702 represents one or more general-purpose processing devices, such as microprocessors, central processing units, etc. More specifically, processing device 702 may be a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, or a processor that implements other instruction sets or combinations of instruction sets. Processing device 702 may also be one or more special-purpose processing devices, such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), network processors, etc. Processing device 702 is configured to execute instructions for performing any of the operations and steps discussed herein.

[0089] Computer system 700 may also include a network interface device 712. Computer system 700 may also include a video display 714 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), one or more input devices 716 (e.g., a keyboard and / or mouse), and one or more speakers 718 (e.g., speakers). In an exemplary example, the video display 714 and the input devices 716 may be combined into a single component or device (e.g., an LCD touchscreen).

[0090] Data storage device 716 may include computer-readable medium 720 on which instructions 722 embodying any one or more methods or functions described herein are stored. During execution of instructions 722 by computer system 700, instructions 722 may also reside wholly or at least partially in main memory 704 and / or processing device 702. Therefore, main memory 704 and processing device 702 also constitute computer-readable media. Instructions 722 may also be transmitted or received on network 112 via network interface device 712.

[0091] Although computer-readable storage medium 720 is shown as a single medium in the illustrative example, the term "computer-readable storage medium" should be considered to include a single medium or multiple media (e.g., a centralized or distributed database, and / or associated caches and servers) that store one or more sets of instructions. The term "computer-readable storage medium" should also be considered to include any medium capable of storing, encoding, or carrying a set of instructions for machine execution, and causing the machine to perform any one or more methods of this disclosure. Therefore, the term "computer-readable storage medium" should be considered to include, but is not limited to, solid-state memory, optical media, and magnetic media.

[0092] Various aspects, embodiments, implementation methods, or features of the described embodiments can be used individually or in any combination. The embodiments disclosed herein are modular in nature and can be used in conjunction with or coupled to other embodiments, including statically and dynamically based devices. Furthermore, the embodiments disclosed herein can use selected devices so that they can identify individual users and automatically calibrate threshold multiples of weight targets and other personalized parameters for those users.

Claims

1. A method for managing system data aggregation and transformation using client-specific standards, comprising: Receive instructions to execute stored procedures in the database system immediately; Retrieve the schema of the database structure used by the management system of the client entity; Determine the identifier of the management system and the data type to be retrieved for the client entity, wherein the data type is specified in the schema; In response to determining the identifier and data type of the management system, criteria to be used in the dynamic query are determined, wherein determining the criteria includes: The pattern is then input into the trained machine learning model; Receive the standard as the output of the trained machine learning model; The dynamic query is generated during the stored procedure; Establish a secure network connection between the database system and the management system; Execute the stored procedure that includes the dynamic query, wherein executing the stored procedure includes: Retrieve raw data from a database associated with the management system via the secure network connection; and The original data is converted into transformed data associated with the standard.

2. The method according to claim 1, further comprising: Retrieve the second schema of the second structure of the second database used by the management system of the second client entity; The identifier of the management system and the data type to be retrieved for the second client entity are determined, wherein the data type to be retrieved for the second client entity is specified in the second mode; In response to determining the identifier of the management system and the data type to be retrieved for the second client entity, a second criterion to be used in the second dynamic query is determined based on the identifier of the management system and the data type to be retrieved for the second client entity. In response to determining the second criterion, a second dynamic query including the second criterion is generated in the stored procedure; Retrieve second raw data from the database used by the management system of the second client entity; and The second dynamic query is used to convert the second original data into the second transformed data.

3. The method of claim 2, wherein, Generating the dynamic query includes assigning values ​​to the parameters in the dynamic query using the criteria, and generating the second dynamic query includes assigning a second value to the second parameter in the second dynamic query using the second criteria.

4. The method of claim 2, wherein, The standard mentioned is different from the second standard.

5. The method of claim 2, wherein, The standard is the same as the second standard.

6. The method according to claim 2, wherein: The mode is different from the second mode, and During the execution of the stored procedure, the retrieval of the original data and the second original data are performed respectively, as well as the transformation of the original data and the second original data into the transformed data and the second transformed data.

7. The method of claim 2, further comprising using a workflow designed to execute the dynamic query and the second dynamic query in parallel to convert the original data into the converted data, and to convert the second original data into the second converted data.

8. The method according to claim 1, wherein, The method further includes receiving the instructions periodically based on a schedule, and the method also includes: Store the execution date of the stored procedure; A second instruction to execute the stored procedure based on the schedule is received at a second time, which is after the first time. A second dynamic query is generated to be included in the stored procedure, wherein the second dynamic query uses the criteria to transform second raw data from the database used by the management system of the client entity into second transformed data, wherein the second raw data was created after the run date of the first execution of the stored procedure; and The stored procedure is executed to retrieve the second original data, and the second original data is converted into the second converted data using the standard.

9. The method according to claim 1, wherein, Executing the stored procedure also includes storing the transformed data in the client entity's second database.

10. A non-tangible computer-readable medium storing instructions, which, when executed, cause a processing device to: Receive instructions to execute stored procedures immediately; Retrieve the schema of the database structure used by the management system of the client entity; Determine the identifier of the management system and the data type to be retrieved for the client entity, wherein the data type is specified in the schema; In response to determining the identifier and data type of the management system, criteria to be used in the dynamic query are determined, wherein determining the criteria includes: The pattern is input into a trained machine learning model; and Receive the standard as the output of the trained machine learning model; The dynamic query, which includes the standard, is generated during the stored procedure. Establish a secure network connection between the database system and the management system; and Execute the stored procedure that includes the dynamic query, wherein executing the stored procedure includes: Retrieve raw data from the database associated with the management system via the secure network connection; and The original data is converted into transformed data associated with the standard.

11. The computer-readable medium of claim 10, wherein, The processing equipment further includes: Retrieve the second schema of the second structure of the second database used by the management system of the second client entity; Determine the identifier of the management system and the data type to be retrieved for the second client entity; In response to determining the identifier of the management system and the data type to be retrieved for the second client entity, a second criterion to be used in the second dynamic query is determined based on the identifier of the management system and the data type to be retrieved for the second client entity. In response to determining the second criterion, a second dynamic query including the second criterion is generated in the stored procedure; Retrieve second raw data from the database used by the management system of the second client entity; and The second dynamic query is used to convert the second original data into the second transformed data.

12. The computer-readable medium of claim 10, wherein, Generating the dynamic query includes the processing device assigning values ​​to the parameters in the dynamic query using the standard.

13. The computer-readable medium of claim 11, wherein, Generating the second dynamic query includes the processing device assigning values ​​to the parameters in the second dynamic query using the second standard.

14. The computer-readable medium of claim 11, wherein, The standard mentioned is different from the second standard.

15. The computer-readable medium of claim 11, wherein, The standard is the same as the second standard.

16. The computer-readable medium of claim 11, wherein, The processing device further uses a workflow designed to execute the dynamic query and the second dynamic query in parallel to perform the dynamic query and the second dynamic query, in order to convert the original data into the converted data and the second data into the second converted data.

17. The computer-readable medium of claim 11, wherein, The processing device further includes: receiving the instructions periodically based on a schedule; and receiving the instructions periodically based on a schedule. Store the execution date of the stored procedure.

18. The computer-readable medium of claim 11, wherein, In order to execute the dynamic query, the processing device further: The converted data is stored in a second database.

19. A database system, comprising: A memory device that stores instructions; A processing device communicatively coupled to the memory device, wherein the processing device executes the instructions to: Receive instructions to execute stored procedures immediately; Retrieve the schema of the database structure used by the management system of the client entity; Determine the identifier of the management system and the data type to be retrieved for the client entity, wherein the data type is specified in the schema; In response to determining the identifier and data type of the management system, criteria to be used in the dynamic query are determined, wherein determining the criteria includes: The pattern is input into a trained machine learning model; and Receive the standard as the output of the trained machine learning model; The dynamic query, which includes the standard, is generated during the stored procedure. Establish a secure network connection between the database system and the management system; Execute the stored procedure that includes the dynamic query, wherein executing the stored procedure includes: Retrieve raw data from the database associated with the management system via the secure network connection; and The original data is converted into transformed data associated with the standard.

Citation Information

Patent Citations

  • Learning based on feedback for contextual personalized information retrieval

    US7827125B1

  • Holistic methodology for big data analytics

    US9798788B1