Systems and methods for data analysis by analyzing application environments

By analyzing the data pipeline processing of the application environment, the problem of automatically extracting, transforming and loading data into the data warehouse in enterprise software applications was solved, realizing efficient data warehouse population and analysis application development, and supporting a variety of analysis use cases.

CN112997168BActive Publication Date: 2025-12-23ORACLE INT CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080006157.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-08-09
Filing Date
2020-04-29
Publication Date
2025-12-23
Estimated Expiration
2040-04-29

AI Technical Summary

Technical Problem

In enterprise software applications or data environments, existing technologies struggle to efficiently and automatically extract, transform, and load data from transactional databases into data warehouses, especially in SaaS or cloud environments, resulting in excessive resource consumption and time expenditure.

Method used

It provides an analytical application environment that receives data from enterprise software applications or data environments through data pipelines or processes, based on specific analytical use cases and best practices, and loads it into data warehouse instances, combining analytical application patterns and customer patterns to achieve automated ETL processing.

Benefits of technology

It enables automatic or periodic data warehouse population, reduces manual intervention, improves data analysis efficiency, supports the development of computer-executable software analysis applications, and meets the needs of various analysis use cases.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112997168B_ABST
    Figure CN112997168B_ABST
Patent Text Reader

Abstract

According to embodiments, the analytics application environment enables data analytics in the context of an organization's enterprise software applications or data environment, or a software-as-a-service or other type of cloud environment; and supports the development of computer-executable software analytics applications. Data pipelines or processes, such as, for example, extract, transform, load processes, can operate according to analytics application patterns adapted to address specific analytics use cases or best practices to receive data from a customer's (tenant's) enterprise software applications or data environment for loading into a data warehouse instance. Each customer (tenant) can additionally be associated with a customer lease and a customer pattern. The data pipelines or processes populate their data warehouse instances and database tables with data as received from their enterprise software applications or data environments, as defined by the combination of the analytics application pattern and its customer pattern.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CLAIM OF PRIORITY

[0002] This application claims priority to U.S. Provisional Patent Application entitled “SYSTEM AND METHOD FOR USE OF SCHEMAS WITH AN ANALYTIC APPLICATIONS ENVIRONMENT AND DATA WAREHOUSE,” Application No. 62 / 841,093, filed April 30, 2019, and U.S. Provisional Patent Application entitled “SYSTEM AND METHOD FOR PROVIDING AN ANALYTIC APPLICATIONS ENVIRONMENT,” Application No. 62 / 885,118, filed August 9, 2019; each of which is incorporated herein by reference. TECHNICAL FIELD

[0003] The embodiments described herein relate generally to computer data analysis and computer-based methods of providing business intelligence data, and more particularly to systems and methods for providing an analytic applications environment for enabling development of software analytic applications for use with enterprise software applications or data environments. BACKGROUND

[0004] Generally, within an organization, data analysis enables computer-based examination or analysis of large amounts of data in order to draw conclusions or other information from the data; while business intelligence tools provide business users of the organization with information describing their enterprise data in a format that enables the business users to make strategic business decisions.

[0005] There is increasing interest in developing software applications that utilize data analysis in the context of an organization’s enterprise software applications or data environments, such as, for example, an Oracle Fusion Applications environment or other type of enterprise software application or data environment; or in 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 or other type of cloud environment. SUMMARY

[0006] According to embodiments, an analytic applications environment enables data analysis in the context of an organization’s enterprise software applications or data environments, or a software as a service or other type of cloud environment; and supports development of computer-executable software analytic applications.

[0007] According to embodiments, data pipelines or processes, such as, for example, extract, transform, load processes, can operate according to analytic application patterns adapted to address specific analytic use cases or best practices to receive data from a customer's (tenant's) enterprise software applications or data environment for loading into a data warehouse instance.

[0008] According to embodiments, each customer (tenant) can additionally be associated with a customer lease and a customer pattern. The data pipelines or processes populate their data warehouse instances and database tables with data as received from their enterprise software applications or data environment as defined by the combination of the analytic application pattern and its customer pattern. BRIEF DESCRIPTION OF DRAWINGS

[0009] Figure 1 A system for providing an analytic application environment is illustrated according to embodiments.

[0010] Figure 2 A system for providing an analytic application environment is further illustrated according to embodiments.

[0011] Figure 3 A system for providing an analytic application environment is further illustrated according to embodiments.

[0012] Figure 4 A system for providing an analytic application environment is further illustrated according to embodiments.

[0013] Figure 5 A system for providing an analytic application environment is further illustrated according to embodiments.

[0014] Figure 6 A system for providing an analytic application environment is further illustrated according to embodiments.

[0015] Figure 7 A system for providing an analytic application environment is further illustrated according to embodiments.

[0016] Figure 8 A system for providing an analytic application environment is further illustrated according to embodiments.

[0017] Figure 9 A system for providing an analytic application environment is further illustrated according to embodiments.

[0018] Figure 10 A flowchart of a method for providing an analytic application environment is illustrated according to embodiments. DETAILED DESCRIPTION

