Systems and methods for semantic model action sets and replay in an analytical application environment
The system with a semantic layer and fragmented query model addresses diverse customer data transformation needs, ensuring compatibility and scalability in enterprise software environments.
Patent Information
- Application Number
- JP2025186302
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-07-15
- Filing Date
- 2025-11-05
- Publication Date
- 2026-03-04
AI Technical Summary
Existing data analytics systems in enterprise software environments, particularly in SaaS and cloud environments, struggle to accommodate diverse customer requirements for data classification, aggregation, and transformation, leading to inefficiencies in developing software analytics applications.
A system with a semantic layer that enables custom semantic extensions and a fragmented query model, allowing changes to be stored as action sets, which can be dynamically merged and replayed, ensuring compatibility with system updates while preserving customizations.
This approach supports diverse customer requirements, maintains customizations through system updates, and enhances scalability and efficiency in developing software analytics applications.
Smart Images

Figure 2026035614000001_ABST
Abstract
Description
[Technical Field]
[0001] Copyright Notice A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to anyone copying or reproducing the patent document or patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever.
[0002] Priority claim: This application is a continuation of U.S. provisional patent application Ser. No. 6,619,523, filed on September 25, 2020, entitled "SYSTEM AND METHOD FOR EXTENSIBILITY IN AN ANALYTIC APPLICATIONS ENVIRONMENT." 3 / 083,319; a U.S. patent application entitled "SYSTEM AND METHOD FOR EXTENSIBILITY IN AN ANALYTIC APPLICATIONS ENVIRONMENT," filed July 15, 2021, application No. 17 / 376,890; filed July 15, 2021, entitled "SYSTEM AND METHOD FOR USE OF A FRAGMENTED QUERY MODEL IN AN ANALYTIC APPLICATIONS ENVIRONMENT" U.S. patent application Ser. No. 17 / 376,895, filed on July 15, 2021, entitled "SYSTEM AND METHOD FOR SEMANTIC MODEL ACTION SETS AND REPLAY IN AN ANALYTIC APPLICATIONS ENVIRONMENT," Ser. No. 17 / 376,9 03; each of which applications is incorporated herein by reference.
[0003] Technical fields: FIELD OF THE INVENTION The embodiments described herein relate generally to computer-based methods for providing computer data analytics and business intelligence data, and more particularly to systems and methods for providing scalability in analytical application environments.
[0004] background: Generally, within an organization, data analytics enables the computer-based examination or analysis of large amounts of data in order to derive conclusions or other information from that data; business intelligence tools provide an organization's business users with information that describes their enterprise data in a format that enables them to make strategic business decisions.
[0005] Within the context of your organization's enterprise software application or data environment, for example, an Oracle Fusion Applications environment or other type of enterprise software application or data environment; or within the context of your organization's enterprise software application or data environment, for example, an Oracle Analytics Cloud or Oracle Cloud Infrastructure environment or other type of cloud environment. There is increasing interest in developing software applications that leverage the use of data analytics within the context of Software as a Service (SaaS) or cloud environments.
[0006] However, different customers of a data analytics environment may have different requirements regarding how their data is classified, aggregated, or transformed for the purposes of providing data analytics or business intelligence data or developing software analytics applications.
[0007] overview: According to certain embodiments, systems and methods for providing scalability in an analytical application environment are described herein. To support customer requirements regarding how their data is categorized, aggregated, or transformed for purposes of providing analytics data or developing software analytics applications, the system may include a semantic layer that enables the use of custom semantic extensions to extend the semantic data model (semantic model).
[0008] According to one embodiment, customization to the out-of-the-box semantic model is performed using a layered approach, where the factory code of the semantic model remains intact and changes / deltas are editable by the customer. and layered on top of that model, such changes can be patched / undone as needed.
[0009] According to an embodiment, the system enables the use of a fragmented query model, and once customizations are made to the semantic model, the system can dynamically merge changes from various deltas as queries are generated at runtime to dynamically surface appropriate data based on the extended semantic model.
[0010] According to one embodiment, when customizations are made to a semantic model, the system stores the changes to the semantic model as an action set rather than as a changed state. This allows operating system updates to not affect the underlying configuration, but for the system to replay the changes on the factory model and return to the desired end state. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 illustrates a system for providing an analytical application environment according to one embodiment. [Figure 2] FIG. 1 further illustrates a system for providing an analytical application environment, according to one embodiment. [Figure 3] FIG. 1 further illustrates a system for providing an analytical application environment, according to one embodiment. [Figure 4] FIG. 1 further illustrates a system for providing an analytical application environment, according to one embodiment. [Figure 5] FIG. 1 further illustrates a system for providing an analytical application environment, according to one embodiment. [Figure 6] FIG. 1 further illustrates a system for providing an analytical application environment, according to one embodiment. [Figure 7] FIG. 1 further illustrates a system for providing an analytical application environment, according to one embodiment. [Figure 8] FIG. 1 further illustrates a system for providing an analytical application environment, according to one embodiment. [Figure 9] FIG. 1 further illustrates a system for providing an analytical application environment, according to one embodiment. [Figure 10] FIG. 1 illustrates a flowchart of a method for providing an analytical application environment according to one embodiment. [Figure 11] FIG. 1 illustrates a system for supporting extensibility and customization in an analytical application environment, according to an embodiment. [Figure 12] FIG. 10 further illustrates extensibility and customization in an analytical application environment, according to one embodiment. [Figure 13] FIG. 1 illustrates support for multiple users in customizing or extending an analytical application environment, according to an embodiment. [Figure 14] FIG. 10 further illustrates support for multiple users in customizing or extending an analytical application environment, according to an embodiment. [Figure 15] FIG. 10 further illustrates support for multiple users in customizing or extending an analytical application environment, according to an embodiment. [Figure 16] FIG. 10 further illustrates support for multiple users in customizing or extending an analytical application environment, according to an embodiment. [Figure 17] FIG. 1 illustrates a layered approach to semantic model construction, according to one embodiment. [Figure 18] FIG. 10 further illustrates a layered approach to semantic model construction, according to one embodiment. [Figure 19] FIG. 1 illustrates the use of layered extensions in an analytical application environment, according to one embodiment. [Figure 20] FIG. 10 further illustrates the use of layered extensions in an analytical application environment, according to one embodiment. [Figure 21] FIG. 10 further illustrates the use of layered extensions in an analytical application environment. [Figure 22] FIG. 1 illustrates a process for the use of layered extensions in an analytical application environment, according to an embodiment. [Figure 23] FIG. 1 illustrates the use of a fragmented query model, according to an embodiment. [Figure 24] FIG. 10 is a diagram further illustrating the use of a fragmented query model, according to an embodiment. [Figure 25] FIG. 10 is a diagram further illustrating the use of a fragmented query model, according to an embodiment. [Figure 26] FIG. 1 illustrates a process for using a fragmented query model, according to an embodiment. [Figure 27] FIG. 1 illustrates the use of action replay sets to provide scalability, according to an embodiment. [Figure 28] FIG. 10 further illustrates the use of action replay sets to provide scalability, according to an embodiment. [Figure 29] FIG. 10 further illustrates the use of action replay sets to provide scalability, according to an embodiment. [Figure 30] FIG. 1 illustrates a process for semantic model action replay in an analytical application environment, according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0012] Detailed Description: As noted above, within an organization, data analytics enables the computer-based examination or analysis of large amounts of data to derive conclusions or other information from the data, while business intelligence tools provide an organization's business users with information describing enterprise data in a format that enables them to make strategic business decisions.
[0013] There is growing interest in developing software applications that leverage the use of data analytics within the context of an organization's enterprise software application or data environment (e.g., an Oracle Fusion Applications environment or other type of enterprise software application or data environment), or within the context of a Software as a Service (SaaS) or cloud environment (e.g., an Oracle Analytics Cloud or Oracle Cloud Infrastructure environment or other type of cloud environment).
[0014] According to one embodiment, the analytic application environment enables data analytics in the context of an organization's enterprise software application or data environment, or in the context of a software-as-a-service or other type of cloud environment, and supports the development of computer-executable software analytic applications.
[0015] Semantic Model / Layer Extensibility According to certain embodiments, a system and method for providing extensibility in an analytical application environment is described herein. To support customer requirements regarding how their data is classified, aggregated, or transformed for the purposes of providing data analytics or business intelligence data, or for the purposes of developing software analytical applications, the system may include a semantic layer that enables the use of custom semantic extensions to extend the semantic data model (semantic model).
[0016] According to various embodiments, the system may include support for features such as hierarchical namespaces, runtime merging of fragmented model queries, replaying changes on an evolving basis, or staging anticipated fixes in a production environment.
[0017] According to one embodiment, the system provides a wizard-based approach that captures what a user wants to do with a semantic model in a series of steps and then creates a set of rules for the user (e.g., as an RPD) that are used to extend the semantic model. For example, the wizard may present out-of-the-box characterizations of certain dimensions or facts specified by the semantic model, and the user may then modify those characterizations.
[0018] According to another embodiment, multiple users working on a semantic model may be operating on different subject areas. The multi-user development environment allows multiple users to work on different branches or extensions of the semantic model. As each branch or extension is completed, the system compares all changes to the entire model, determines if there are any conflicts, and, where appropriate, includes locks and queues to evaluate which branches or extensions should be included in the final model.
[0019] According to another embodiment, customization to an out-of-the-box semantic model is performed using a layered approach, where the factory code of the semantic model remains intact, changes / deltas are editable by the customer and layered on top of that model, and such changes can be patched / undone as needed.
[0020] According to another embodiment, the system enables the use of a fragmented query model, and once customizations are made to the semantic model, the system can dynamically merge changes from various deltas as queries are generated at runtime to dynamically surface appropriate data based on the extended semantic model.
[0021] According to another embodiment, once customizations are made to the semantic model, the system allows the changes to the semantic model to be stored as an action set rather than as a changed state. This allows operating system updates to not affect the underlying configuration, but the system to replay the changes on the factory model and return to the desired end state.
[0022] According to another embodiment, to support the use of test and production instances, the system may track changes made to the semantic model in a test environment and then remotely communicate the changes to the production environment after testing. The system may include locking, security, and role mapping to control how changes may be moved from the test environment to the production environment.
[0023] According to another embodiment, when the test instance is updated to a new version, the changes made to the semantic model and stored as deltas are replayed as described above, but instead of being pushed to production immediately, the changes are staged while production itself is updated to the new version. When production is updated to a new version (of the data warehouse or semantic model), the customized models and extensions are updated at the same time.
[0024] According to another embodiment, queries in a data analytics environment are often pushed to a BI server and then function-shipped to the data source. However, if there are multiple users working on customizing / extending the semantic model, the multiple users will need to share a common BI server. To provide a preview of the data for use during the development of the semantic model, the system temporarily spins up a (reduced / cut-down) version of the BI server to provide a data preview for use during development.
[0025] According to an embodiment, an analytics application environment may be provided in connection with an analytics cloud environment (analytics cloud), such as, for example, the Oracle Analytics Cloud (OAC) environment, which provides a scalable and secure public cloud service that provides the ability to explore and perform collaborative analytics.
[0026] According to various embodiments, technical advantages of the described approach include that defined extensions or customizations can survive patches, updates, or other changes to the underlying system. For example, if immutable aspects of the semantic model are patched or updated; customizations provided as semantic extensions are preserved. Following a patch or update, the system may automatically replay the extension. If an extension fails due to underlying changes to the semantic model, an administrator may evaluate the changes and run through possible fixes. Potential conflicts may be handled sensitively, and if it may be impossible to fully apply all extensions, the administrator may be notified accordingly.
[0027] Analytical Application Environment According to one embodiment, a data warehouse environment or component, such as, for example, an Oracle Autonomous Data Warehouse (ADW), an Oracle Autonomous Data Warehouse Cloud (ADWC), or any other type of data warehouse environment or component adapted to store large amounts of data, can provide a central repository for storage of data collected by one or more business applications.
[0028] For example, according to one embodiment, a data warehouse environment or component may be provided as a multidimensional database that utilizes online analytical processing (OLAP) or other techniques to generate business-related data from multiple disparate data sources. An organization may extract such business-related data from one or more vertical and / or horizontal business applications and ingest the extracted data into a data warehouse instance associated with the organization.
[0029] Examples of horizontal business applications are the ERP, HCM, CX, SCM and and EPM, and can provide a wide range of functionality across various enterprise organizations.
[0030] Vertical business applications are generally narrower in scope than horizontal business applications, but provide access to data further up or down the chain of data within a defined scope or industry. Examples of vertical business applications might include medical software or banking software for use within a particular organization.
[0031] As software vendors increasingly offer enterprise software products or components as SaaS or cloud-oriented offerings, such as Oracle Fusion Applications, while other enterprise software products or components, such as Oracle ADWC, may be offered as one or more of SaaS, Platform as a Service (PaaS), or hybrid subscriptions, enterprise users of traditional business intelligence (BI) applications and processes are generally faced with the task of extracting data from horizontal and vertical business applications and introducing the extracted data into a data warehouse, a process that can be time-consuming and resource-consuming.
[0032] According to one embodiment, the analytical application environment enables customers (tenants) to develop computer-executable software analytical applications for use with a BI component, such as, for example, an Oracle Business Intelligence Applications (OBIA) environment, or other type of BI component adapted to examine large amounts of data supplied by the customers (tenants) themselves or from multiple third-party entities.
[0033] For example, according to one embodiment, the analytical application environment, when used with a SaaS business productivity software product suite that includes a data warehouse component, can be used to populate the data warehouse component with data from the business productivity software applications of the suite. Pre-defined data integration flows can automate the ETL processing of data between the business productivity software applications and the data warehouse, which might otherwise be performed traditionally or manually by users of those services.
[0034] As another example, according to one embodiment, an analytical application environment may be pre-configured with a database schema for storing integrated data delivered across various business productivity software applications of a SaaS product suite. Such pre-configured database schemas may be used to provide uniformity across the productivity software applications and corresponding transactional databases offered in the SaaS product suite, while allowing users to avoid the process of manually designing, tuning, and modeling the provided data warehouses.
[0035] As another example, according to one embodiment, the analytical application environment can be used to pre-populate the reporting interface of the data warehouse instance with relevant metadata describing business-related data objects, e.g., in the context of various business productivity software applications, to include pre-defined dashboards, key performance indicators (KPIs), or other types of reports.
[0036] FIG. 1 illustrates a system for providing an analytical application environment according to one embodiment.
[0037] As shown in FIG. 1 , according to one embodiment, an analytics application environment or analytics cloud (e.g., OAC) 100 can be provided by or can operate on a computer system having computer hardware (e.g., processor, memory) 101 and including one or more software components operating as a control plane 102 and a data plane 104 to provide access to a data warehouse or data warehouse instance 160.
[0038] According to one embodiment, the components and processes shown in FIG. 1 and further described herein with respect to various other embodiments may be provided as software or program code executable by a computer system or other type of processing device.
[0039] For example, according to one embodiment, the components and processes described herein may be provided by a cloud computing system or other suitably programmed computer system.
[0040] According to one embodiment, the control plane operates to provide control over cloud or other software products offered in the context of a SaaS or cloud environment, such as, for example, an Oracle Analytics Cloud or Oracle Cloud Infrastructure environment, or other type of cloud environment.
[0041] For example, according to one embodiment, the control plane may include a cloud environment having a console interface 110 and / or provisioning components 111 that allow access by a client computing device 10 having device hardware 12, management applications 14, and user interfaces 16 under the control of a customer (tenant) 20.
[0042] According to one embodiment, the console interface may allow access by customers (tenants) operating a graphical user interface (GUI) and / or a command line interface (CLI) or other interface, and / or may include an interface for use by a SaaS or cloud environment provider and its customers (tenants).
[0043] For example, according to one embodiment, the console interface may provide an interface that allows a customer to provision services for use within the SaaS environment and configure those provisioned services.
[0044] According to one embodiment, the provisioning component may include various functions for provisioning the service specified by the provisioning command.
[0045] For example, according to one embodiment, the provisioning component can be accessed and utilized by customers (tenants) via a console interface to purchase one or more of a suite of business productivity software applications along with a data warehouse instance for use with those software applications.
[0046] According to one embodiment, a customer (tenant) can request provisioning of a customer schema 164 within the data warehouse. The customer can also specify the attributes of the data warehouse, including required attributes (e.g., login credentials) and optional attributes (e.g., size or velocity). Some attributes associated with the data warehouse instance may also be provided via a console interface. The provisioning component can then provision the requested data warehouse instance including the data warehouse customer schema, populating the data warehouse instance with the appropriate information provided by the customer.
[0047] According to one embodiment, the provisioning component may also be used to update or edit the ETL processes running on the data warehouse instance and / or data plane, for example, by changing or updating the requested ETL process execution frequency for a particular customer (tenant).
[0048] According to one embodiment, the provisioning component may also include a provisioning application programming interface (API) 112, several workers 115, a metering manager 116, and a data plane API 118, which are further described below. The console interface may communicate with the provisioning API, for example, by making API calls when commands, instructions, or other inputs are received at the console interface, to provision services within the SaaS environment or to make configuration changes to provisioned services.
[0049] According to one embodiment, a data plane API can communicate with the data plane.
[0050] For example, according to one embodiment, provisioning and configuration changes directed to services provided by the data plane can be communicated to the data plane via a data plane API.
[0051] According to one embodiment, the metering manager may include various functions for metering services provisioned via the control plane and usage of the services.
[0052] For example, according to one embodiment, the metering manager can record the usage of processors provisioned via the control plane over time for a particular customer (tenant) for billing purposes. Similarly, the metering manager can record the amount of partitioned data warehouse storage space for use by a customer of a SaaS environment for billing purposes.
[0053] According to one embodiment, the data plane may include a data pipeline or process layer 120 and a data transformation layer 134, which together process operational or transactional data from an organization's enterprise software applications or data environment, such as business productivity software applications, provisioned in a customer's (tenant's) SaaS environment. The data pipeline or process may include various functions that extract transactional data from business applications and databases provisioned in the SaaS environment and then load the transformed data into a data warehouse.
[0054] According to one embodiment, the data transformation layer may include a data model, such as a knowledge model (KM) or other type of data model, that the system uses to transform transaction data received from business applications and corresponding transaction databases provisioned in the SaaS environment into a model format understood by the analytical application environment. It can be provided in any data format suitable for storage in the warehouse.
[0055] According to one embodiment, the data pipeline or process provided by the data plane may include a monitoring component 122, a data staging component 124, a data quality component 126, and a data projection component 128, which are further described below.
[0056] According to one embodiment, the data transformation layer may include a dimension generation component 136, a fact generation component 138, and an aggregation generation component 140, which are further described below. The data plane may also include a data and configuration user interface 130 and a mapping and configuration database 132.
[0057] According to one embodiment, the data warehouse includes a default analytics application schema (referred to herein, according to some embodiments, as an analytics warehouse schema) 162 and may include the customer schemas described above for each customer (tenant) of the system.
[0058] According to one embodiment, the data plane is responsible for performing extract, transform, and load (ETL) operations that include extracting transactional data from an organization's enterprise software applications or data environment, such as business productivity software applications and corresponding transactional databases offered in a SaaS environment, transforming the extracted data into a model format, and loading the transformed data into customer schemas in a data warehouse.
[0059] For example, according to one embodiment, each customer (tenant) of the environment can be associated with its own customer tenancy in the data warehouse associated with its own customer schema, and can further have read-only access to analytical application schemas that can be updated periodically or at other paces by a data pipeline or process, e.g., an ETL process.
[0060] According to one embodiment, to support multiple tenants, the system may enable the use of multiple data warehouses or data warehouse instances.
[0061] For example, according to one embodiment, a first warehouse customer tenancy for a first tenant may include a first database instance, a first staging area, and a first data warehouse instance of a plurality of data warehouses or data warehouse instances, while a second customer tenancy for a second tenant may include a second database instance, a second staging area, and a second data warehouse instance of a plurality of data warehouses or data warehouse instances.
[0062] According to one embodiment, a data pipeline or process can be scheduled to run at intervals (e.g., hourly / daily / weekly) to extract transactional data from an enterprise software application or data environment, such as, for example, a business productivity software application and corresponding transactional database 106 provisioned in a SaaS environment.
[0063] According to one embodiment, an extraction process 108 can extract transactional data, and once the extraction is performed, a data pipeline or process can insert the extracted data into a data staging area, which can serve as a temporary staging area for the extracted data. Data quality and data protection components can be used to ensure the integrity of the extracted data.
[0064] For example, according to one embodiment, a data quality component can perform validation on the extracted data while the data is temporarily held in a data staging area.
[0065] According to one embodiment, once the extraction process completes its extraction, a transformation process can be initiated using a data transformation layer to convert the extracted data into a model format and load it into a customer schema in a data warehouse.
[0066] As noted above, according to one embodiment, a data pipeline or process can operate in combination with a data transformation layer to transform data into a model format. A mapping and configuration database can store metadata and data mappings that define the data model used by the data transformation. A data and configuration user interface (UI) can facilitate access to and modification of the mapping and configuration database.
[0067] According to one embodiment, based on the mapping and data models defined in the configuration database, the monitoring component can determine dependencies of several different data sets to be converted. Based on the determined dependencies, the monitoring component can determine which of the several different data sets should be converted to the model format first.
[0068] For example, according to one embodiment, if a first model dataset does not include dependencies on other model datasets and a second model dataset includes a dependency on the first model dataset, the monitoring component may determine to transform the first dataset before the second dataset to absorb the dependency of the second dataset on the first dataset.
[0069] According to one embodiment, the data transformation layer can convert the extracted data into a format suitable for loading into a data warehouse customer schema, for example, according to the data model described above. During the transformation, the data transformation can perform dimension generation, fact generation, and aggregation generation, as appropriate. Dimension generation can include generating dimensions or fields for loading into the data warehouse instance.
[0070] For example, according to one embodiment, a dimension may include categories of data, such as "name," "address," or "age." Fact generation involves generating values or "measures" that data can take. Facts are associated with appropriate dimensions in the data warehouse instance. Aggregation generation involves creating data mappings that calculate aggregates of transformed data for existing data in the customer schema 164 of the data warehouse instance.
[0071] According to one embodiment, once any transformations are implemented (as defined by the data model), a data pipeline or process can read the source data, apply the transformations, and then push the data to a data warehouse instance.
[0072] According to one embodiment, data transformations can be expressed as rules, and once transformed, values can be held in a staging area where data quality and data projection components can inspect and verify the integrity of the transformed data before it is uploaded to customer schemas in the data warehouse instance. Monitoring can be provided, for example, as an extract-transform-load process runs on several compute instances or virtual machines. Dependencies can be maintained during the extract-transform-load process, and the data pipeline or process can address such ordering decisions.
[0073] According to one embodiment, after transforming the extracted data, the data pipeline or process may execute a warehouse load procedure 150 to load the transformed data into a customer schema of a data warehouse instance. After loading the transformed data into the customer schema, the transformed data can be analyzed and used in various further business intelligence processes.
[0074] Horizontally and vertically integrated business software applications are generally oriented towards capturing data in real time, as they are typically used in daily workflows to store data in transactional databases, meaning that typically only the most recent data is stored in such databases.
[0075] For example, if an employee moves offices, an HCM application may update the record associated with that employee, but such an HCM application would not typically maintain a record of each office that the employee worked in during their tenure with the company. Thus, a BI-related query attempting to determine employee mobility within the company would not have sufficient records in the transactional database to complete such a query.
[0076] According to one embodiment, by storing current data as well as historical data generated by horizontally and vertically integrated business software applications in a context that is easily understandable by BI applications, a data warehouse instance populated using the above techniques provides resources for BI applications to process such queries using interfaces provided, for example, by business productivity and analytics product suites or the customer's SQL tool of choice.
[0077] FIG. 2 further illustrates a system for providing an analytical application environment, according to one embodiment.
[0078] As shown in FIG. 2 , according to one embodiment, data can be sourced using the above-described data pipeline process, for example, from a customer's (tenant's) enterprise software application or data environment (106) or as custom data 109 sourced from one or more customer-specific applications 107, and loaded into a data warehouse instance, which in some examples includes the use of object storage 105 for storing data.
[0079] According to one embodiment, a data pipeline or process maintains, for each customer (tenant), an analytical application schema, for example as a star schema, that provides the best practices for a particular analytical use case, for example, human capital management (HCM) analytics or enterprise resource planning (ERP) analytics. updated by the system periodically or at other intervals in accordance with standard practices.
[0080] According to one embodiment, for each customer (tenant), the system uses an analytical application schema maintained and updated by the system within the analytical application environment (cloud) tenancy 114 to pre-populate a data warehouse instance for that customer based on analysis of data within that customer's enterprise application environment and within the customer tenancy 117. Thus, the analytical application schema maintained by the system enables data to be retrieved from the customer's environment by a data pipeline or process and loaded into the customer's data warehouse instance in a "live" manner.
[0081] According to one embodiment, the analytic application environment also provides, for each customer of the environment, a customer schema that is easily modifiable by the customer, allowing the customer to supplement and utilize the data in the data warehouse instance. For each customer of the analytic application environment, the resulting data warehouse instance acts as a database whose contents are controlled partly by the customer and partly by the analytic application environment (system), including the appearance of the database pre-populated with appropriate data retrieved from the enterprise application environment to address various analytic use cases, e.g., HCM analytics or ERP analytics.
[0082] For example, according to one embodiment, a data warehouse (e.g., an Oracle Autonomous Data Warehouse (ADWC)) may include analytical application schemas and, for each customer / tenant, customer schemas sourced from enterprise software applications or data environments. Data provisioned in the data warehouse tenancy (e.g., an ADWC tenancy) is accessible only to that tenant while simultaneously enabling access to various, e.g., ETL-related or other, features of the shared analytical application environment.
[0083] According to one embodiment, to support multiple customers / tenants, the system enables the use of multiple data warehouse instances; for example, a first customer tenancy may include a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may include a second database instance, a second staging area, and a second data warehouse instance.
[0084] According to one embodiment, for a particular customer / tenant, upon extraction of data, a data pipeline or process can insert the extracted data into a data staging area for that tenant, which can serve as a temporary staging area for the extracted data. Data quality and data protection components can be used to ensure the integrity of the extracted data, for example, by performing validation on the extracted data while it is temporarily held in the data staging area. Once the extraction process completes its extraction, a data transformation layer can be used to initiate a transformation process to convert the extracted data into a model format for loading into a customer schema in a data warehouse.
[0085] FIG. 3 further illustrates a system for providing an analytical application environment, according to one embodiment.
[0086] As shown in FIG. 3, according to one embodiment, the data pipeline process described above is used to The process of extracting data, for example from a customer's (tenant's) enterprise software application or data environment, or as custom data sourced from one or more customer-specific applications, and loading or refreshing that data in a data warehouse instance using ETP generally involves three broad stages, which are performed by ETP services 160 or processes, including one or more extract services 163, transform services 165, and load / publish services 167, executed by one or more compute instances 170.
[0087] Extraction: According to one embodiment, a list of view objects for extraction can be submitted to an Oracle BI Cloud Connector (BICC) component, for example, via a ReST call. The extracted files can be uploaded to an object storage component, such as an Oracle Storage Services (OSS) component, for data storage.
[0088] Transformation: According to one embodiment, the transformation process applies business logic while taking data files from an object storage component (e.g., OSS) and loading them into a target data warehouse, e.g., an ADWC database, which is internal to the data pipeline or process and not exposed to the customer (tenant).
[0089] Load / Publish: According to one embodiment, a load / publish service or process takes data from, for example, an ADWC database or warehouse and publishes it to a data warehouse instance accessible to customers (tenants).
[0090] FIG. 4 further illustrates a system for providing an analytical application environment, according to one embodiment.
[0091] As shown in FIG. 4, which illustrates the operation of a system with multiple tenants (customers) according to one embodiment, data can be sourced from, for example, each of the multiple customer's (tenants') enterprise software applications or data environments and loaded into a data warehouse instance using the data pipeline process described above.
[0092] According to one embodiment, a data pipeline or process maintains, for each of multiple customers (tenants), e.g., Customer A 180, Customer B 182, an analytical application schema that is updated by the system periodically or at some other pace according to best practices for the particular analytical use case.
[0093] According to one embodiment, for each of multiple customers (e.g., Customer A, Customer B), the system pre-populates a data warehouse instance for the customer based on analysis of data within that customer's enterprise application environment 106A, 106B and within each customer's tenancy (e.g., Customer A tenancy 181, Customer B tenancy 183) using analytical application schemas 162A, 162B maintained and updated by the system, whereby a data pipeline or process retrieves data from the customer's environment and loads it into the customer's data warehouse instance 160A, 160B.
[0094] According to one embodiment, the analytical application environment also provides, for each of a plurality of customers of the environment, a customer schema (e.g., customer A schema 164A, customer B schema 164B), which is easily modifiable by the customer and allows the customer to modify their own data. It allows you to capture and use data in your warehouse instance.
[0095] As noted above, according to one embodiment, for each of multiple customers of the analytical application environment, the resulting data warehouse instance acts as a database whose contents are controlled in part by the customer and in part by the analytical application environment (system), including that the database appears pre-populated with appropriate data retrieved from the enterprise application environment to address various analytical use cases. Once the extraction process 108A, 108B for a particular customer has completed its extraction, a transformation process can be initiated using a data transformation layer to convert the extracted data into a model format for loading into the customer schema of the data warehouse.
[0096] FIG. 5 further illustrates a system for providing an analytical application environment, according to one embodiment.
[0097] According to one embodiment, launch plans 186 can be used to control the operation of a customer's (tenant's) data pipeline or process services for specific functional areas to address their specific needs.
[0098] For example, according to one embodiment, a launch plan may define several extract-transform and load (publish) services or steps to be executed in a particular order, at a particular time, and within a particular time window.
[0099] According to one embodiment, each customer can be associated with its own launch plan. For example, a launch plan for a first customer A can determine which tables are retrieved from that customer's enterprise software application environment (e.g., a Fusion application environment) or how services and their processes are sequenced, and a launch plan for a second customer B can similarly determine which tables are retrieved from that customer's enterprise software application environment or how services and their processes are sequenced.
[0100] According to one embodiment, launch plans can be stored in a mapping and configuration database and are customizable by customers via a data and configuration UI. Each customer can have several launch plans. Compute instances / services (virtual machines) that run ETL processes for various customers according to the launch plans can be dedicated to a particular service for use by the launch plan and then released for use by other services and launch plans.
[0101] According to one embodiment, based on the determination of historical performance data recorded over a period of time, the system can optimize the execution of launch plans, for example, for one or more functional areas associated with a particular tenant or across a set of launch plans associated with those tenants, to address VM and service level agreement (SLA) utilization for multiple tenants. Such historical data may include load volume and load time statistics.
[0102] For example, according to one embodiment, historical data may include extract size, number of extracts, extract time, warehouse size, conversion time, publish (load) time, view object extract size, view object extract record count, view object extract time, warehouse table count, number of records processed for a table, warehouse table conversion time, publish table count, and publish time. Such historical data may include: It can be used to estimate and plan current and future launch plans, for example to orchestrate various tasks to run sequentially or in parallel to arrive at the shortest time to execute the launch plan. The collected historical data can also be used to optimize across multiple launch plans for a tenant. In some embodiments, optimization of the launch plan (i.e., a particular sequence of jobs, such as ETL) based on historical data can be automatic.
[0103] FIG. 6 further illustrates a system for providing an analytical application environment, according to one embodiment.
[0104] As shown in FIG. 6 , according to one embodiment, the system enables the flow of data controlled by a data configuration / management / ETL / / status service 190 within a (e.g., Oracle) management tenancy to and from each customer's enterprise software application environment (e.g., Fusion application environment) (including, in this example, BICC components) via a storage cloud service 192, e.g., OSS, to a data warehouse instance.
[0105] As noted above, according to one embodiment, the flow of this data can be managed by one or more services, including, for example, the extraction and transformation services described above, with reference to an ETL repository 193, which retrieves data from the storage cloud service and loads the data into an internal target data warehouse (e.g., an ADWC database) 194, which is internal to the data pipeline or process and not exposed to the customer.
[0106] According to one embodiment, data is moved in stages to a data warehouse and then to database table change log 195, from which a load / publish service can load customer data into a target data warehouse instance in the customer tenancy that is associated with and accessible to the customer.
[0107] FIG. 7 further illustrates a system for providing an analytical application environment, according to one embodiment.
[0108] According to one embodiment, extracting, transforming, and loading data from enterprise applications into a data warehouse instance involves multiple stages, each of which may have several sequential or parallel jobs and may run on different spaces / hardware, including different staging areas 196, 198 for each customer.
[0109] FIG. 8 further illustrates a system for providing an analytical application environment, according to one embodiment.
[0110] As shown in FIG. 8, according to one embodiment, the metering manager may include functionality to meter provisioned services and service usage via the control plane to provide provisioned metrics 142.
[0111] For example, the metering manager may record, for billing purposes, the usage of processors provisioned through the control plane over time for a particular customer. Similarly, the metering manager may record, for billing purposes, the amount of data warehouse storage space partitioned for use by a customer of a SaaS environment.
[0112] FIG. 9 further illustrates a system for providing an analytical application environment, according to one embodiment.
[0113] 9 , according to one embodiment, using the data pipeline process described above, in addition to data that may be sourced, for example, from a customer's enterprise software applications or data environment, one or more additional custom data 109A, 109B sourced from one or more customer-specific applications 107A, 107B can also be extracted, transformed, and loaded into the data warehouse instance using either the data pipeline process described above (including, in some examples, the use of object storage for storing data) and / or custom ETL or other processes 144 that are mutable from the customer's perspective. Once the data is loaded into the data warehouse instance, the customer can create business database views that combine tables from the customer schema with tables from the software analysis application schema, and can query the data warehouse instance using interfaces provided, for example, by a business productivity and analytics product suite or the customer's SQL tool of choice.
[0114] FIG. 10 illustrates a flowchart of a method for providing an analytical application environment according to one embodiment.
[0115] As shown in FIG. 10, according to one embodiment, in step 200, the analytical application environment provides access to a data warehouse for storage of data by multiple tenants, the data warehouse being associated with an analytical application schema.
[0116] In step 202, each tenant of the plurality of tenants is associated with a customer tenancy and a customer schema for use by the tenant in populating the data warehouse instance.
[0117] In step 204, the data warehouse instance is populated with data received from the enterprise software application or data environment, and data associated with a particular tenant of the analytic application environment is provisioned in a data warehouse instance associated with and accessible to that particular tenant in accordance with the analytic application schema and the customer schema associated with that particular tenant.
[0118] Extensibility and Customization Different customers in data analytics environments may have different requirements regarding how data is classified, aggregated, or transformed for the purposes of providing data analytics or business intelligence data or for the purposes of developing software analytics applications.
[0119] To support such different requirements, according to one embodiment, the system may include a semantic layer that enables extending the semantic data model (semantic model) using custom semantic extensions to provide custom content at the presentation layer. An extension wizard or development environment can guide a user in extending or customizing the semantic model through the definition of branches and steps using custom semantic extensions, and then promoting the extended or customized semantic model to a production environment.
[0120] According to various embodiments, technical advantages of the described approach include support for additional types of data sources. For example, a user can perform data analytics based on a combination of ERP data sourced from a first vendor's product and HCM data sourced from a second, different vendor's product, or based on a combination of data received from multiple data sources with different regulatory requirements. User-defined extensions or customizations can withstand patches, updates, or other changes to the underlying system.
[0121] FIG. 11 illustrates a system for supporting extensibility and customization in an analytical application environment according to one embodiment.
[0122] According to one embodiment, the semantic layer may include data that defines a semantic model of a customer's data, which is useful in helping users understand and access that data using commonly understood business terms. The semantic layer may include a physical layer that maps to a physical data model or data plane, a logical layer that acts as a mapping or transformation layer in which calculations can be defined, and a presentation layer that allows users to access the data as content.
[0123] 11, according to one embodiment, semantic layer 230 may include a packaged (out-of-the-box, initial) semantic model 232 that can be used to provide packaged content 234. For example, the system may use the ETL or other data pipeline or process described above to load data from a customer's enterprise software application or data environment into a data warehouse instance, and then use the packaged semantic model to provide packaged content to the presentation layer.
[0124] According to one embodiment, the semantic layer may also be associated with one or more semantic extensions 236 that can be used to extend the packaged semantic model and provide custom content 238 to the presentation layer 240.
[0125] According to one embodiment, the presentation layer can enable access to the data content using, for example, software analytics applications, user interfaces, dashboards, key performance indicators (KPIs) 242, or other types of reports or interfaces that may be provided by products such as Oracle Analytics Cloud or Oracle Analytics for Applications.
[0126] According to one embodiment, in addition to data sourced from customer environments using the ETL or other data pipelines or processes described above, customer data can be loaded into a data warehouse instance using a variety of data models or scenarios that offer opportunities for further extensibility and customization.
[0127] Wizard-based extensibility According to one embodiment, the system provides a wizard-based approach that captures what a user wants to do with a semantic model in a series of steps and then creates a set of rules for the user (e.g., as an RPD) that are used to extend the semantic model. For example, the wizard may provide out-of-the-box characterizations of certain dimensions or facts specified by the semantic model. The user may then modify those characterizations.
[0128] Different customers of a data analytics environment may have different requirements regarding how their data is classified, aggregated, or transformed for the purposes of providing data analytics or business intelligence data or developing software analytics applications.
[0129] According to an embodiment, to support such different requirements, the system may include a semantic layer that enables the use of custom semantic extensions to extend the semantic data model (semantic model) and provide custom content in the presentation layer. An extension wizard or development environment may guide users to use custom semantic extensions to extend or customize the semantic model through branching and extension definitions, and then promote the extended or customized semantic model to a production environment.
[0130] FIG. 12 further illustrates extensibility and customization in an analytical application environment, according to one embodiment.
[0131] As shown in FIG. 12, according to an embodiment, a user or other entity (e.g., an analytics cloud provider or a system provider) may extend or customize the semantic model 250 with one or more custom semantic extensions, which the system may then use to provide custom content to the presentation layer.
[0132] For example, according to one embodiment, a user may use a client (computer) device 252 having device hardware 254 and a user interface 256 to interact with or otherwise manipulate an extension wizard 258 or software development component that guides the user through the customization and use of custom semantic extensions.
[0133] According to one embodiment, a user may edit or create new customization branches 260 to extend or customize the semantic model. Selecting a branch provides the user with an instance of the semantic model to work with and incorporate the user's specific customizations or extensions. Each branch operates as an atomic work unit and may include one or more customization steps associated with a customization type and corresponding extension. The extension wizard may be data-aware and provide a preview of the underlying data as the branch is customized. For example, when a user specifies a particular branch to customize, the extension wizard may present a table of example data for the user to review, and then guide the user through, for example, customizing definitions or aggregations for use with that data. Different types of branches may be associated with different extension wizards.
[0134] 12 , according to an embodiment, the extension wizard may guide the user through actions 261 to edit / add one or more customization steps 262, select a customization type 263, and complete / fill out the appropriate extension wizard 264. At each step, the extension wizard may present the user with one or more wizard screens for review or completion, which may vary depending on the type of extension. Upon successful completion of a step, the user may test the customizations for the branch, add additional steps, or apply changes (265). The customized branch may then be merged into the (main) semantic model (266).
[0135] As further shown in FIG. 12, according to one embodiment, the system may publish (267) and / or promote (268) changes to the semantic model, for example, as an Oracle BI Repository (RPD) file or other type of file or metadata.
[0136] According to one embodiment, a semantic model can be defined, for example in an Oracle environment, as a BI repository (RPD) file having metadata that defines logical schemas, physical schemas, physical-logical mappings, aggregate table navigation, and / or other constructs that implement various physical layer, business model and mapping layer, and presentation layer aspects of the semantic model.
[0137] According to one embodiment, a customer may perform modifications to the data source model to support specific requirements, for example by adding custom facts or dimensions associated with the data stored in the data warehouse instance, and the system can extend the semantic model accordingly.
[0138] For example, according to one embodiment, the system can use a semantic model extension process to programmatically introspect a customer's data to determine custom facts, custom dimensions, or other customizations or extensions made to the data source model, and then use an appropriate flow to automatically modify or extend the semantic model to support those customizations or extensions.
[0139] Multiple User Support According to another embodiment, multiple users working on a semantic model may be operating on different subject areas. The multi-user development environment allows multiple users to work on different branches or extensions of the semantic model. As each branch or extension is completed, the system compares all changes to the entire model, determines if there are any conflicts, and, where appropriate, includes locks and queues to evaluate which branches or extensions should be included in the final model.
[0140] Within a typical enterprise organization, there may be many users responsible for developing software analytical applications or generating data analytics or business intelligence data. To support this, according to one embodiment, the system allows multiple users to work simultaneously to develop extensions or customizations to a semantic model, with the changes eventually being merged into the (main) semantic model.
[0141] 13-16 illustrate support for multiple users in customizing or extending an analytical application environment, according to one embodiment.
[0142] As shown in Figures 13-16, according to one embodiment, each of multiple users A-D may work with one or more custom semantic extensions as described above on an instance of a semantic model to provide modifications 282, 284, 286, 288 as extensions or customizations to the semantic model.
[0143] For example, as shown in Figure 13, according to one embodiment, each user may merge their customizations into the (main) semantic model. For example, a first user A may add a region dimension (step 1), extend a cost center dimension (step 2), define a territory hierarchy (step 3), and add a travel cost calculation (step 4). User A may want to create a new branch related to customizing a financial application, General Ledger (GL) Profitability, which includes Step 4. User A's customizations can then be applied and merged into the (main) semantic model.
[0144] 14, according to one embodiment, a second user B may want to create a new branch related to customizing GL detail transactions, including adding a territory dimension (step 1) and adding an opening amount calculation (step 2), while a third user C may want to create a new branch related to customizing a GL balance sheet, including adding a location dimension (step 1), adding a cash on hand calculation (step 2), and creating a GL aggregation target area (step 3). The customizations provided by each of users B and C may be similarly applied and merged into the (main) semantic model.
[0145] As shown in FIG. 15, according to one embodiment, each of multiple users A-D may work with an instance of a semantic model using one or more custom semantic extensions as described above to provide modifications as extensions or customizations of the semantic model.
[0146] 16, according to an embodiment, the system may support different versions of a semantic model, including determining whether the semantic model is ready for promotion to a production environment. For example, while each of the above users develops customizations for an initial version (v1.0) of the semantic model, a fourth user D may begin work on a new branch or extension for a new version (v1.1) of the semantic model, including, for example, adding a strategic supplier dimension or extending the domain dimension.
[0147] According to an embodiment, the system may control definitional changes to semantic models used in generating reports (e.g., changes in the definition of revenue) to ensure accurate generation of business intelligence data. For example, according to an embodiment, the system may ensure that semantic model extensions are initially allowed only in a development / test environment and not in a production environment until an administrator can promote those customizations to the production environment in a controlled manner.
[0148] According to one embodiment, an administrator may use a client (computer) device having an administrator interface 290 to control the promotion of any user-developed customizations to the semantic model to the production environment.
[0149] Advantages of the described approach include that user-defined extensions or customizations can survive patches, updates, or other changes to the underlying system. When immutable aspects of the semantic model are patched or updated; customizations provided as semantic extensions are preserved. Following a patch or update, the system can automatically replay the extension. If an extension fails due to underlying changes to the semantic model, an administrator can evaluate the changes and run through possible fixes. Potential conflicts can be handled sensitively, and if it may be impossible to fully apply all extensions, the administrator can be notified accordingly.
[0150] A layered approach to semantic model building According to another embodiment, customization to an out-of-the-box semantic model is performed using a layered approach, where the factory code of the semantic model remains intact and changes / deltas are editable by the customer and the model , and such changes can be patched / undone as necessary. To support the construction and storage of semantic models, the system may include a port for the hierarchical namespace.
[0151] FIG. 17 illustrates a layered approach to semantic model construction, according to one embodiment.
[0152] As shown in FIG. 17 , according to one embodiment, starting from an initial version or master branch 291, each modification provided by a user and / or by another entity, such as an analytics cloud provider or system provider, as the user works on an instance of the semantic model can be used to generate customizations or extensions to the semantic model, such as a factory model (factory version of the model) 292, system extensions 294, user extensions 296, or security extensions 298.
[0153] According to one embodiment, a semantic model may be defined and stored, for example, as an Oracle BI Repository (RPD) file or other type of file or metadata, and changes to the semantic model may be provided as artifacts in the form of XML files that represent the changes.
[0154] FIG. 18 further illustrates a layered approach to semantic model building, according to one embodiment.
[0155] As shown in FIG. 18, according to an embodiment, customization or extension of a semantic model may be performed incrementally through commits.
[0156] For example, when an analytics cloud provider (e.g., Oracle) makes a change to a semantic model, the change can be recorded (committed) to the appropriate layer or namespace of the semantic model. Similarly, when a system provider makes a change to a semantic model, the changes made by the system provider can be recorded (committed) to the appropriate layer or namespace of the semantic model, taking into account the changes made by the analytics cloud provider.
[0157] FIG. 19 is a diagram illustrating the use of layered extensions in an analytical application environment, according to one embodiment.
[0158] 19, according to one embodiment, the system may support extensibility and the creation and management of extensions based on version-controlled artifacts that represent multiple hierarchical extension layers. Each of the multiple extension artifacts may be independently version-controlled within each extension layer. The system may also support separate ownership on each extension layer.
[0159] As described above, according to one embodiment, a user or other entity (e.g., an analytics cloud provider or a system provider) may extend or customize the semantic model with one or more custom semantic extensions, which the system may then use to provide custom content to the presentation layer.
[0160] For example, a user may extend or customize a semantic model by interacting with or otherwise manipulating an extension wizard or software development component that guides the user through the customization and use of custom semantic extensions. The semantic layer also extends packaged semantic models to create custom components. It may also be associated with one or more semantic extensions provided by a cloud provider, a system provider, or other users that can be used to provide content to the presentation layer.
[0161] According to an embodiment, various approaches to version control of multi-layered artifacts that represent changes to hierarchical namespace and semantic models may be provided. For example, if the artifacts are provided as XML files, the XML may be divided into several, e.g., three, regions, and each tier, e.g., cloud provider, system provider, and user tier, may have ownership over one-third of the regions. Within each tier, changes may be implemented incrementally through commits. The system may support the use of multiple regions and tiers (i.e., not necessarily a 1:1 relationship).
[0162] As shown in the example of Figure 19, when an analytics cloud provider (e.g., Oracle) makes a change to the semantic model, the change may be recorded in the appropriate area of the hierarchical namespace (Layer 1) as a change to the semantic model by the analytics cloud provider as "Delta Commit X1."
[0163] As further illustrated in the example in Figure 19, when the system provider makes changes to the semantic model, the semantic model has already been modified by the changes introduced by the analytics cloud provider as described above (ΣX), so the system provider The changes made by the system provider are recorded in the appropriate area of the hierarchical namespace (Layer 2) along with the changes made by the analytics cloud provider as "Delta Commit ΣX + Y1".
[0164] FIG. 20 further illustrates the use of layered extensions in an analytical application environment, according to one embodiment.
[0165] As shown in the example of Figure 20, when the analytics cloud provider makes another change to the semantic model, this subsequent change may be recorded in the appropriate area of the hierarchical namespace (Layer 1) as a change to the semantic model by the analytics cloud provider as "Delta Commit X2."
[0166] As further illustrated in the example in Figure 20, if the system provider makes another change to the semantic model, the system provider will Subsequent changes made by the Analytics Cloud Provider are recorded in the appropriate area of the hierarchical namespace (Layer 2) as changes made by the system provider, along with each of the changes made by the Analytics Cloud Provider, as "Delta Commit ΣX + Y2".
[0167] FIG. 21 further illustrates the use of layered extensions in an analytical application environment. As shown in the example of Figure 21, if the analytics cloud provider makes yet another change to the semantic model, this subsequent change may again be recorded in the appropriate area of the hierarchical namespace (Layer 1) as a change to the semantic model by the analytics cloud provider as "Delta Commit X3."
[0168] As further illustrated in the example in Figure 21, if the system provider makes yet another change to the semantic model, the system provider will be able to reconcile the semantic model with the changes introduced by the analytics cloud provider (ΣX) as described above. Subsequent changes made by the analytics cloud provider are added to the appropriate area of the hierarchical namespace (Layer 2), along with each change made by the analytics cloud provider. This is recorded as a change made by the provider as "Delta Commit ΣX + Y3".
[0169] Similarly, as shown in the example in Figure 21, when a user makes a change to the semantic model, the semantic model is updated by the analytics cloud provider (ΣX), and Since the changes have already been modified by the changes introduced by the analytics cloud provider and subsequently by the system provider (ΣXY), the subsequent changes made by the user are entered into the appropriate area of the hierarchical namespace (Layer 3) along with each of the changes made by the analytics cloud provider and the system provider as changes made by the user, as "Delta Commit ΣX + ΣY + Z1". is recorded as
[0170] This process may be continued or repeated by the analytics cloud provider, system provider, or other user for additional changes to the semantic model, for example, recording the additional changes as "Delta Commit ΣX + ΣY + Z2"; "Delta Commit ΣX + ΣY + Z3"; etc.
[0171] Advantages of the described approach include that the defined extensions can withstand patches, updates, or other changes to the underlying system: when immutable aspects of the semantic model are patched or updated, the semantic extensions can be retained or reverted as appropriate.
[0172] FIG. 22 illustrates a process for the use of layered extensions in an analytical application environment, according to one embodiment.
[0173] As shown in FIG. 22, according to one embodiment, in step 312, an analytical application environment adapted to provide data analytics in response to a request is provided in a computer system having computer hardware (e.g., processor, memory) and providing access to a database or data warehouse.
[0174] In step 314, the system provides a semantic layer that enables semantic extensions to extend the semantic data model (semantic model) for use in providing data analytics as custom content in the presentation layer.
[0175] In step 316, the system provides, in association with the semantic model, multiple hierarchical extension layers that define changes to the semantic model by the semantic extensions as a series of commits.
[0176] In step 318, the system retrieves data from a database or data warehouse in response to a request, processes the data according to the semantic model extended by the semantic extensions, and provides the data to the presentation layer as custom content.
[0177] Fragmented Query Models and Merging According to another embodiment, the system enables the use of a fragmented query model, and once customizations are made to the semantic model, the system can dynamically merge changes from various deltas as queries are generated at runtime to dynamically surface appropriate data based on the extended semantic model.
[0178] FIG. 23 is a diagram illustrating the use of a fragmented query model, according to one embodiment.
[0179] As shown in Figure 23, the system may use a caching and merging strategy for nested composite models that are extended and layered by multiple owners. This method may be used for non-binary model artifacts, for example, by flattening the composite model into a flattened map of key-value pairs 270. The data structure may then be cached in memory. Keys capture the nesting with simple separators. Values may be of multiple different finite types, such as lists, maps, or simple types, and the merging strategy may be data structure specific.
[0180] For example, according to an embodiment, depending on the type, different strategies may include: List: For this type, the strategy may involve looping over all layers (Layer 1 to Layer n) and for every matching key, fetching and appending a value.
[0181] Map: For this type, the strategy may involve looping over all layers (layer 1 to layer n) and, for every matching key, fetching a value and adding it to the map. For duplicate keys, values in higher layers override values in lower layers.
[0182] String / Date Boolean: For this type, the strategy may involve looping from top to bottom layers (layer n to layer 1), checking for the existence of the key, and if found, returning it, where matching keys in the top layer take precedence over the bottom layer.
[0183] According to one embodiment, various advantages of the described approach include that even if multiple layers of data are stored on disk, runtime queries can be much faster because they can be performed directly against cached keys. Results across all layers can be merged with the simple data structure-based strategy described above.
[0184] For example, as shown in the example of Figure 23, a composite model of employee data is shown, including Employee → Name; Employee → Alias; Employee → Join Date; Employee → Address → Street Name; Employee → Address → Pin Code.
[0185] According to an embodiment, the composite model may be flattened into multiple key-value pairs, each having a key, a type, and data, and that data structure may then be cached in memory as a base representation and used to access data in the database in response to queries. As queries are generated at runtime, the system may dynamically merge changes from the base to surface appropriate data based on the extended semantic model.
[0186] FIG. 24 is a diagram further illustrating the use of a fragmented query model, according to an embodiment.
[0187] As further shown in the example of Figure 24, when a change is introduced to the model, in this example to augment the employee definition to include a birthdate, the change may be stored as a delta in the flattened map and multiple key-value pairs. The modified data structure may then also be cached in memory. When a query is generated at runtime, the system may dynamically merge the changes from the base plus the delta to surface the appropriate data based on the extended semantic model.
[0188] FIG. 25 is a diagram further illustrating the use of a fragmented query model, according to an embodiment.
[0189] As further shown in the example of Figure 25, if an additional change is introduced to the model, in this example, a modification or override of employee data to reflect a different hire date, the change may be stored as another delta in the flattened map and multiple key-value pairs. The modified data structure may then also be cached in memory. When a query is generated at runtime, the system may dynamically merge the changes from the base plus both deltas to surface the appropriate data based on the extended semantic model.
[0190] FIG. 26 illustrates a process for using a fragmented query model, according to one embodiment.
[0191] As shown in FIG. 26, according to one embodiment, in step 322, an analytical application environment is provided in a computer system having computer hardware (e.g., processor, memory) and providing access to a database or data warehouse, the analytical application environment being adapted to provide data analytics in response to a request.
[0192] In step 324, the system provides a semantic layer that enables semantic extensions to extend a semantic data model (semantic model) for use in providing data analytics as custom content in the presentation layer, the semantic model including multiple hierarchical extension layers that define changes to the semantic model by the semantic extensions.
[0193] In step 326, the changes are saved as deltas in the flattened map and multiple key-value pairs, and the modified data structure may then also be cached in memory.
[0194] In step 328, the system retrieves data from a database or data warehouse in response to a request, and queries are generated at runtime to dynamically merge changes + deltas from the base semantic model to surface the data based on the extended semantic model.
[0195] Semantic Model Action Replay According to another embodiment, once customizations are made to the semantic model, the system allows the changes to the semantic model to be stored as an action set rather than as a changed state. This allows operating system updates to not affect the underlying configuration, but the system to replay the changes on the factory model and return to the desired end state.
[0196] According to one embodiment, the system may support replaying changes on an evolving basis. As customizations are made to a semantic model, the system allows changes to the semantic model to be stored as an action set rather than as a changed state. This allows operating system updates to not affect the base configuration, but the system to replay changes on the original / factory model and return to the desired end state.
[0197] FIG. 27 illustrates the use of Action Replay Sets to provide scalability, according to one embodiment.
[0198] As illustrated in Figure 27, according to one embodiment, the system may comprise interconnected mutable layers (e.g., security, system extensions, or user extensions). User changes to each of the layers contribute to an action replay set of replayable actions. The actions of a layer may be captured as a chain of actions 300. Changes in one layer may affect the behavior of another layer and therefore trigger a replay of the changes in terms of dependencies. Action chains and layer dependencies may be monitored. When any part of the dependency tree changes, the system may replay the action chain to restore the original changed state.
[0199] For example, as shown in the example of FIG. 27, a user's changes to secure a fact using an R1 role or R1 role configuration can be captured as an action replay or set of replayable actions.
[0200] FIG. 28 is a diagram further illustrating the use of action replay sets to provide scalability, according to an embodiment.
[0201] As further shown in the example of Figure 28, in this example, a change is introduced to the semantic model by an analytics cloud provider (e.g., Oracle) to add a Duty role, and this change to the semantic model may have an undesirable impact on changes to the semantic model made by a user.
[0202] FIG. 29 is a diagram further illustrating the use of action replay sets to provide scalability, according to an embodiment.
[0203] As further shown in the example of Figure 29, with the changes introduced to the semantic model by the analytics cloud provider to add the Duty role, in this example, a replay of the changes previously made by the user may be triggered to secure the fact using the R1 role or R1 role configuration.
[0204] FIG. 30 illustrates a process for semantic model action replay in an analytical application environment, according to one embodiment.
[0205] As shown in FIG. 30, according to one embodiment, in step 332, an analytical application environment is provided in a computer system having computer hardware (e.g., processor, memory) and providing access to a database or data warehouse, the analytical application environment being adapted to provide data analytics in response to a request.
[0206] In step 334, the system provides a semantic layer that enables semantic extensions to extend a semantic data model (semantic model) for use in providing data analytics as custom content in the presentation layer, the semantic model including multiple hierarchical extension layers that define changes to the semantic model by the semantic extensions.
[0207] In step 336, the system captures user changes to each of the layers as an action replay set of replayable actions; changes in one layer may affect the behavior of another layer and therefore trigger a replay of the changes in terms of dependencies.
[0208] In step 338, the system monitors action chains and layer dependencies, and when any part of the dependency tree changes, it replays the action chain to restore the original, changed state.
[0209] Additional Features According to various embodiments, the systems and methods described herein may include various additional Additional features may be included, examples of which are described further below.
[0210] Semantic Model Testing to Production According to another embodiment, to support the use of test and production instances, the system may track changes made to the semantic model in a test environment and then remotely communicate the changes to the production environment after testing. The system may include locking, security, and role mapping to control how changes can be moved from the test environment to the production environment.
[0211] According to an embodiment, the system may support staging of advance fixes in a production environment. To support the use of test and production instances, the system may track changes made to the semantic model in the test environment and then remotely communicate the changes to the production environment after testing. The system may include locking, security, and role mapping to control how changes can be moved from the test environment to the production environment.
[0212] According to one embodiment, the system supports staging of anticipatory fixes in a production environment. When one or more planned customizations / changes to the semantic model are incompatible with the existing version used by the customer, they can be anticipated and rapidly staged on the customer instance. If the customer upgrades, the matching staged patch is picked up and applied when the customer upgrades. This may also be applicable when the provider of a particular customization / change and the provider of the base software are different.
[0213] Staging According to another embodiment, when the test instance is updated to a new version, the changes made to the semantic model and stored as deltas are replayed as described above, but instead of being pushed to production immediately, the changes are staged while production itself is updated to the new version. When production is updated to a new version (of the data warehouse or semantic model), the customized models and extensions are updated at the same time.
[0214] Temporary BI Server According to another embodiment, queries in a data analytics environment are often pushed to a BI server and then function-shipped to the data source. However, if there are multiple users working on customizing / extending the semantic model, the multiple users will need to share a common BI server. To provide a preview of the data for use during the development of the semantic model, the system temporarily spins up a (reduced / cut-down) version of the BI server to provide a data preview for use during development.
[0215] According to various embodiments, aspects of the disclosure are set forth in the following numbered clauses: 1. A system for providing scalability in an analytical application environment, comprising: a computer including one or more processors that provides access by the analytical application environment to at least one of a database or a data warehouse for storage of data; a semantic layer that enables semantic extensions to extend the semantic model for use with the data, and the system providing, in relation to a semantic model, a number of semantic extensions that define changes to the semantic model as a series of commits; In response to a request, it retrieves data from a database or data warehouse, processes the data according to a semantic model extended by semantic extensions, and provides the data to the presentation layer as custom content.
[0216] 2. The system of clause 1, including providing incremental changes to the semantic model, wherein changes to the semantic model are recorded in a hierarchical namespace, each change being associated with a particular layer in the hierarchical namespace.
[0217] 3. The system of clause 1, wherein the hierarchical namespace is defined by a file artifact having multiple regions associated with layers of the hierarchical name, and each change associated with a particular layer of the hierarchical namespace is defined within a corresponding region of the file artifact.
[0218] 4. The system described in clause 1, wherein the system performs an extract, transform, and load process in accordance with one or more analytical application schemas or customer schemas to receive data from an enterprise software application or data environment for loading into a data warehouse instance.
[0219] 5. The system described in clause 1, wherein the analytical application environment is provided within an analytics cloud environment.
[0220] 6. A method for providing scalability in an analytical application environment, comprising: providing, in a computer including one or more processors, an analytical application environment providing access to at least one of a database or a data warehouse for storage of data; providing a semantic extension to extend the semantic model for use with the data; The semantic model is provided as multiple hierarchical extension layers that define the changes to the semantic model by semantic extensions as a series of commits, Data is retrieved from a database or data warehouse in response to a request, processed according to a semantic model extended by semantic extensions, and provided to the presentation layer as custom content.
[0221] 7. The method of clause 6, comprising providing incremental changes to the semantic model, wherein changes to the semantic model are recorded in a hierarchical namespace, each change being associated with a particular layer in the hierarchical namespace.
[0222] 8. The method of clause 6, wherein the hierarchical namespace is defined by a file artifact having multiple regions associated with layers of the hierarchical name, and each change associated with a particular layer of the hierarchical namespace is defined within a corresponding region of the file artifact.
[0223] 9. The method of clause 6, further comprising performing an extract, transform, and load process in accordance with one or more analytical application schemas or customer schemas to receive data from an enterprise software application or data environment for loading into the data warehouse instance.
[0224] 10. The method described in clause 6, wherein the analytical application environment is provided within an analytics cloud environment.
[0225] 11. A non-transitory computer-readable storage medium having instructions that, when read and executed by a computer including one or more processors, cause the computer to perform a method, the method comprising: providing, in a computer including one or more processors, an analytical application environment providing access to at least one of a database or a data warehouse for storage of data; providing a semantic extension to extend the semantic model for use with the data; The semantic model is provided as multiple hierarchical extension layers that define the changes to the semantic model by semantic extensions as a series of commits, Data is retrieved from a database or data warehouse in response to a request, processed according to a semantic model extended by semantic extensions, and provided to the presentation layer as custom content.
[0226] 12. The non-transitory computer-readable storage medium of clause 11, including providing incremental changes to the semantic model, wherein changes to the semantic model are recorded in a hierarchical namespace, each change being associated with a particular layer of the hierarchical namespace.
[0227] 13. The non-transitory computer-readable storage medium of clause 11, wherein the hierarchical namespace is defined by a file artifact having multiple regions associated with layers of the hierarchical names, and each change associated with a particular layer of the hierarchical namespace is defined within a corresponding region of the file artifact.
[0228] 14. The non-transitory computer-readable storage medium of clause 11, further comprising performing an extract, transform, and load process in accordance with one or more analytical application schemas or customer schemas to receive data from an enterprise software application or data environment for loading into the data warehouse instance.
[0229] 15. The non-transitory computer-readable storage medium described in clause 11, wherein the analytics application environment is provided within an analytics cloud environment.
[0230] 16. A system for providing scalability in an analytical application environment, including support for a fragmented query model, comprising: a computer including one or more processors that provides access by the analytical application environment to at least one of a database or a data warehouse for storage of data; The system retrieves data from the database or data warehouse in response to a request and processes the data according to a semantic model extended by one or more semantic extensions; a representation of the semantic model, and changes to the semantic model defined by one or more semantic extensions, are stored as changes to a map of key-value pairs, and the representation is cached in memory as a data structure; In response to queries generated at runtime, the system dynamically merges changes defined by one or more semantic extensions with the base semantic model to surface data based on the extended semantic model.
[0231] 17. The representation of the semantic model, and changes to the semantic model defined by one or more semantic extensions, cached as data structures in memory, is used in conjunction with a data plane that provides access to the data warehouse. 16. The system of claim 16,
[0232] 18. The system of clause 16, wherein changes to the semantic model are recorded in a hierarchical namespace and processed as changes to the semantic model, each change providing an incremental change to the semantic model.
[0233] 19. The system of clause 16, wherein the system performs an extract, transform, and load process in accordance with one or more analytical application schemas or customer schemas to receive data from an enterprise software application or data environment for loading into the data warehouse instance.
[0234] 20. The system described in clause 16, wherein the analytical application environment is provided within an analytics cloud environment.
[0235] 21. A method for providing scalability in an analytical application environment, including support for a fragmented query model, comprising: providing, in a computer including one or more processors, an analytical application environment providing access to at least one of a database or a data warehouse for storage of data; providing semantic extensions to extend the semantic model for use with the data, the semantic model including a plurality of hierarchical extension layers that define modifications to the semantic model by the semantic extensions, the method further comprising: saving a representation of the semantic model and changes to the semantic model defined by the one or more semantic extensions as changes to a map of key-value pairs, the representation cached as a data structure in memory, the method further comprising: The method includes retrieving data from a database or data warehouse in response to queries generated at runtime, dynamically merging changes defined by one or more semantic extensions with the base semantic model, and surfacing the data based on the extended semantic model.
[0236] 22. The method of clause 21, wherein the representation of the semantic model and changes to the semantic model defined by one or more semantic extensions, cached as data structures in memory, are used in combination with a data plane that provides access to a data warehouse.
[0237] 23. The method of clause 21, comprising: changes to the semantic model being recorded in a hierarchical namespace and processed as changes to the semantic model, each change providing an incremental change to the semantic model.
[0238] 24. The method of clause 21, further comprising performing an extract, transform, and load process in accordance with one or more analytical application schemas or customer schemas to receive data from an enterprise software application or data environment for loading into the data warehouse instance.
[0239] 25. The method described in clause 21, wherein the analytical application environment is provided within an analytics cloud environment.
[0240] 26. A non-transitory computer-readable storage medium having instructions that, when read and executed by a computer including one or more processors, cause the computer to: Executing a method, the method comprising: providing, in a computer including one or more processors, an analytical application environment providing access to at least one of a database or a data warehouse for storage of data; providing semantic extensions to extend the semantic model for use with the data, the semantic model including a plurality of hierarchical extension layers that define modifications to the semantic model by the semantic extensions, the method further comprising: saving a representation of the semantic model and changes to the semantic model defined by the one or more semantic extensions as changes to a map of key-value pairs, the representation cached as a data structure in memory, the method further comprising: The method includes retrieving data from a database or data warehouse in response to queries generated at runtime, dynamically merging changes defined by one or more semantic extensions with the base semantic model, and surfacing the data based on the extended semantic model.
[0241] 27. The non-transitory computer-readable storage medium of clause 26, wherein the representations of the semantic model and changes to the semantic model defined by one or more semantic extensions, cached as data structures in memory, are used in combination with a data plane that provides access to the data warehouse.
[0242] 28. The non-transitory computer-readable storage medium of clause 26, wherein changes to the semantic model are recorded in a hierarchical namespace and treated as changes to the semantic model, each change providing an incremental change to the semantic model.
[0243] 29. The non-transitory computer-readable storage medium of clause 26, wherein the system performs an extract, transform, and load process in accordance with one or more analytical application schemas or customer schemas to receive data from an enterprise software application or data environment for loading into a data warehouse instance.
[0244] 30. The non-transitory computer-readable storage medium described in clause 26, wherein the analytics application environment is provided within an analytics cloud environment.
[0245] 31. A system for providing extensibility in an analytical application environment, including support for semantic model action sets and replay, comprising: a computer including one or more processors that provides access by the analytical application environment to at least one of a database or a data warehouse for storage of data; a semantic layer that enables semantic extensions to extend the semantic model for use with data, the semantic model including multiple hierarchical extension layers that define changes to the semantic model by the semantic extensions; The system captures user changes to each of the extension layers of the semantic model as multiple replayable actions; changes in one layer may affect the behavior of another layer, and those actions can be replayed on a version of the semantic model to update the semantic model with the associated changes.
[0246] 32. The system of clause 31, further comprising capturing changes to the extension layer as an action replay set, where changes in a first layer affect the operation of a second layer, and then triggering a replay of the changes in terms of dependencies.
[0247] 33. The system of clause 31, further comprising monitoring the action chains and layer dependencies in the dependency tree, and replaying the action chains to restore the semantic model to its original state when the dependency tree changes.
[0248] 34. The system of clause 31, wherein the system performs an extract, transform, and load process in accordance with one or more analytical application schemas or customer schemas to receive data from an enterprise software application or data environment for loading into a data warehouse instance.
[0249] 35. The system described in clause 31, wherein the analytical application environment is provided within an analytics cloud environment.
[0250] 36. A method for providing extensibility in an analytical application environment, including support for semantic model action sets and replay, comprising: providing, in a computer including one or more processors, an analytical application environment providing at least one of a database or a data warehouse for storage of data; and providing semantic layers that enable the semantic model to be extended for use with the data, the semantic model including a plurality of hierarchical extension layers that define modifications to the semantic model by the semantic extension, the method further comprising: This includes capturing user changes to each of the extension layers of the semantic model as multiple replayable actions, where changes in one layer may affect the behavior of another layer, and those actions can be replayed on a version of the semantic model to update the semantic model with the associated changes.
[0251] 37. The method of clause 36, further comprising capturing changes to the extension layer as an action replay set, where changes in a first layer affect the operation of a second layer, and then triggering a replay of the changes in terms of dependencies.
[0252] 38. The method of clause 36, further comprising monitoring the action chains and layer dependencies in the dependency tree, and replaying the action chains to restore the semantic model to its original state when the dependency tree changes.
[0253] 39. The method of clause 36, further comprising performing an extract, transform, and load process in accordance with one or more analytical application schemas or customer schemas to receive data from an enterprise software application or data environment for loading into the data warehouse instance.
[0254] 40. The method of clause 36, wherein the analytical application environment is provided within an analytics cloud environment.
[0255] 41. A non-transitory computer-readable storage medium having instructions that, when read and executed by a computer including one or more processors, cause the computer to perform a method, the method comprising: providing, in a computer including one or more processors, an analytical application environment providing at least one of a database or a data warehouse for storage of data; Semantic extension extends the semantic model for use with data. and providing a semantic layer that enables the semantic model to be modified by the semantic extensions, the semantic model including a plurality of hierarchical extension layers that define modifications to the semantic model by the semantic extensions, the method further comprising: This includes capturing user changes to each of the extension layers of the semantic model as multiple replayable actions, where changes in one layer may affect the behavior of another layer, and those actions can be replayed on a version of the semantic model to update the semantic model with the associated changes.
[0256] 42. The non-transitory computer-readable storage medium of clause 41, further comprising capturing changes to the extension layer as an action replay set, where changes in a first layer affect the operation of a second layer, and then triggering a replay of the changes in terms of dependencies.
[0257] 43. The non-transitory computer-readable storage medium of clause 41, further comprising: monitoring action chains and layer dependencies in the dependency tree; and, when the dependency tree changes, replaying action chains to restore the semantic model to its original state.
[0258] 44. The non-transitory computer-readable storage medium of clause 41, further comprising performing an extract, transform, and load process in accordance with one or more analytical application schemas or customer schemas to receive data from an enterprise software application or data environment for loading into the data warehouse instance.
[0259] 45. The non-transitory computer-readable storage medium described in clause 41, wherein the analytics application environment is provided within an analytics cloud environment.
[0260] According to various embodiments, the teachings herein may be conveniently implemented using one or more conventional general-purpose or special-purpose computers, computing devices, machines, or microprocessors, including one or more processors, memory, and / or computer-readable storage media, programmed according to the teachings of the present disclosure. Appropriate software coding may be readily prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software arts.
[0261] In some embodiments, the teachings herein may include a computer program product, which is a non-transitory computer-readable storage medium having stored thereon instructions that can be used to program a computer to perform any of the processes of the present teachings. Examples of such storage media may include, but are not limited to, hard disk drives, hard disks, hard drives, fixed disks, or other electromechanical data storage devices, floppy disks, optical disks, DVDs, CD-ROMs, microdrives and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems, or other types of storage media or devices suitable for non-transitory storage of instructions and / or data.
[0262] The above description has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the scope of protection to the precise form disclosed. Many modifications and variations will be apparent to those skilled in the art.
[0263] For example, some of the examples provided herein may compare the operation of an analytical application environment with that of an enterprise software application, such as an Oracle Fusion Applications environment, or together with your data environment or in a Software as a Service (SaaS) or cloud environment, such as Oracle Analytics Cloud or Oracle Cloud Infrastructure environments. Although described within the context of a cloud environment, according to various embodiments, the systems and methods described herein may be used with other types of enterprise software application or data environments, cloud environments, cloud services, cloud computing, or other computing environments.
[0264] The embodiments were chosen and described to best explain the principles of the present teachings and their practical application, and to enable those skilled in the art to appreciate various embodiments and variations thereof suited to the particular uses intended, the scope of which is intended to be defined by the following claims and their equivalents.
Claims
1. 1. A system for providing extensibility in an analytical application environment, including support for semantic model action sets and replay, comprising: a computer including one or more processors that provides access by the analytical application environment to at least one of a database or a data warehouse for storage of data; a semantic layer that enables semantic extensions to extend a semantic model for use with the data, the semantic model including a plurality of hierarchical extension layers that define changes to the semantic model by the semantic extensions; 1. A system for providing extensibility in an analytical application environment, including support for semantic model action sets and replay, wherein the system captures changes to each of the extension layers of the semantic model as multiple replayable actions, where changes in one layer may affect the behavior of another layer, and those actions may be replayed on a version of the semantic model to update the semantic model with associated changes.
2. 10. The system of claim 1, further comprising capturing changes to the extension layer as an action replay set, wherein changes in a first layer affect the operation of a second layer and then triggering a replay of the changes in terms of dependencies.
3. 10. The system of claim 1, further comprising: monitoring action chains and layer dependencies in a dependency tree; and, when the dependency tree changes, replaying action chains to restore the semantic model to an original state.
4. 10. The system of claim 1, wherein the system performs an extract, transform, and load process according to one or more analytical application schemas or customer schemas to receive data from enterprise software applications or data environments for loading into a data warehouse instance.
5. The system of claim 1 , wherein the analytical application environment is provided within an analytics cloud environment.
6. 1. A method for providing extensibility in an analytical application environment, including support for semantic model action sets and replay, comprising: providing, in a computer including one or more processors, an analytical application environment providing at least one of a database or a data warehouse for storage of data; and providing a semantic layer that enables a semantic model to be extended for use with the data, the semantic model including a plurality of hierarchical extension layers that define modifications to the semantic model by the semantic extension, the method further comprising:
1. A method for providing extensibility in an analytical application environment, including support for semantic model action sets and replay, comprising capturing changes to each of the extension layers of the semantic model as multiple replayable actions, where changes in one layer may affect the behavior of another layer, and those actions may be replayed on a version of the semantic model to update the semantic model with associated changes.
7. 7. The method of claim 6, further comprising capturing changes to the extension layer as an action replay set, wherein changes in a first layer affect the operation of a second layer and then triggering a replay of the changes in terms of dependencies.
8. 7. The method of claim 6, further comprising monitoring action chains and layer dependencies in a dependency tree, and replaying action chains to restore the semantic model to an original state when the dependency tree changes.
9. 10. The method of claim 6, further comprising performing an extract, transform, and load process according to one or more analytical application schemas or customer schemas to receive data from an enterprise software application or data environment for loading into the data warehouse instance.
10. The method of claim 6 , wherein the analytical application environment is provided within an analytics cloud environment.
11. A non-transitory computer-readable storage medium having instructions that, when read and executed by a computer including one or more processors, cause the computer to perform a method, the method comprising: providing, in a computer including one or more processors, an analytical application environment providing at least one of a database or a data warehouse for storage of data; and providing a semantic layer that enables a semantic model to be extended for use with the data, the semantic model including a plurality of hierarchical extension layers that define modifications to the semantic model by the semantic extension, the method further comprising:
1. A non-transitory computer-readable storage medium comprising: capturing changes to each of the extension layers of the semantic model as a plurality of replayable actions, wherein changes in one layer may affect the operation of another layer, and wherein those actions may be replayed on a version of the semantic model to update the semantic model with associated changes.
12. 12. The non-transitory computer-readable storage medium of claim 11, further comprising capturing changes to the extension layer as an action replay set, wherein changes in a first layer affect the operation of a second layer and then triggering a replay of the changes in terms of dependencies.
13. 12. The non-transitory computer-readable storage medium of claim 11, further comprising monitoring action chains and layer dependencies in a dependency tree, and when the dependency tree changes, replaying action chains to restore the semantic model to an original state.
14. 12. The non-transitory computer-readable storage medium of claim 11, further comprising performing an extract, transform, and load process according to one or more analytical application schemas or customer schemas to receive data from an enterprise software application or data environment for loading into the data warehouse instance.
15. The non-transitory computer-readable storage medium of claim 11 , wherein the analytics application environment is provided within an analytics cloud environment.