System and method for customization in an analytical application environment - Patents.com
The system addresses diverse customer data analytics needs by enabling expandability and customization through custom meaning extensions and data pipelines, ensuring efficient data integration and analysis.
Patent Information
- Application Number
- JP2021551956
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-05-06
- Filing Date
- 2020-05-06
- Publication Date
- 2025-01-30
- Estimated Expiration
- 2040-05-06
AI Technical Summary
Customers with different data analytics environments have varying demands for classifying, aggregating, and converting their data to provide data analytics or business intelligence, and existing systems lack the flexibility to accommodate these diverse needs effectively.
The system and method provide expandability and customization in the analysis application environment by using custom meaning extensions and a development environment to guide users in defining and expanding meaningful models, supported by data pipelines like ETL processes, allowing data to be loaded into customer-specific schemas and data warehouses.
Enables tailored data analytics solutions that meet diverse customer demands, enhancing data classification, aggregation, and conversion capabilities while optimizing data integration and analysis processes.
Smart Images

Figure 0007624398000001 
Figure 0007624398000002 
Figure 0007624398000003
Abstract
Description
[Technical field]
[0001] Copyright Notice A portion of the disclosure of this patent document contains material that is subject to copyright protection. As the patent document or patent disclosure is publicly disclosed in the U.S. Patent and Trademark Office patent files and records, the copyright owner has no objection to the copying thereof by anyone, but otherwise reserves all copyright rights without exception.
[0002] Priority claim This application claims the benefit of priority to U.S. Provisional Application No. 62 / 844,004, filed May 6, 2019, and entitled "SYSTEM AND METHOD FOR CUSTOMIZATION IN AN APPLICATION ANALYTICS ENVIRONMENT," which is incorporated herein by reference.
[0003] Technical Field FIELD OF THE DISCLOSURE
[0002] Embodiments described herein relate to computerized data analytics and computer-based delivery of business intelligence data, and more particularly to systems and methods that provide support for extensibility and customization in analytical application environments. [Background technology]
[0004] background Generally described, 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, while business intelligence tools provide an organization's business users with information that describes enterprise data in a form that enables strategic management decisions to be made.
[0005] There is growing interest in developing software applications that leverage the use of data analytics in connection with an organization's enterprise software application / data environment (e.g., an Oracle Fusion Applications environment or other type of enterprise software application / data environment) or in connection with 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).
[0006] However, different customers in data analytics environments will have different requirements for how their data is classified, aggregated, or transformed to provide data analytics or business intelligence data or to develop software analytic applications. Summary of the Invention [Means for solving the problem]
[0007] overview According to an embodiment, systems and methods are described herein that provide support for extensibility and customization in an analytical application environment. The analytical application environment provides an ELT (extract, store, load) process or other data pipeline / processing that can operate according to an analytical application schema and / or a customer schema associated with a customer (tenant) to receive data from a customer's enterprise software application / data environment for loading into a data warehouse instance. The semantic layer enables the use of custom semantic extension features to extend the semantic model and provides custom content to the presentation layer. When a user uses the custom semantic extension features to extend or customize the semantic model, an extension wizard or development environment guides the user through the definition of branches and steps. The extended or customized semantic model is then deployed to a production environment. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 illustrates a system for providing an analytical application environment according to an embodiment. [Diagram 2] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Diagram 3] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Figure 4] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Diagram 5] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Figure 6] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Figure 7] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Figure 8]FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Figure 9] FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment. [Figure 10] FIG. 2 illustrates a flowchart of a method for providing an analytical application environment, according to an embodiment. [Figure 11] FIG. 1 illustrates an analytical application environment that enables extensibility and customization, according to an embodiment. [Figure 12] FIG. 2 further illustrates extensibility and customization in an analytical application environment, according to an embodiment. [Figure 13] FIG. 2 further illustrates extensibility and customization in an analytical application environment, according to an embodiment. [Figure 14] FIG. 2 further illustrates extensibility and customization in an analytical application environment, according to an embodiment. [Figure 15] FIG. 1 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. 10 further illustrates support for multiple users in customizing or extending an analytical application environment, according to an embodiment. [Figure 18] FIG. 1 illustrates the use of custom semantic enhancement features in an analytical application environment, according to an embodiment. [Figure 19] FIG. 2 illustrates a self-service data model according to an embodiment. [Figure 20] FIG. 2 illustrates a curated data model according to an embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Detailed Description As discussed above, within an organization, data analytics enables the computer-based examination or analysis of large amounts of data in order to draw conclusions or other information from that data, while business intelligence tools provide an organization's business users with information that describes the enterprise data in a form that enables strategic management decisions to be made.
[0010] There is growing interest in developing software applications that leverage the use of data analytics in connection with an organization's enterprise software application / data environment (e.g., an Oracle Fusion Applications environment or other type of enterprise software application / data environment) or in connection with 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).
[0011] According to an embodiment, the analytic application environment enables data analytics associated with an organization's enterprise software application / data environment, or Software-As-A-Service or other type of cloud environment, and supports the development of computer-executable software analytic applications.
[0012] According to an embodiment, a data pipeline / processing, e.g., extraction, transformation, and loading processes, may operate according to an analytical application schema adapted to address a particular analytical use case or best practice to receive data from a customer's (tenant's) enterprise software application / data environment for loading into the data warehouse instance.
[0013] According to an embodiment, each customer (tenant) can be further associated with a customer tenancy and a customer schema. The data pipeline / processing adds data received from the enterprise software applications / data environment to the data warehouse instance and database tables as defined by the combination of the analytic application schema and the customer schema.
[0014] According to embodiments, technical advantages of the described systems and methods include utilizing a system-wide application schema or data model or a shared analytical application schema or data model maintained in an analytical application environment (cloud) tenancy in conjunction with tenant-specific customer schemas maintained in a customer tenancy to automatically or periodically (e.g., hourly / daily / weekly or other basis) populate or map actual data (actual tables) received from an enterprise software application / data environment to each customer's (tenant's) data warehouse instance or database table to reflect best practices for a particular analytical use case. Such analytical use cases may include Enterprise Resource Planning (ERP), Human Capital Management (HCM), Customer Experience (CX), Supply Chain Management (SCM), Enterprise Performance Management (EPM), or other types of analytical use cases. The populated data warehouse instance or database tables may then be utilized to create computer executable software analytical applications or to determine data analytics or other information associated with the data.
[0015] According to an embodiment, a computer-executable software analytic application may be associated with a data pipeline / processing, such as an ETL (extract, transform, load) process or an ELT (extract, load, transform) process, maintained by a data integration component, such as an ODI (Oracle Data Integrator) environment or other type of data integration component.
[0016] According to an embodiment, the analytical application environment can operate with a data warehouse environment or component, such as, for example, Oracle Autonomous Data Warehouse (ADW), Oracle Autonomous Data Warehouse Cloud (ADWC), or other types of data warehouse environments or components adapted to store large amounts of data. The data warehouse environment or component can be populated with data via star schemas obtained from, for example, enterprise software application / data environments, such as Oracle Fusion Applications, or other types of enterprise software application / data environments. Data made available to each customer (tenant) of the analytical application environment can be provisioned, for example, in an ADWC tenancy. The ADWC tenancy is associated with and accessible only to that customer (tenant), while providing access to other features of the shared infrastructure.
[0017] For example, according to an embodiment, an analytical application environment may include a data pipeline / processing tier coupled to a shared data pipeline / processing infrastructure that provides a common transformation map or repository. The data pipeline / processing tier enables customers (tenants) to ingest data extracted from their Oracle Fusion Applications environments that is loaded into a data warehouse instance within the ADWC tenancy, and includes support for functionality such as multiple data warehouse schemas, data extract and target schemas, and monitoring of the data pipeline / processing stages.
[0018] Introduction According to an 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 storing data collected by one or more business applications.
[0019] For example, according to an embodiment, a data warehouse environment or component may be provided as a multi-dimensional database employing OLAP (Online Analytical Processing) or other techniques to generate business-related data from multiple disparate sources of data. An organization may extract such business-related data from one or more vertical and / or horizontal business applications and inject the extracted data into a data warehouse instance associated with the organization.
[0020] Horizontal business applications include ERP, HCM, CX, SCM, and EPM, as mentioned above, and can provide a wide range of functions across various corporate organizations.
[0021] Vertical applications are generally narrower in scope than horizontal applications, but provide access to a set of data up or down within a defined area or industry, such as medical software or banking software for use within a particular organization.
[0022] Software vendors are increasingly offering enterprise software products or components, such as Oracle Fusion Applications, as SaaS or cloud-oriented offerings, 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 typically faced with the task of extracting data from horizontal and vertical line of business applications and putting the extracted data into a data warehouse, a process that can require both significant time and resources.
[0023] According to an embodiment, the analytical application environment enables a customer (tenant) to develop computer-executable software analytical applications for use with a BI component, such as, for example, an OBIA (Oracle Business Intelligence Applications) environment or other type of BI component adapted to examine large amounts of data obtained by the customer (tenant) itself or from multiple third-party entities.
[0024] For example, according to an embodiment, when used with a SaaS business productivity software product suite that includes a data warehouse component, the analytic application environment can be utilized to populate the data warehouse component with data from the business productivity software applications of the suite. Defined data integration flows can automate the ETL process of data between the business productivity software applications and the data warehouse, a process that may previously have been performed manually by users of the service.
[0025] As another example, according to embodiments, the analytical application environment can be pre-configured with a database schema for storing integrated data obtained across various business productivity software applications of the SaaS product suite. Such pre-configured database schema can be used to homogenize across the productivity software applications and corresponding transactional databases offered in the SaaS product suite while avoiding the user having to manually design, tune, and model the provided data warehouse.
[0026] As another example, according to an embodiment, the analytical application environment may be utilized to pre-populate the reporting interface of the data warehouse instance with associated metadata describing business-related data objects associated with various business productivity software applications, for example, to include pre-defined dashboards, key performance indicators (KPIs), or other types of reports.
[0027] Analytical Application Environment FIG. 1 is a diagram illustrating a system for providing an analysis application environment according to an embodiment.
[0028] As shown in FIG. 1, according to an embodiment, the analytical application environment 100 may be provided by or operate on a computer system having computer hardware (e.g., processor, memory) 101, one or more software components operating as a control plane 102 and a data plane 104, and providing access to a data warehouse or data warehouse instance 160.
[0029] According to an embodiment, the components and processes illustrated in FIG. 1 and further described 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.
[0030] For example, according to an embodiment, the components and processes described herein may be provided by a cloud computing system, or other suitably programmed computer system.
[0031] According to an embodiment, the control plane operates to control cloud or other software products offered in connection with a SaaS or cloud environment, such as, for example, an Oracle Analytics Cloud or Oracle Cloud Infrastructure environment, or any other type of cloud environment.
[0032] For example, according to an embodiment, under the control of a customer (tenant) 20 and / or a cloud environment having a provisioning component 111, the control plane may include a console interface 110 that allows access by a client computing device 10 having device hardware 12, management application 14, and user interface 16.
[0033] According to an 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).
[0034] For example, according to an embodiment, the console interface may provide an interface that enables a customer to provision services for use within the customer's SaaS environment, and an interface that enables the customer to configure those provisioned services.
[0035] According to an embodiment, the provisioning component may include various functions for provisioning the service specified by the provisioning command.
[0036] For example, according to an embodiment, a customer (tenant) can access and utilize the provisioning component via a console interface to purchase one or more suites of business productivity software applications along with a data warehouse instance for use with those software applications.
[0037] According to an embodiment, a customer (tenant) can request provisioning of a customer schema 164 in the data warehouse. The customer can also provide a number of attributes associated with the data warehouse instance through a console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size or speed). A provisioning component can then provision the requested data warehouse instance including the data warehouse customer schema and populate the data warehouse instance with the appropriate customer-provided information.
[0038] Additionally, according to an embodiment, the provisioning component can be utilized to update or edit a data warehouse instance and / or ETL processes operating in the data plane, for example, by changing or updating the requested frequency of ETL process execution for a particular customer (tenant).
[0039] Also, according to an embodiment, the provisioning component, as further described below, may comprise a provisioning application programming interface (API) 112, a number of workers 115, a metering manager 116, and a data plane API 118. When a command, instruction, or other input is received at the console interface to provision a service or change the configuration of a provisioned service within the SaaS environment, the console interface may communicate with the provisioning API, for example, by making an API call.
[0040] According to an embodiment, the data plane API can communicate with the data plane. For example, according to an embodiment, provisioning and configuration changes for services provided by the data plane may be communicated to the data plane via a data plane API.
[0041] According to an embodiment, the metering manager may include various functions for metering services and usage of services provisioned through the control plane.
[0042] For example, according to an 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 data warehouse storage space partitioned for use by a customer of a SaaS environment for billing purposes.
[0043] According to an embodiment, the data plane may include a data pipeline / processing layer 120 and a data transformation layer 134. Together, the data pipeline / processing layer 120 and the data transformation layer 134 process operational or transactional data from an organization's enterprise software application / data environment, such as, for example, business productivity software applications provisioned in a customer's (tenant's) SaaS environment. The data pipeline / processing may include various functions to extract transactional data from business applications and databases provisioned in the SaaS environment and then load the transformed data into a data warehouse.
[0044] According to an embodiment, the data transformation layer may include data models, such as knowledge models (KMs) or other types of data models, that the system utilizes to transform transactional data received from business applications and corresponding transactional databases provisioned in the SaaS environment into a model format understood by the analytical application environment. The model format may be provided in any data format suitable for storage in a data warehouse.
[0045] According to an embodiment, the data pipeline / processing provided by the data plane may comprise a monitoring component 122, a data staging component 124, a data quality component 126, and a data projection component 128, as further described below.
[0046] According to an embodiment, the data transformation layer may include a dimension creation component 136, a fact creation component 138, and an aggregate creation component 140, as described further below. The data plane may also include a data / configuration user interface 130 and a mapping / configuration database 132.
[0047] According to an embodiment, the data warehouse may include a default analysis application schema (referred to herein, in accordance with some embodiments, as an analysis warehouse schema) 162 and customer schemas, as described above, for each customer (tenant) of the system.
[0048] According to an embodiment, the data plane is responsible for performing ETL (extract, transform, load) operations that include extracting transactional data from an organization's enterprise software application / data environment, such as business productivity software applications and corresponding transactional databases provided in a SaaS environment, transforming the extracted data into a model format, and loading the transformed data into customer schemas in a data warehouse.
[0049] For example, according to an embodiment, each customer (tenant) of the environment may be associated with its own customer tenancy in the data warehouse. The customer tenancy may be associated with its own customer schema and may additionally be provided with read-only access to an analytical application schema. The analytical application schema may be updated periodically or on other basis by a data pipeline / processing, e.g., an ETL process.
[0050] According to an embodiment, to support multiple tenants, the system may enable the use of multiple data warehouses or multiple data warehouse instances.
[0051] For example, according to an embodiment, a first warehouse customer tenancy of a first tenant may be comprised of a first database instance, a first staging area, and a first data warehouse instance of the multiple data warehouses or multiple data warehouse instances, and a second customer tenancy of a second tenant may be comprised of a second database instance, a second staging area, and a second data warehouse instance of the multiple data warehouses or multiple data warehouse instances.
[0052] According to an embodiment, the data pipeline / processing can be scheduled to extract transactional data at regular intervals (e.g., hourly / daily / weekly) from an enterprise software application / data environment, such as, for example, a business productivity software application and corresponding transaction database 106 provisioned in a SaaS environment.
[0053] According to an embodiment, an extraction process 108 can extract the transactional data, which can then be inserted into a data staging area by a data pipeline / processing. The data staging area can act 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.
[0054] For example, according to an embodiment, the data quality component can perform validation of the extracted data while it is temporarily held in the data staging area.
[0055] According to an embodiment, once the extraction process has completed the extraction, a data transformation layer can begin a transformation process to change the extracted data into a model format for loading into the customer schema of the data warehouse.
[0056] As described above, according to an embodiment, the data pipeline / processing can work in conjunction with a data transformation layer to transform data into a model format. A mapping / configuration database can store metadata and data mappings that define the data models used by the data transformation. A data / configuration user interface (UI) can facilitate access to and modification of the mapping / configuration database.
[0057] According to an embodiment, based on the data model defined in the mapping / configuration database, the monitoring component can determine dependencies of the different data sets to be converted. Based on the determined dependencies, the monitoring component can determine which of the different data sets should be converted to the model format first.
[0058] For example, according to an embodiment, if a first model dataset has no dependencies on other model datasets, and a second model dataset has a dependency on the first model dataset, the monitoring component can transform the first dataset before the second dataset to accommodate the dependency of the second dataset on the first dataset.
[0059] According to an embodiment, the data transformation layer can transform the extracted data into a format suitable for loading into a data warehouse customer schema, for example according to a data model as described above. During transformation, the data transformation can create dimensions, create facts, and create aggregates as appropriate. Creating dimensions can include creating dimensions or fields for loading into the data warehouse instance.
[0060] For example, according to an embodiment, a dimension may include a number of categories of data, such as, for example, "Name," "Address," or "Age." Creating a fact involves creating values that data can take on or that can be "measured." Facts are mapped to appropriate dimensions in the data warehouse instance. Creating an aggregate involves creating a data mapping that computes an aggregation of transformed data to existing data in the customer schema 164 of the data warehouse instance.
[0061] According to an embodiment, once the transformations have been performed (as defined by the data model), a data pipeline / processing can read the source data, apply the transformations, and send this data to a data warehouse instance.
[0062] According to an embodiment, data transformations can be expressed as rules and values can be persisted in a staging area as soon as the transformations are performed. In the staging area, data quality and data projection components can validate the integrity of the transformed data before it is uploaded to a customer schema in a data warehouse instance. Monitoring can occur as the extract, transform, load process is executed, for example, on multiple compute instances or multiple virtual machines. Also, dependencies can be persisted during the extract, transform, load process and the data pipeline / processing can handle such ordering decisions.
[0063] According to an embodiment, after transforming the extracted data, the data pipeline / processing can execute a warehouse load procedure 150 to load the transformed data into a customer schema instance of the data warehouse. Following loading the transformed data into the customer schema, the transformed data can be analyzed and utilized in a variety of additional business intelligence processes.
[0064] Horizontally and vertically integrated business software applications are generally targeted at collecting data in real time, since horizontally and vertically integrated business software applications are generally utilized for daily workflow and store data in transactional databases, i.e., typically only the most recent data is stored in such databases.
[0065] For example, an HCM application may update records associated with an employee if the employee moves locations, but such HCM applications typically do not maintain records of each location that the employee has worked at during their tenure with the company. Thus, BI-related queries that attempt to determine employee movements within the company do not have sufficient records in the transactional database to complete such queries.
[0066] According to an embodiment, by storing historical data in addition to current data generated by horizontally and vertically integrated business software applications in a context that is easily understood by a BI application, a data warehouse instance populated using the above techniques provides resources for the BI application to process such queries, for example, utilizing an interface provided by a business productivity / analytics product suite or by a customer's chosen SQL tool.
[0067] Data Pipeline Process FIG. 2 further illustrates a system for providing an analytical application environment, according to an embodiment.
[0068] 2, according to an embodiment, the data pipeline process described above can be utilized to obtain data, for example, from a customer's (tenant's) enterprise software application / data environment (106) and, in the case of custom data 109, from one or more customer-specific applications 107, and loaded into a data warehouse instance. In some examples, the data warehouse instance includes the use of object storage 105 to store the data.
[0069] According to an embodiment, the data pipeline / processing maintains an analytical application schema, e.g., as a star schema, for each customer (tenant), which is updated by the system periodically or on other basis according to best practices for a particular analytical use case, e.g., Human Capital Management (HCM) analytics or Enterprise Resource Planning (ERP) analytics.
[0070] According to an embodiment, for each customer (tenant), the system utilizes an analytic application schema that the system maintains and updates in the analytic application environment (cloud) tenancy 114 to pre-populate the customer's data warehouse instance based on analysis of data in that customer's enterprise application environment and in the customer tenancy 117. In this manner, the analytic application schema maintained by the system enables the data pipeline / processing to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance.
[0071] Also, according to an embodiment, the analytic application environment provides, for each customer of the environment, a customer schema that the customer can easily modify. The customer schema allows 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. The contents of this database are partly controlled by the customer and partly controlled by the analytic application environment (system), including cases where the database is pre-populated with appropriate data retrieved from the enterprise application environment to address various analytic use cases, such as HCM analytics or ERP analytics.
[0072] For example, according to an embodiment, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include analytical application schemas and customer schemas sourced from the enterprise software application / data environment for each customer / tenant. Data provisioned in the data warehouse tenancy (e.g., ADWC tenancy) is accessible only to that tenant, but at the same time enables access to various functions, e.g., ETL-related functions or other functions of the shared analytical application environment.
[0073] According to an embodiment, to support multiple customers / tenants, the system enables the use of multiple data warehouse instances. For example, a first customer tenancy may be comprised of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may be comprised of a second database instance, a second staging area, and a second data warehouse instance.
[0074] According to an embodiment, for each particular customer / tenant, once that data has been extracted, a data pipeline / processing can insert the extracted data into a data staging area for the tenant. The data staging area can act 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 validating the extracted data while it is temporarily held in the data staging area. Once the extraction process has completed the extraction, a data transformation layer can be used to initiate a transformation process to change the extracted data into a model format for loading into the customer schema in the data warehouse.
[0075] Extract, Transform, Load / Publish FIG. 3 further illustrates a system for providing an analytical application environment, according to an embodiment.
[0076] As shown in FIG. 3 , in accordance with an embodiment, utilizing the data pipeline process described above to, for example, extract data from a customer's (tenant's) enterprise software application / data environment, or in the case of custom data, source that data from one or more customer-specific applications, and load or refresh this data in a data warehouse instance generally involves three broad stages performed by ETP services 160 or processes including one or more of an extract service 163, a transform service 165, and a load / publish service 167 performed by one or more compute instance(s) 170.
[0077] Extraction: According to an embodiment, a list of view objects to extract can be submitted to an OracleBICC (Oracle BI Cloud Connector) component, for example by a ReST call. The extracted files can be uploaded to an object storage component for storing data, such as an OSS (Oracle Storage Service) component.
[0078] Transformation: According to an embodiment, the transformation process takes data files from an object storage component (e.g., OSS) and applies business logic while loading the data files into a target data warehouse, such as an ADWC database. The target data warehouse exists inside the data pipeline / processing and is invisible to the customer (tenant).
[0079] Load / Publish: According to an 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).
[0080] Multiple customers (tenants) FIG. 4 further illustrates a system for providing an analytical application environment, according to an embodiment.
[0081] As shown in FIG. 4, which illustrates operation of an embodiment of a system with multiple tenants (customers), the data pipeline process described above can be used to obtain data from, for example, each of multiple customer (tenant) enterprise software application / data environments and load it into a data warehouse instance.
[0082] According to an embodiment, the data pipeline / processing maintains an analytical application schema for each of multiple customers (tenants), e.g., Customer A 180, Customer B 182, that the system updates periodically or on other basis according to best practices for the particular analytics use case.
[0083] According to an embodiment, for each of a number of customers (e.g., Customer A, B), the system utilizes analytical application schemas 162A, 162B maintained and updated by the system to pre-populate the customer's data warehouse instance so that a data pipeline / processing can retrieve data from the customer's environment and load it into the customer's data warehouse instance 160A, 160B based on analysis of data in that customer's enterprise application environment 106A, 106B and in each customer's tenancy (e.g., Customer A tenancy 181, Customer B tenancy 183).
[0084] According to an embodiment, the analytic application environment also provides a customer schema (e.g., customer A schema 164A, customer B schema 164B) for each of multiple customers of the environment, which enables the customers to supplement and utilize the data in their data warehouse instance.
[0085] As described above, according to an embodiment, for each of multiple customers of the analytical application environment, the resulting data warehouse instance acts as a database, the contents of which are partly controlled by the customer and partly controlled by the analytical application environment (system), including where the database is pre-populated with appropriate data retrieved from the enterprise application environment to address various analytical use cases. Upon completion of the extraction process 108A, 108B for a particular customer, a data transformation layer can be used to initiate a transformation process that changes the extracted data into a model format for loading into the customer schema of the data warehouse.
[0086] Activation Plan FIG. 5 further illustrates a system for providing an analytical application environment, according to an embodiment.
[0087] According to an embodiment, activation plans 186 may be utilized to control the operation of a customer's data pipeline / processing services for a particular functional area to address the specific needs of that customer (tenant).
[0088] For example, according to an embodiment, an activation plan may specify multiple extract services / steps, transform services / steps, and store (publish) services / steps to be executed in a particular order, at a particular time, and within a particular time period.
[0089] According to an embodiment, each customer may be associated with its own activation plan(s). For example, a first customer A's activation plan may determine which tables to retrieve from that customer's enterprise software application environment (e.g., a Fusion Applications environment) or determine how services and their processes are sequenced, and a second customer B's activation plan may similarly determine which tables to retrieve from that customer's enterprise software application environment or determine how services and their processes are sequenced.
[0090] According to an embodiment, activation plans can be stored in a mapping / configuration database and can be customized by customers via a data / configuration UI. Each customer can have multiple activation plans. Compute instances / services (virtual machines) running ETL processes for various customers can be dedicated to a specific service to use the activation plan according to the activation plan and then released for use by other services and activation plans.
[0091] According to an embodiment, based on determining historical performance data recorded over a period of time, the system can optimize the execution of, for example, an activation plan for one or more functional areas associated with a particular tenant, or an entire set of activation plans associated with multiple tenants, to address the utilization of VMs and Service Level Agreements (SLAs) for those tenants. Such historical data can include load volume and load time statistics.
[0092] For example, according to an embodiment, the historical data may include extract size, number of extracts, extract time, warehouse size, conversion time, publish (load) time, view object extract size, number of view object extract records, view object extract time, number of warehouse tables, number of processed records for a table, warehouse table conversion time, number of publish tables, and publish time. Such historical data may be utilized to forecast and plan current and future activation plans, for example, to orchestrate various tasks to execute sequentially or in parallel to achieve minimum time execution of an activation plan. In addition, the collected historical data may be utilized to optimize the overall activation plans of a tenant. In some embodiments, optimization of activation plans (i.e., jobs that are executed in a particular order, such as ETL) based on historical data may be automated.
[0093] ETL process flow FIG. 6 further illustrates a system for providing an analytical application environment, according to an embodiment.
[0094] As shown in Figure 6, an embodiment enables the flow of data from each customer's enterprise software application environment (e.g., Fusion Applications environment) controlled by a data configuration / management / ETL / status service 190 in a (e.g., Oracle) management tenancy. In this example, the data flow includes data flow through a BICC component, a storage cloud service 192, e.g., an OSS, and from there to a data warehouse instance.
[0095] As discussed above, according to an embodiment, the flow of data may be managed by one or more services (e.g., including the extraction services discussed above, transformation services, as described in ETL repository 193) that take data from the storage cloud services and load it into an internal target data warehouse (e.g., ADWC database) 194. The target data warehouse is internal to the data pipeline / processing and is invisible to the customer.
[0096] According to an embodiment, data is moved in multiple stages to the data warehouse and then to database table change log 195. A load / publish service can load customer data from database table change log 195 into a target data warehouse instance in the customer tenancy that is associated with and accessible to the customer.
[0097] ETL Stages FIG. 7 further illustrates a system for providing an analytical application environment, according to an embodiment.
[0098] According to an embodiment, extracting data from enterprise applications, transforming it, and loading it into a data warehouse instance involves multiple stages, each of which may have several sequential or parallel jobs, running on different space / hardware, including different staging areas 196, 198 for each customer.
[0099] Analyze Application Environment Metrics FIG. 8 further illustrates a system for providing an analytical application environment, according to an embodiment.
[0100] As shown in FIG. 8, according to an embodiment, the metering manager may provide provisioned metrics 142 including functionality for metering services and usage of services provisioned through the control plane.
[0101] For example, a metering manager can record the usage of processors provisioned through the control plane over time for a particular customer (tenant) for billing purposes. Similarly, a metering manager can record the amount of data warehouse storage space partitioned for use by a customer of a SaaS environment for billing purposes.
[0102] Customizing your analytical application environment FIG. 9 further illustrates a system for providing an analytical application environment, according to an embodiment.
[0103] 9, according to an embodiment, in addition to data available from the customer's enterprise software applications / data environment using, for example, the data pipeline process described above, one or more additional custom data 109A, 109B available from one or more customer specific applications 107A, 107B may be extracted, transformed, and loaded into the data warehouse instance using either a data pipeline process as described above, including in some examples using object storage for storing the data, and / or a custom ETL process 144 or other process that may be modified from a customer perspective. Once the data is loaded into the data warehouse instance, the customer may create business database views that combine tables from both the customer schema and the software analytic application schema, and may query the data warehouse instance using, for example, an interface provided by the business productivity / analytics product suite or by the customer's SQL tool of choice.
[0104] Analytical Application Environment Methodology FIG. 10 illustrates a flow diagram of a method for providing an analytical application environment, according to an embodiment.
[0105] As shown in Figure 10, according to an embodiment, the analytical application environment provides access to a data warehouse for storing data by multiple tenants at step 200. The data warehouse is associated with an analytical application schema.
[0106] In step 202, each tenant of the multiple tenants is associated with a customer tenancy and a customer schema that the tenant will use when adding data to the data warehouse instance.
[0107] At step 204, the data warehouse instance is populated with the data received from the enterprise software application / data environment. Data associated with a particular tenant in the analytic application environment is provisioned in the data warehouse instance accessible to the particular tenant according to the analytic application schema and customer schema associated with the particular tenant.
[0108] Hybrid SaaS / PaaS model Customers in different data analytics environments will have different requirements for how their data is classified, aggregated, or transformed to provide data analytics or business intelligence data or to develop software analytic applications.
[0109] According to an embodiment, to support such different requirements, the system may include a semantic layer. The semantic layer enables the use of custom semantic extensions to extend the semantic data model (semantic model) and to provide custom content to the presentation layer. When a user uses the custom semantic extensions to extend or customize the semantic model, an extension wizard or development environment guides the user through the definition of branches and steps. The extended or customized semantic model is then deployed to a production environment.
[0110] According to various embodiments, technical advantages of the described techniques include support for other types of data sources. For example, a user may perform data analytics based on a combination of ERP data from a first vendor's product and HCM data from a second, different vendor's product, or based on a combination of data received from multiple data sources, each with different regulatory requirements. User-defined extensions or customizations may survive patches, updates, or other changes made to the underlying system.
[0111] FIG. 11 illustrates a system for supporting extensibility and customization in an analytical application environment, according to an embodiment.
[0112] According to an embodiment, the semantic layer may include data that defines a semantic model of a customer's data, which is useful for helping users understand or 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 where calculations may be defined, and a presentation layer that allows users to access the data as content.
[0113] 11, according to an embodiment, the semantic layer 230 may include a packaged (out-of-the-box) semantic model 232. The semantic model 232 may be used to provide packaged content 234. For example, the system may utilize the ETL process or other data pipeline / processing described above to load data from a customer's enterprise software applications / data environment into a data warehouse instance. The packaged semantic model may then be used to provide the packaged content to the presentation layer.
[0114] Additionally, according to an embodiment, the semantic layer can be associated with one or more semantic extension features 236. The semantic extension features 236 can be used to extend the packaged semantic model and / or provide custom content 238 to the presentation layer 240.
[0115] According to an embodiment, the presentation layer can enable access to the data content, for example, using 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, for example, Oracle Analytics Cloud or Oracle Analytics for Applications.
[0116] Branches and Steps FIG. 12 further illustrates extensibility and customization in an analytical application environment, according to an embodiment.
[0117] 12, according to an embodiment, a user can extend or customize the semantic model 250 with one or more custom semantic extension features. The semantic model 250 can then be used by the system to provide custom content to the presentation layer.
[0118] For example, according to an embodiment, a user may utilize a client (computer) device 252 having device hardware 254 and a user interface 256 to interact with or operate an extension wizard 258 or software development component that guides the user through customization and use of custom semantic extension features.
[0119] According to an embodiment, a user can edit or create new customization branches 260 to extend or customize the semantic model. Selection of a branch gives the user an instance of the semantic model to use that incorporates a particular customization or extension. Each branch acts as a minimum work unit and can include one or more customization steps associated with a customization type and a corresponding extension function. The extension wizard can be a data-aware wizard and can provide a preview of the underlying data as the branch is customized. For example, when the user specifies a particular branch to customize, the extension wizard can present a table of example data for the user to review and then guide the user, for example, to customize a definition or aggregation operation for use with that data. Different types of branches can be associated with different extension wizards.
[0120] FIG. 13 further illustrates extensibility and customization in an analytical application environment, according to an embodiment.
[0121] As shown in FIG. 13, according to an embodiment, the extension wizard can guide the user through operations 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 to review or complete. These screens may vary depending on the type of extension. Upon successful completion of a step, the user can test the customization for the branch, add more steps, or apply the changes (265). The customized branch can then be merged into the (main) semantic model (266).
[0122] FIG. 14 further illustrates extensibility and customization in an analytical application environment, according to an embodiment.
[0123] As shown in FIG. 14, in an embodiment, the system can publish (267) and / or promote (268) changes to the semantic model, for example as an RPD (Oracle BI Repository) file or other type of file or metadata.
[0124] Multi-user Development Environment In a typical enterprise organization, there are many users who are responsible for developing software analytical applications or producing data analytics or business intelligence data. To support this, according to an embodiment, the system allows multiple users to work simultaneously to develop extensions or customizations to the semantic model, with the changes eventually being merged into the (main) semantic model.
[0125] FIG. 15 illustrates support for multiple users in customizing or extending an analytical application environment, according to an embodiment.
[0126] As shown in FIG. 15, according to an embodiment, each of a number of users A-D can work on instantiating a semantic model using one or more custom semantic extension features as described above, and can make modifications 284-288 to the semantic model as extensions or customizations.
[0127] According to an embodiment, once each user has finished their customizations, they can be merged into the (main) semantic model. For example, a first user A may create a new branch for customizing General Ledger (GL) Profitability for a financial application, including adding a region dimension (step 1), extending a cost center dimension (step 2), defining a territory hierarchy (step 3), and adding travel expense calculations (step 4). User A's customizations can then be applied and merged into the (main) semantic model.
[0128] FIG. 16 further illustrates support for multiple users in customizing or extending an analytical application environment, according to an embodiment.
[0129] 16, according to an embodiment, a second user B may create a new branch for customizing GL detailed transactions, including adding a territory dimension (step 1) and adding a starting amount calculation (step 2), and a third user C may create a new branch for customizing GL balance sheet, including adding a location dimension (step 1), adding a cash on hand calculation (step 2), and creating a GL aggregation subject area (step 3). The customizations provided by each of users B and C may likewise be applied and merged into the (main) semantic model.
[0130] FIG. 17 further illustrates support for multiple users in customizing or extending an analytical application environment, according to an embodiment.
[0131] As shown in FIG. 17, in accordance with an embodiment, the system can support different versions of a semantic model, including determining whether ID changes to a semantic model require a re-branch or determining whether the semantic model is ready for production.
[0132] For example, each of the above users may develop customizations for a first version (v1.0) of the semantic model, but a fourth user D may start work on creating a new branch for a new version (v1.1) of the semantic model, for example including the addition of a strategic supplier dimension (step 1) or the extension of the region dimension (step 2).The system can also determine whether changes to a particular version of the semantic model require re-creating a branch for a particular set of customizations, for example the customizations provided by user B.
[0133] Use in production According to an embodiment, the system can control definitional changes to the semantic models utilized in generating reports (e.g., changing the definition of revenue) to ensure that business intelligence data is generated accurately.
[0134] For example, in an embodiment, the system can ensure that semantic model extensions are initially only allowed in development / test environments and are prohibited in production environments until controls allow administrators to review customized branches and promote these customizations to production.
[0135] FIG. 18 is a diagram illustrating the use of custom semantic enhancement features in an analytical application environment, according to an embodiment.
[0136] 18, according to an embodiment, an administrator can control the promotion of user-developed customizations to a semantic model to a production environment using a client (computer) device having an administrator interface 290. This control can include, for example, reviewing branches developed by multiple users and combining or determining the priority of which changes to promote.
[0137] Advantages of the described approach include the ability of user-defined extensions or customizations to survive patches, updates, or other changes made to the underlying system. When a patch or update is applied to an immutable aspect of the semantic model, customizations that were provided as semantic extensions are preserved. Following a patch or update, the system can automatically re-run the extension. If an extension fails due to underlying changes made to the semantic model, an administrator can evaluate the changes and provide explanations for possible fixes. Potential conflicts can be handled gracefully, and administrators can be notified accordingly if it appears impossible to fully apply all extensions.
[0138] Data Layer Extensibility and Customization According to an embodiment, in addition to data sourced from customer environments using the ETL or other data pipelines / processing described above, customer data can be loaded into the data warehouse instance using a variety of data models / scenarios that provide opportunities for further extensibility and customization.
[0139] FIG. 19 is a diagram illustrating a self-service data model according to an embodiment. As shown in FIG. 19, according to an embodiment, a self-service data model / scenario allows a customer to load external or custom data as a custom dataset 292 using an ETL process or other data pipeline / processing provided by the system. The system provides dimensional conformance. The customer can define one or more "live" datasets populated by the system and combine the "live" datasets with external datasets to create a combined dataset that can be queried. In this scenario, customer responsibilities typically include manually refreshing the datasets and enforcing the security of the datasets.
[0140] FIG. 20 illustrates a curated data model according to an embodiment. As shown in FIG. 20, according to an embodiment, a curated data model / scenario provides a centralized or managed analytics environment, where the system-provided ETL process or other data pipeline / processing exposes customer data to an analytical application schema that cannot be altered, and the customer onboards external or custom data into the customer schema using custom ETL (144) or other data pipeline / processing. The customer can create business database views that join system-managed custom tables and query the joined data using the customer's tools of choice. In this scenario, the customer's responsibilities typically include loading and refreshing data into the customer schema using custom ETL processes or other data pipelines / processing.
[0141] The above examples of curated self-service data models / scenarios are examples, and according to various embodiments, the system can support other types of data models / scenarios.
[0142] According to various embodiments, the teachings herein may be conveniently implemented by one or more conventional general purpose or special purpose digital 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. A programmer skilled in the art can readily prepare appropriate software coding based on the teachings of the present disclosure, as will be apparent to one skilled in the software arts.
[0143] In some embodiments, the present invention includes a computer program product that is a non-transitory computer readable storage medium (or storage media) having instructions stored thereon. A computer can be programmed to perform any of the processes of the present teachings using the computer program product. For example, such storage media can include, but are not limited to, any type of disk, including hard disk drives, hard disks, 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 temporarily storing instructions and / or data.
[0144] 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.
[0145] For example, although some of the examples provided herein illustrate operation of an analytics application environment with an enterprise software application / data environment, such as, for example, an Oracle Fusion Applications environment, or within the context of a Software-As-A-Service (SaaS) or cloud environment, such as, for example, an Oracle Analytics Cloud or Oracle Cloud Infrastructure environment, according to various embodiments, the systems and methods described herein may be used with other types of enterprise software application / data environments, cloud environments, cloud services, cloud computing, or other computing environments.
[0146] The embodiments have been selected and described to best explain the principles of the present teachings and their practical application, thereby enabling those skilled in the art to appreciate the various embodiments and, in addition, various modifications thereof suited to particular applications contemplated. The scope of the present disclosure is indicated by the appended claims and their equivalents.
Claims
1. 1. A system for providing extensibility and customization in an analytical application environment, comprising: a computer including one or more processors that provides access by an analytical application environment to a data warehouse for storing data by a plurality of tenants; The analysis application environment includes: The data warehouse; and a semantic layer including packaged semantic models for defining a semantic model of the data stored in the data warehouse; a presentation layer that presents the packaged data using the semantic model; Each tenant of the plurality of tenants is associated with a customer tenancy and a customer schema used to populate the data warehouse instance; the system is configured to perform an extract, transform, load process, or other data pipeline or processing in accordance with an analytic application schema and / or the customer schema associated with a tenant, and to receive data from an enterprise software application or data environment of the tenant for loading into a data warehouse instance; the semantic layer is configured to enable the use of custom semantic extension functions to extend the packaged semantic model and to provide custom content to a presentation layer, the system further comprising: an extension wizard that allows a user to create one or more customization branches for extending or customizing the semantic model; The extension wizard: Selecting the customization branch generates an instance of the semantic model associated with one or more custom semantic extensions; Editing and testing said customization branch; The system is configured to be able to merge the customization branch into the semantic model in a production environment.
2. The system supports multiple users to customize or extend an analytical application environment; The customizing or extending step includes: each of said plurality of users working on an instantiation of said semantic model with one or more custom semantic extension features to make modifications to said semantic model as extensions or customizations; and b) individually merging each of the customization branches of the plurality of users into the semantic model.
3. 3. The system of claim 2, wherein the extension wizard is configured to individually merge each of the customization branches of the multiple users into the semantic model, thereby enabling customizations or extensions developed by the multiple users to be deployed in the production environment.
4. The system according to any one of claims 1 to 3, wherein the analysis application environment is provided within a cloud environment.
5. 1. A method for providing extensibility and customization in an analytical application environment, comprising: providing, in a computer having one or more processors, an analytic application environment providing access by the analytic application environment to a data warehouse for storing data by a plurality of tenants; Each tenant of the plurality of tenants is associated with a customer tenancy and a customer schema used to populate the data warehouse instance; The method further includes receiving data from an enterprise software application or data environment of the tenant for loading into a data warehouse instance by performing an extract, transform, load process, or other data pipeline or processing in accordance with an analytic application schema and / or the customer schema associated with the tenant; providing, at a semantic layer, a packaged semantic model for defining a semantic model of the data loaded into the data warehouse instance; presenting the packaged data using the semantic model in a presentation layer; enabling, in the semantic layer, the use of custom semantic extension features for extending a packaged semantic model and for providing custom content to a presentation layer; providing an extension wizard that allows a user to create one or more customization branches to extend or customize the semantic model; The extension wizard: Selecting the customization branch generates an instance of the semantic model associated with one or more custom semantic extensions; Editing and testing said customization branch; The method is configured to allow the customization branch to be merged into the semantic model in a production environment.
6. The method further includes supporting multiple users to customize or extend the analytical application environment; The customizing or extending step includes: each of said plurality of users working on an instantiation of said semantic model with one or more custom semantic extension features to make modifications to said semantic model as extensions or customizations; and b) individually merging each of the customization branches of the plurality of users into the semantic model.
7. 7. The method of claim 6, wherein each of the customization branches of the multiple users is individually merged into the semantic model, such that customizations or extensions developed by the multiple users can then be deployed to the production environment.
8. The method according to any one of claims 5 to 7, wherein the analytical application environment is provided in a cloud environment.
9. A computer program comprising instructions which, when read and executed by a computer comprising one or more processors, cause the computer to perform the method of any one of claims 5 to 8.
Citation Information
Patent Citations
Sale prediction engine rules
US20140149180A1
Machine learning based analytics platform
US20180012145A1
Generating domain-specific process studios
US20180039921A1