[0019] As noted above, within an organization, data analytics enables computer-based examination or analysis of large amounts of data to draw conclusions or other information from the data; while business intelligence tools provide business users of the organization with information describing their enterprise data in a format that can enable them to make strategic business decisions.

[0020] There is increasing interest in developing software applications that utilize the use of data analytics in the context of an organization's enterprise software application or data environment, such as, for example, an Oracle Fusion application environment or other type of enterprise software application or data environment; or in 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 or other type of cloud environment.

[0021] According to embodiments, an analytics application environment enables data analytics in the context of an organization's enterprise software application or data environment, or a software as a service or other type of cloud environment; and supports the development of computer-executable software analytics applications.

[0022] According to embodiments, data pipelines or processes, such as, for example, extract, transform, load processes, can operate according to analytics application patterns adapted to address specific analytics use cases or best practices to receive data from a customer's (tenant's) enterprise software application or data environment for loading into a data warehouse instance.

[0023] According to embodiments, each customer (tenant) can additionally be associated with a customer lease and a customer pattern. The data pipelines or processes populate their data warehouse instances and database tables with data as received from their enterprise software application or data environment as defined by a combination of the analytics application patterns and their customer patterns that are maintained within the analytics application environment (cloud) lease.

[0024] According to embodiments, technical advantages of the described systems and methods include the use of system-wide or shared analytics application patterns or data models maintained within the analytics application environment (cloud) lease; and tenant-specific customer patterns maintained within the customer lease; enabling the data warehouse instances or database tables of each customer (tenant) to be automatically or periodically (e.g., hourly / daily / weekly or based on other manners) populated or otherwise associated with real-time data (real-time tables) as received from their enterprise software application or data environment, and reflecting best practices for specific analytics use cases. Examples of such analytics use cases can include enterprise resource planning (ERP), human capital management (HCM), customer experience (CX), supply chain management (SCM), enterprise performance management (EPM), or other types of analytics use cases. The populated data warehouse instances or database tables can then be used to create computer-executable software analytics applications, or to determine data analytics or other information associated with the data.

[0025] According to embodiments, the computer executable software analysis application can be associated with a data pipeline or process maintained by a data integration component, such as, for example, an Oracle Data Integrator (ODI) environment or other type of data integration component, such as, for example, an extract, transform, load (ETL) process, or an extract, load, transform (ELT) process.

[0026] According to embodiments, the analysis application environment can operate with a data warehouse environment or component, such as, for example, an Oracle Autonomous Data Warehouse (ADW), an Oracle Autonomous Data Warehouse Cloud (ADWC), or other type of data warehouse environment or component suitable for storing large amounts of data; these data warehouse environments or components can be populated via a star schema sourced from an enterprise software application or data environment, such as, for example, an Oracle Fusion application or other type of enterprise software application or data environment. The data available to each customer (tenant) of the analysis application environment can be provisioned in an ADWC tenancy associated with and accessible only to that customer (tenant); while providing access to other features of the shared infrastructure.

[0027] For example, according to embodiments, the analysis application environment can include a data pipeline or process layer that enables customers (tenants) to ingest data extracted from their Oracle Fusion application environment to be loaded into a data warehouse instance within their ADWC tenancy, including support for features such as multiple data warehouse schemas, data extraction and target schemas, and monitoring of data pipeline or process stages; along with a shared data pipeline or process infrastructure that provides a common transformation graph or repository.

[0028] Introduction

[0029] According to embodiments, a data warehouse environment or component, such as, for example, an Oracle Autonomous Data Warehouse (ADW), an Oracle Autonomous Data Warehouse Cloud (ADWC), or other type of data warehouse environment or component suitable for storing large amounts of data, can provide a central repository for storing data collected by one or more business applications.

[0030] For example, according to embodiments, the data warehouse environment or component can be provided as a multidimensional database that employs online analytical processing (OLAP) or other techniques to generate business-related data from a plurality of different data sources. An organization can 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,

[0031] Examples of horizontal business applications can include ERP, HCM, CX, SCM, and EPM as described above, and provide a broad range of functionality across a variety of enterprise organizations.

[0032] Vertical business applications typically have a narrower scope than horizontal business applications, but provide access to data further upstream and downstream in a data chain within a defined scope or industry. Examples of vertical business applications can include medical software or banking software for use within a particular organization.

[0033] While software vendors are increasingly supplying enterprise software products or components as SaaS or cloud-oriented products, such as, for example, Oracle Fusion Applications, other enterprise software products or components, such as, for example, Oracle ADWC, can be supplied as one or more of SaaS, Platform as a Service (PaaS), or hybrid subscriptions; enterprise users of conventional business intelligence (BI) applications and processes are typically tasked with extracting data from their horizontal and vertical business applications and introducing the extracted data into a data warehouse - a process that can be both time-consuming and resource-intensive.

[0034] According to embodiments, an analytic application environment allows a customer (tenant) to develop computer-executable software analytic 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 originating from the customer (tenant) itself or from multiple third-party entities.

[0035] For example, according to embodiments, when used with a SaaS business productivity software product suite that includes a data warehouse component, the analytic application environment can be used to populate the data warehouse component with data from the business productivity software applications of the suite. Predefined data integration flows can automate ETL data processing between the business productivity software applications and the data warehouse, which can otherwise be performed in a conventional manner or manually by users of those services.

[0036] As another example, according to embodiments, the analytic application environment can be pre-configured with a database schema for storing consolidated data originating from various business productivity software applications of a SaaS product suite. This pre-configured database schema can be used to provide uniformity between the productivity software applications and corresponding transactional databases supplied in the SaaS product suite; while allowing users to forgo the process of manually designing, tuning, and modeling the provided data warehouse.

[0037] As another example, according to embodiments, the analytic application environment can be used to pre-populate reporting interfaces of a data warehouse instance with relevant metadata describing business-related data objects in the context of various business productivity software applications, e.g., to include pre-defined dashboards, key performance indicators (KPIs), or other types of reports.

[0038] analytic application environment

[0039] Figure 1 FIGURE 1 illustrates a system for providing an analytic application environment, according to embodiments.

[0040] As Figure 1 As shown in FIGURE 1, according to embodiments, an analytic application environment 100 can be provided by, or otherwise operated at, a computer system having computer hardware (e.g., processors, memory) 101, and including 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.

[0041] According to embodiments, Figure 1 The components and processes shown in FIGURE 1, and as further described herein with respect to various other embodiments, can be provided as software or program code executable by a computer system or other type of processing device.

[0042] For example, according to embodiments, the components and processes described herein can be provided by a cloud computing system or other suitably programmed computer system.

[0043] According to embodiments, the control plane operates to provide control over cloud or other software products provisioned 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.

[0044] For example, according to embodiments, the control plane can include a console interface 110 that enables a client computer device 10 having device hardware 12, management application 14, and user interface 16 to access under control of a customer (tenant) 20 and / or a cloud environment having provisioning components 111.

[0045] According to embodiments, the console interface can enable a customer (tenant) to access operating a graphical user interface (GUI) and / or command line interface (CLI) or other interface; and / or can include an interface for use by a provider of the SaaS or cloud environment and its customers (tenants).

[0046] For example, according to embodiments, the console interface can provide an interface that allows a customer to provision services for use within their SaaS environment and to configure those services that have been provisioned.

[0047] According to embodiments, the provisioning component can include various functionality for provisioning services specified by provisioning commands.

[0048] For example, according to embodiments, a customer (tenant) can access and utilize the provisioning component via the console interface to purchase one or more of a suite of business productivity software applications and a data warehouse instance for use with those software applications.

[0049] According to embodiments, a customer (tenant) can request that a customer schema 164 be provisioned within a data warehouse. The customer can also provision, via the console interface, a plurality of attributes associated with the data warehouse instance, including required attributes (e.g., login credentials) and optional attributes (e.g., size or speed). The provisioning component can then provision the requested data warehouse instance, including the customer schema for the data warehouse; and populate the data warehouse instance with the appropriate information provisioned by the customer.

[0050] According to embodiments, the provisioning component can also be used to update or edit data warehouse instances and / or ETL processes operating at the data plane, for example, by changing or updating the frequency of requests for ETL process runs for a particular customer (tenant).

[0051] According to embodiments, the provisioning component can also include a provisioning application programming interface (API) 112, a plurality of workers 115, a metering manager 116, and a data plane API 118, as further described below. When a command, instruction, or other input is received at the console interface, the console interface can communicate with the provisioning API, for example, by making an API call, to provision a service in the SaaS environment, or to make a configuration change to a provisioned service.

[0052] According to embodiments, the data plane API can communicate with the data plane.

[0053] For example, according to embodiments, provisioning and configuration changes for services provided by the data plane can be communicated to the data plane via the data plane API.

[0054] According to embodiments, the metering manager can include various functionality for metering the provisioning of services and usage of services by the control plane.

[0055] For example, in accordance with embodiments, for billing purposes, the metering manager can record processor usage over time for a particular customer (tenant) provisioned via the control plane. Also, for billing purposes, the metering manager can record the amount of storage space for a data warehouse partitioned for use by customers of a SaaS environment.

[0056] In accordance with embodiments, the data plane can include a data pipeline or processing layer 120 and a data transformation layer 134 that together process operational or transactional data from an enterprise software application or data environment of an organization, such as, for example, a business productivity software application provisioned in a SaaS environment of a customer (tenant). The data pipeline or processing can include various functions that can extract transactional data from business applications and databases provisioned in the SaaS environment, and then load the transformed data into a data warehouse.

[0057] In accordance with embodiments, the data transformation layer can include a data model that the system uses to transform transactional data received from business applications and corresponding transactional databases provisioned in the SaaS environment into a model format that is understood by the analytics application environment, such as, for example, a knowledge model (KM) or other type of data model. The model format can be provided in any data format suitable for storage in the data warehouse.

[0058] In accordance with embodiments, the data pipeline or processing provided by the data plane can include a monitoring component 122, a data staging component 124, a data quality component 126, and a data projection component 128, as further described below.

[0059] In accordance with embodiments, the data transformation layer can include a dimension generation component 136, a fact generation component 138, and an aggregation generation component 140, as further described below. The data plane can also include a data and configuration user interface 130, and a mapping and configuration database 132.

[0060] In accordance with embodiments, the data warehouse can include a default analytics application schema (referred to herein as an analytics warehouse schema in accordance with some embodiments) 162, and for each customer (tenant) of the system, a customer schema, as described above.

[0061] In accordance with embodiments, the data plane is responsible for performing extract, transform, and load (ETL) operations, including extracting transactional data from enterprise software applications or data environments of an organization, such as, for example, business productivity software applications and corresponding transactional databases provisioned in a SaaS environment, transforming the extracted data into a model format, and loading the transformed data into a customer schema of a data warehouse.

[0062] For example, according to embodiments, each customer (tenant) of the environment can be associated with its own customer lease within a data warehouse that is associated with its own customer schema; and read-only access to the analytic application schema can be additionally provided that can be updated periodically or based on other ways by the data pipeline or process (e.g., ETL process).

[0063] According to embodiments, to support multiple tenants, the system can enable the use of multiple data warehouses or data warehouse instances.

[0064] For example, according to embodiments, a first warehouse customer lease for a first tenant can 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 lease for a second tenant can include a second database instance, a second staging area, and a second data warehouse instance of the plurality of data warehouses or data warehouse instances.

[0065] According to embodiments, the data pipeline or process can be scheduled to execute at intervals (e.g., hourly / daily / weekly) to extract transactional data from enterprise software applications or data environments, such as, for example, business productivity software applications and corresponding transactional databases 106 provisioned in a SaaS environment.

[0066] According to embodiments, the extraction process 108 can extract transactional data, such that the data pipeline or process can insert the extracted data into a data staging area that can act as a temporary staging area for the extracted data. Data quality components and data protection components can be used to ensure the integrity of the extracted data.

[0067] For example, according to embodiments, the data quality components can perform validation on the extracted data while the data is temporarily held in the data staging area.

[0068] According to embodiments, when the extraction process has completed its extraction, a data transformation layer can be used to initiate a transformation process to transform the extracted data into a model format for loading into the customer schema of the data warehouse.

[0069] As described above, according to embodiments, the data pipeline or process can operate in conjunction 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 models used by the data transformation. A data and configuration user interface (UI) can facilitate access to and changes to the mapping and configuration database.

[0070] According to embodiments, based on the data model defined in the mapping and configuration database, the monitoring component can determine dependencies of several different data sets to be transformed. Based on the determined dependencies, the monitoring component can determine which of the several different data sets should be transformed first into the model format.

[0071] For example, according to embodiments, if a first model data set does not include a dependency on any other model data set; and a second model data set includes a dependency on the first model data set; then the monitoring component can determine to transform the first data set before transforming the second data set to accommodate the dependency of the second data set on the first data set.

[0072] According to embodiments, the data transformation layer can transform the extracted data into a format suitable for loading into a customer schema of the data warehouse, for example, according to the data model as described above. During the transformation, the data transformation can appropriately perform dimension generation, fact generation, and aggregation generation. Dimension generation can include generating dimensions or fields for loading into the data warehouse instance.

[0073] For example, according to embodiments, dimensions can include categories of data such as, for example, "name," "address," or "age." Fact generation includes generation of values or "metrics" that data can take on. Facts are associated with appropriate dimensions in the data warehouse instance. Aggregation generation includes creating data mappings that compute aggregations of the transformed data to existing data in the customer schema 164 of the data warehouse instance.

[0074] According to embodiments, once any transformations are in place (as defined by the data model), the data pipeline or process can read the source data, apply the transformations, and then push the data to the data warehouse instance.

[0075] According to embodiments, data transformations can be expressed in rules, and once transformations occur, values can be held in an interim at a staging area where data quality components and data projection components can validate and check the integrity of the transformed data before it is uploaded to the customer schema at the data warehouse instance. Monitoring can be provided at, for example, many computing instances or virtual machines at extract, transform, load process runtime. Dependencies can also be maintained during the extract, transform, load process, and the data pipeline or process can participate in such ordering decisions.

[0076] According to embodiments, after transforming the extracted data, the data pipeline or process can perform a warehouse load process 150 to load the transformed data into the customer schema of the data warehouse instance. After loading the transformed data into the customer schema, the transformed data can be analyzed and used in various additional business intelligence processes.

[0077] Horizontally and vertically integrated business software applications typically involve real-time capture of data. This is a result of horizontally and vertically integrated business software applications typically being used for day-to-day workflows and storing data in transactional databases, which means that typically only the most recent data is stored in such databases.

[0078] For example, while an HCM application can update a record associated with an employee when the employee is reassigned to an office, such an HCM application typically does not maintain a record of every office the employee worked at during their tenure with the company. As such, BI-related queries that seek to determine the mobility of employees within a company will not have enough records in the transactional databases to complete such queries.

[0079] According to embodiments, in a context that is easily understood by BI applications, by storing historical data in addition to current data generated by horizontally and vertically integrated business software applications, such as a data warehouse instance populated using the techniques described above, provides BI applications with the resources to process such queries using interfaces provided, for example, by the Business Productivity and Analytics Suite or by a SQL tool of the customer’s choosing.

[0080] Data pipeline processing

[0081] Figure 2 Further illustrated is a system for providing an analytics application environment according to embodiments.

[0082] As Figure 2 As shown in FIG. 1, according to embodiments, using data pipeline processing as described above, data can originate from, for example, a customer’s (tenant’s) enterprise software applications or data environment (106); or as custom data 109 originating from one or more customer-specific applications 107; and loaded into a data warehouse instance, in some examples including using object storage 105 to store the data.

[0083] According to embodiments, the data pipeline or processing maintains an analytics application schema, for example as a star schema, for each customer (tenant), which is periodically or based on other means updated by the system according to best practices for a particular analytics use case, such as human capital management (HCM) analytics or enterprise resource planning (ERP) analytics.

[0084] According to embodiments, for each customer (tenant), the system pre-populates the customer’s data warehouse instance based on analysis of data within the customer’s enterprise application environment and within the customer’s lease 117 using the analytics application schema maintained and updated by the system within the analytics application environment (cloud) lease 114. As such, the analytics application schema maintained by the system enables data to be retrieved from the customer’s environment through the data pipeline or processing and loaded into the customer’s data warehouse instance in a “real-time” manner.

[0085] According to embodiments, the analytic application environment also provides for each customer of the environment a customer schema that is easily modified by the customer and allows the customer to supplement and utilize data within its own data warehouse instance. For each customer of the analytic application environment, its resulting data warehouse instance operates as a database whose contents are partially controlled by the customer; and partially controlled by the analytic application environment (system); including that its database appears to be pre-populated with appropriate data that has been retrieved from its enterprise application environment to address various analytic use cases, such as HCM analytics or ERP analytics.

[0086] For example, according to embodiments, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) can include analytic application schemas, and for each customer / tenant, include a customer schema that originates from its enterprise software application or data environment. Data provisioned in the data warehouse tenancy (e.g., ADWC tenancy) is accessible only to that tenant; while at the same time allowing access to various features of the shared analytic application environment, such as ETL-related features or other features.

[0087] According to embodiments, to support multiple customers / tenants, the system enables the use of multiple data warehouse instances; where for example a first customer tenancy can include a first database instance, a first staging area, and a first data warehouse instance; and a second customer tenancy can include a second database instance, a second staging area, and a second data warehouse instance.

[0088] According to embodiments, for a particular customer / tenant, upon extracting its data, the data pipeline or process can insert the extracted data into the tenant's data staging area, which can act as a temporary staging area for the extracted data. Data quality components 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 temporarily holding the data in the data staging area. When the extraction process completes its extraction, a data transformation layer can be used to begin a transformation process, transforming the extracted data into a model format, for loading into the customer schema of the data warehouse.

[0089] Extract, transform, load / publish

[0090] Figure 3 Further illustrated is a system for providing an analytic application environment, according to embodiments.

[0091] As Figure 3As shown, according to an embodiment, the processing of extracting data from, for example, a customer's (tenant's) enterprise software application or data environment using the data pipeline processing described above; or as custom data originating from one or more customer-specific applications; and loading data into a data warehouse instance or refreshing data in a data warehouse typically involves three main stages performed by ETP service 160 or processing (including one or more extraction services 163, transformation services 165, and loading / publishing services 167 performed by one or more compute instances 170).

[0092] Extraction: According to the embodiment, the list of view objects to be extracted can be submitted, for example, via a ReST call to an Oracle BI Cloud Connector (BICC) component. The extracted files can be uploaded to an object storage component, such as, for example, an Oracle Storage Service (OSS) component, for storing the data.

[0093] Transformation: According to an embodiment, the transformation process retrieves data files from an object storage component (e.g., OSS) and applies business logic while loading them into a target data warehouse (e.g., an ADWC database) located inside the data pipeline or process and not exposed to the client (tenant).

[0094] Loading / Publishing: According to the embodiments, the loading / publishing service or process retrieves data from, for example, an ADWC database or warehouse and publishes it to a data warehouse instance that is accessible to customers (tenants).

[0095] Multiple customers (tenants)

[0096] Figure 4 A system for providing an analytical application environment according to an embodiment is further illustrated.

[0097] The figure illustrates the operation of a system with multiple tenants (clients) according to an embodiment. Figure 4 As shown, data can originate from, for example, each of multiple customer (tenant) enterprise software applications or data environments, be processed using the data pipeline described above, and loaded into the data warehouse instance.

[0098] According to an embodiment, the data pipeline or processing is maintained by the system for each of multiple customers (tenants) (e.g., customer A 180, customer B 182) according to best practices for specific analytics use cases, and the analytics application pattern is updated regularly or otherwise.

[0099] According to embodiments, for each of a plurality of customers (e.g., customers A, B), the system pre-populates the customer’s data warehouse instance based on analysis of data in the customer’s enterprise application environment 106A, 106B and in each customer’s tenancy (e.g., customer A tenancy 181, customer B tenancy 183) using the analytic application schema 162A, 162B maintained and updated by the system; such that data is retrieved from the customer’s environment and loaded into the customer’s data warehouse instance 160A, 160B through a data pipeline or process.

[0100] According to embodiments, the analytic 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) that is easily modified by the customer and allows the customer to supplement and utilize data in their own data warehouse instance.

[0101] As noted above, according to embodiments, for each of a plurality of customers of the analytic application environment, its resulting data warehouse instance operates as a database whose contents are partially controlled by the customer and partially controlled by the analytic application environment (system); including whose database appears to be pre-populated with appropriate data that has been retrieved from the customer’s enterprise application environment to address various analytic use cases. When the extract process 108A, 108B completes its extraction for a particular customer, a transform process can be initiated using the data transform layer to transform the extracted data into a model format for loading into the customer’s schema of the data warehouse.

[0102] Activation plan

[0103] Figure 5 Further illustrating a system for providing an analytic application environment according to embodiments.

[0104] According to embodiments, an activation plan 186 can be used to control the operation of the data pipeline or process services for a particular customer for a particular functional area to address the particular needs of that customer (tenant).

[0105] For example, according to embodiments, an activation plan can define a plurality of extract, transform, and load (publish) services or steps that run in a particular order, at a particular time of day, and within a particular time window.

[0106] According to embodiments, each customer can be associated with its own activation plan(s). For example, a first customer A’s activation plan can determine the tables to be retrieved from the customer’s enterprise software application environment (e.g., its converged application environment), or determine how to run the services and their processes in sequence; while a second customer B’s activation plan can likewise determine the tables to be retrieved from the customer’s enterprise software application environment, or determine how to run the services and their processes in sequence.

[0107] According to embodiments, activation plans can be stored in a mapping and configuration database and customizable by customers via a data and configuration UI. Each customer can have multiple activation plans. Compute instances / services (virtual machines) that execute ETL processes for various customers according to their activation plans can be dedicated to a particular service to use the activation plan, and then released for use by other services and activation plans.

[0108] According to embodiments, based on determinations of historical performance data recorded over a period of time, the system can optimize execution of activation plans, for example, for one or more functional areas associated with a particular tenant, or across a range of activation plans associated with multiple tenants, to address utilization of VMs and service level agreements (SLAs) by these tenants. Such historical data can include statistics of load and load times.

[0109] For example, according to embodiments, historical data can include extract size, extract count, extract time, warehouse size, transform time, publish (load) time, view object extract size, view object extract record count, view object extract time, warehouse table count, records processed for table, warehouse table transform time, publish table count, and publish time. Such historical data can be used to estimate and plan current and future activation plans, in order to organize various tasks, such as, for example, to run in sequence or in parallel, to achieve minimum time to run activation plans. Further, collected historical data can be used to optimize across multiple activation plans for tenants. In some embodiments, optimization of activation plans (i.e., particular sequences of jobs, such as ETL) based on historical data can be automatic.

[0110] ETL processing flow

[0111] Figure 6 Further illustrated is a system for providing an analytics application environment, according to embodiments.

[0112] As Figure 6 As shown in the middle, according to embodiments, data controlled by data configuration / management / ETL / / state services 190 within a tenancy managed by (e.g., Oracle) is enabled to flow from each customer’s enterprise software application environment (e.g., their Fusion application environment), including in this example, BICC components, via a storage cloud service 192 (e.g., OSS), and from there to a data warehouse instance.

[0113] As noted above, according to embodiments, data flow can be managed by one or more services, including, for example, extract services and transform services as described above, and with reference to ETL repository 193, to take data from the storage cloud service and load the data into an internal target data warehouse (e.g., ADWC database) 194 that is internal to the data flow pipeline or process and not exposed to customers.

[0114] According to embodiments, data is moved in stages into the data warehouse and then into the database table change log 195 from where the load / publish service can load customer data into the target data warehouse instance associated with and accessible by the customer within their customer tenancy.

[0115] ETL stages

[0116] Figure 7 Further illustrated is a system for providing an analytic application environment according to embodiments.

[0117] According to embodiments, the extraction, transformation, and loading of data from enterprise applications to data warehouse instances involves multiple stages and each stage can have several sequential or parallel jobs; and run on different spaces / hardware, including different staging areas 196, 198 for each customer.

[0118] Analytic application environment metrics

[0119] Figure 8 Further illustrated is a system for providing an analytic application environment according to embodiments.

[0120] As Figure 8 As shown in FIG. 1 1 1, according to embodiments, the metering manager can include functionality to meter the services provisioned by the control plane and the usage of the services and provide provisioned metrics 142.

[0121] For example, for billing purposes, the metering manager can record the usage of processors provisioned for a particular customer via the control plane over a period of time. Likewise, for billing purposes, the metering manager can record the amount of storage space of a partitioned data warehouse used by a customer of the SaaS environment.

[0122] Analytic application environment customization

[0123] Figure 9 Further illustrated is a system for providing an analytic application environment according to embodiments.

[0124] As Figure 9As shown in FIG. 1, according to embodiments, in addition to data originating from, for example, a customer's enterprise software applications or data environment being processed using the data pipeline as described above, one or more additional custom data 109A, 109B originating from one or more customer-specific applications 107A, 107B can also be extracted, transformed, and loaded into a data warehouse instance using either: the data pipeline processing as described above, in some examples including the use of object storage to store the data; and / or custom ETL or other processing 144 variable from a customer's perspective. Once the data is loaded into its data warehouse instance, the customer can create business database views that merge tables from its customer schema and software analytics application schema; and can query its data warehouse instance using interfaces provided, for example, by the business productivity and analytics product suite or by a SQL tool of the customer's choosing.

[0125] Parsing application environment method

[0126] Figure 10 FIG. illustrates a flowchart of a method for providing an analytics application environment, according to embodiments.

[0127] As Figure 10 As shown in FIG. 2, according to embodiments, at step 200, the analytics application environment provides access to a data warehouse for a plurality of tenants to store data, where the data warehouse is associated with an analytics application schema.

[0128] At step 202, each tenant of the plurality of tenants is associated with a customer tenancy and with a customer schema used by the tenant in populating the data warehouse instance.

[0129] At step 204, the instance of the data warehouse is populated with data received from enterprise software applications or data environments, where data associated with a particular tenant of the analytics application environment is provisioned in the data warehouse instance associated with and accessible by the particular tenant according to the analytics application schema and a customer schema associated with the particular tenant.

[0130] According to various embodiments, the teachings herein can be conveniently implemented using one or more conventional general purpose or specialized 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). As will be apparent to those of ordinary skill in the software art, in light of the teachings herein, programmers of ordinary skill can readily implement appropriate software coding.

[0131] In some embodiments, the teachings herein can include a computer program product that is a non-transitory computer readable storage medium (or media) having instructions stored thereon / in that can be used to program a computer to perform any of the processes of the present teachings. Examples of such storage media include, but are not limited to: hard disks, hard drive, hard drives, fixed disks, or other mechanical data storage devices; floppy disks, optical disks, DVDs, CD-ROMs, Blu-ray discs, or other optical data storage devices; magnetic cassettes, magnetic tapes, magnetic cards or other magnetic data storage devices; RAM, EPROM, EEPROM, DRAM, VRAM, flash memory devices, magnetic or optical cards, nanosystems, or other type of storage media suitable for storing electronic instructions or data.

[0132] The foregoing description has been provided for the 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.

[0133] For example, while several examples provided herein illustrate operation with enterprise software applications or data environments, such as, for example, an Oracle Fusion Applications environment; or analytic application environments in 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, the systems and methods described herein can be used with other types of enterprise software applications or data environments, cloud environments, cloud services, cloud computing, or other computing environments, in accordance with various embodiments.

[0134] The embodiments were chosen and described in order to best explain the principles of the teachings and the practical application, and to thereby enable others skilled in the art to best utilize the various embodiments and various modifications as are suited to the particular uses contemplated. It is intended that the scope of the teachings be defined by the following claims and their equivalents.

Claims

1. A system for providing an analytic application environment, comprising: a computer comprising one or more processors that provides access to a data warehouse storing data for a plurality of tenants through an analytic application environment, wherein the data warehouse is associated with an analytic application schema shared by the plurality of tenants; wherein each of the plurality of tenants is associated with a customer tenancy and a customer schema used by the tenant in populating a data warehouse instance; wherein instances of the data warehouse are populated with data received from an enterprise software application or data environment, wherein data associated with a particular tenant of the analytic application environment is provisioned in a data warehouse instance associated with and accessible by the particular tenant according to the analytic application schema and a customer schema associated with the particular tenant, and wherein the analytic application schema is maintained and updated according to one or more best practices for a particular analytic use case; and wherein a first customer tenancy for a first tenant comprises a first database instance, a first staging area, and a first data warehouse instance of a plurality of data warehouses or data warehouse instances; and a second customer tenancy for a second tenant comprises a second database instance, a second staging area, and a second data warehouse instance of the plurality of data warehouses or data warehouse instances.

2. The system of claim 1, wherein a data pipeline or process operates according to the analytic application schema adapted to address the particular analytic use case or the one or more best practices to receive data from an enterprise software application or data environment of a tenant for loading into a data warehouse instance.

3. The system of any of claims 1-2, wherein the analytic application schema is periodically maintained and updated by the system in the analytic application environment or cloud tenancy to pre-populate a data warehouse instance for a customer within a customer tenancy based on analysis of data within the customer's enterprise application environment.

4. A method for providing an analytic application environment, comprising: providing access to a data warehouse storing data for a plurality of tenants through an analytic application environment, wherein the data warehouse is associated with an analytic application schema shared by the plurality of tenants; associating each of the plurality of tenants with a customer tenancy and a customer schema used by the tenant in populating a data warehouse instance; and populating instances of the data warehouse with data received from an enterprise software application or data environment, wherein data associated with a particular tenant of the analytic application environment is provisioned in a data warehouse instance associated with and accessible by the particular tenant according to the analytic application schema and a customer schema associated with the particular tenant, and wherein the analytic application schema is maintained and updated according to one or more best practices for a particular analytic use case; and wherein a first customer tenancy for a first tenant comprises a first database instance, a first staging area, and a first data warehouse instance of a plurality of data warehouses or data warehouse instances; and a second customer tenancy for a second tenant comprises a second database instance, a second staging area, and a second data warehouse instance of the plurality of data warehouses or data warehouse instances.

5. The method of claim 4, wherein a data pipeline or process operates according to the analytic application schema adapted to address the particular analytic use case or the one or more best practices to receive data from an enterprise software application or data environment of a tenant for loading into a data warehouse instance.

5. The method of claim 4, wherein data pipelines or processes operate according to an analytics application pattern adapted to address the particular analytics use case or the one or more best practices to receive data from a tenant's enterprise software application or data environment for loading into a data warehouse instance.

6. The method of any of claims 4-5, wherein the analytics application pattern is periodically maintained and updated in an analytics application environment cloud tenancy to pre-populate a customer's data warehouse instance within a customer tenancy based on analysis of data within the customer's enterprise application environment.

7. A non-transitory computer-readable storage medium having instructions thereon that, when read and executed by a computer comprising one or more processors, cause the computer to perform a method comprising: providing access to a data warehouse storing data by a plurality of tenants through an analytics application environment, wherein the data warehouse is associated with an analytics application pattern shared by the plurality of tenants; associating each of the plurality of tenants with a customer tenancy and a customer pattern used by the tenant in populating a data warehouse instance; and populating instances of the data warehouse with data received from an enterprise software application or data environment, wherein data associated with a particular tenant of the analytics application environment is provisioned in a data warehouse instance associated with and accessible by the particular tenant according to the analytics application pattern and the customer pattern associated with the particular tenant, and wherein the analytics application pattern is maintained and updated according to one or more best practices for a particular analytics use case; and wherein a first customer tenancy for a first tenant includes a first database instance, a first staging area, and a first data warehouse instance of a plurality of data warehouses or data warehouse instances; and a second customer tenancy for a second tenant includes a second database instance, a second staging area, and a second data warehouse instance of the plurality of data warehouses or data warehouse instances.

8. The non-transitory computer-readable storage medium of claim 7, wherein data pipelines or processes operate according to an analytics application pattern adapted to address the particular analytics use case or the one or more best practices to receive data from a tenant's enterprise software application or data environment for loading into a data warehouse instance.

9. The non-transitory computer-readable storage medium of any of claims 7-8, wherein the analytics application pattern is periodically maintained and updated in an analytics application environment or cloud tenancy to pre-populate a customer's data warehouse instance within a customer tenancy based on analysis of data within the customer's enterprise application environment.

10. A system for use of patterns by an analytics application environment, comprising: a computer comprising one or more processors that provides access to a data warehouse through an analytics application environment to store data; wherein each of a plurality of tenants is associated with: a tenancy provided within the data warehouse, and a pattern provided in the analytics application environment for use by the tenant; wherein each tenant is provided access to analytic application patterns that are accessible to the plurality of tenants and are updated by the analytic application environment according to one or more best practices for a particular analytic use case; wherein database tables associated with a particular tenant can be used to populate an instance of a data warehouse associated with the particular tenant according to the tenant's patterns and the analytic application patterns; and wherein a first customer tenancy for a first tenant includes a first database instance, a first staging area, and a first data warehouse instance of a plurality of data warehouses or data warehouse instances; and a second customer tenancy for a second tenant includes a second database instance, a second staging area, and a second data warehouse instance of the plurality of data warehouses or data warehouse instances.

11. A method of using patterns by an analytic application environment, comprising: providing, by an analytic application environment, access to a data warehouse for storing data, wherein each tenant of a plurality of tenants is associated with: a tenancy provided within the data warehouse, and patterns provided in the analytic application environment for use by the tenant; wherein each tenant is provided access to analytic application patterns that are accessible to the plurality of tenants and are updated by the analytic application environment according to one or more best practices for a particular analytic use case; wherein database tables associated with a particular tenant can be used to populate an instance of a data warehouse associated with the particular tenant according to the tenant's patterns and the analytic application patterns; and wherein a first customer tenancy for a first tenant includes a first database instance, a first staging area, and a first data warehouse instance of a plurality of data warehouses or data warehouse instances; and a second customer tenancy for a second tenant includes a second database instance, a second staging area, and a second data warehouse instance of the plurality of data warehouses or data warehouse instances.

Citation Information

Patent Citations

  • Methods for updating a tenant space in a mega-tenancy environment

    US20080162509A1

  • Metadata manager for analytics system

    US20140229511A1