Systems and methods for utilizing and allocating SaaS / PaaS resources in analytical application environments
The analytics application environment addresses the inflexibility of traditional SaaS/PaaS billing by integrating data pipelines and hybrid billing systems, enabling efficient resource allocation and automated data processing for software analytics applications.
Patent Information
- Application Number
- JP2024227239
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-04-30
- Filing Date
- 2024-12-24
- Publication Date
- 2026-07-13
- Estimated Expiration
- 2040-04-29
AI Technical Summary
Traditional SaaS/PaaS billing systems often require customers to purchase additional seats when they need more resources than initially licensed, lacking a flexible and efficient mechanism for resource allocation.
An analytics application environment that supports data analytics in enterprise software environments, enabling data pipeline processes for loading data into a data warehouse instance, with customer-specific schemas, and providing a hybrid billing system that integrates SaaS/PaaS components for resource allocation and monitoring.
Enables efficient and automated data processing and resource allocation, allowing customers to develop computer-executable software analytics applications with real-time data integration and billing based on actual usage, reducing manual intervention and costs.
Smart Images

Figure 0007888700000001 
Figure 0007888700000002 
Figure 0007888700000003
Abstract
Description
Technical Field
[0001] Copyright Notice Part of the disclosure of this patent document contains materials that are subject to copyright protection. The patent document or patent disclosure is published in the patent files and records of the United States Patent and Trademark Office, and the copyright owner has no objection to its reproduction by anyone, but in the event that this is not the case, all copyrights are held without exception.
[0002] Priority Claim This application was filed on April 30, 2019, and claims the benefit of priority based on U.S. Provisional Application No. 62 / 841,058, entitled "SYSTEM AND METHOD FOR PROVIDING HYBRID BILLING IN AN ANALYTICS APPLICATION ENVIRONMENT", and incorporates that application herein by reference.
[0003] Technical Field The embodiments described herein generally relate to computer data analytics and business intelligence, and more particularly to systems and methods for providing an application analytics environment that enables the development of software analysis applications.
Background Art
[0004] Background Generally speaking, within an organization, computer-based investigations or analyses of data are enabled by data analytics to derive conclusions or other information from large amounts of data, and information that describes corporate data in a form that enables strategic business decisions to be made by business intelligence tools is provided to the organization's business users.
[0005] There is growing interest in developing software applications that leverage data analytics in conjunction with an organization's enterprise software application / data environment (e.g., Oracle Fusion Applications environment or other types of enterprise software application / data environments) or in conjunction with SaaS (Software-As-A-Service) or cloud environments (e.g., Oracle Analytics Cloud or Oracle Cloud Infrastructure environment or other types of cloud environments).
[0006] Traditional SaaS (Software as a Service) / PaaS (Platform as a Service) billing systems typically bill customers / tenants for their SaaS / PaaS usage based on the number of "seats" (e.g., users who can access the SaaS at any time) selected by the customer / tenant during the initial purchase / license agreement. While this model has worked well for SaaS / PaaS so far, problems can arise if a customer / tenant requests or needs more resources than they have purchased. In such situations, for example, the only mechanism available to the customer / tenant might be, for example, the SaaS / PaaS billing system. This involves purchasing several additional seats for aS. [Overview of the project] [Means for solving the problem]
[0007] overview According to the embodiment, the analytics application environment enables data analytics related to an organization's enterprise software application / data environment, or Software-As-A-Service or other types of cloud environments, and supports the development of computer-executable software analytics applications.
[0008] According to the embodiment, for example, a data pipeline / processing, such as extraction, transformation, and loading processes, can receive data from the customer's (tenant's) enterprise software application / data environment for loading into a data warehouse instance, operating according to an analytics application schema designed to address a specific analytics use case or best practice.
[0009] According to the embodiment, each customer (tenant) can be further associated with a customer tenancy and customer schema. The data pipeline / processing adds data received from the enterprise software application / data environment to the data warehouse instance and database tables as defined by a combination of the analytical application schema and the customer schema.
[0010] According to the embodiment, access to the analytics application environment can be provided, for example, as a Software-As-A-Service (SaaS) application or product. The SaaS application or product can be made accessible to customers in a cloud environment (e.g., Oracle Cloud Infrastructure, OCI, or other cloud environments) or provided as a cloud service (e.g., Oracle Analytics Cloud Service, OAC, Oracle Fusion Analytics Service, or other cloud service).
[0011] According to the embodiment, a cloud environment that enables support for functions such as pipelines and data backup, restoration, and patching, for example, provisioning provided by OCI, can be integrated with other SaaS or PaaS (Platform-as-a-Service) components. Other SaaS or PaaS (Platform-as-a-Service) components include, for example, customer-specific limitations on data processing and billing components that provide support for hybrid billing (for example, based on a combination of SaaS and PaaS).
[0012] This specification describes systems and methods for utilizing and allocating SaaS / PaaS resources in an analytics application environment. An exemplary method can provide an application analytics environment and a control plane consisting of servers, the control plane further consisting of provisioning components and a console interface, and the exemplary method can further provide a data warehouse and a monitoring agent. The method can provision instances of the data warehouse relative to a tenant, and the provisioned data warehouse instances have an initial size. Once the data warehouse instances are provisioned, the method can add entries to the monitoring agent's metrics repository, and the added entries are provisioned This shows the initial size of the data warehouse instance, and added entries are tagged, with the tags indicating the tenant. A monitoring agent can monitor the amount of data stored on the provisioned data warehouse instance. [Brief explanation of the drawing]
[0013] [Figure 1] This figure shows a system that provides an analysis application environment according to an embodiment. [Figure 2] This figure further illustrates a system that provides an analytical application environment according to an embodiment. [Figure 3] This figure further illustrates a system that provides an analytical application environment according to an embodiment. [Figure 4] This figure further illustrates a system that provides an analytical application environment according to an embodiment. [Figure 5] This figure further illustrates a system that provides an analytical application environment according to an embodiment. [Figure 6] This figure further illustrates a system that provides an analytical application environment according to an embodiment. [Figure 7] This figure further illustrates a system that provides an analytical application environment according to an embodiment. [Figure 8] This figure further illustrates a system that provides an analytical application environment according to an embodiment. [Figure 9] This figure further illustrates a system that provides an analytical application environment according to an embodiment. [Figure 10] This diagram shows a flowchart of a method for providing an analysis application environment according to an embodiment. [Figure 11] This figure shows a system for utilizing and allocating SaaS / PaaS resources in an analytical application environment, according to an embodiment. [Figure 12] This figure shows a system for utilizing and allocating SaaS / PaaS resources in an analytical application environment, according to an embodiment. [Figure 13] This figure shows a system for utilizing and allocating SaaS / PaaS resources in an analytical application environment, according to an embodiment. [Figure 14] This figure shows a system for utilizing and allocating SaaS / PaaS resources in an analytical application environment, according to an embodiment. [Figure 15]A diagram showing a system for using and allocating SaaS / PaaS resources in an analysis application environment according to an embodiment. [Figure 16] A diagram showing a system for using and allocating SaaS / PaaS resources in an analysis application environment according to an embodiment. [Figure 17] A diagram showing a system for using and allocating SaaS / PaaS resources in an analysis application environment according to an embodiment. [Figure 18] A diagram showing a system for using and allocating SaaS / PaaS resources in an analysis application environment according to an embodiment. [Figure 19] A diagram showing a system for using and allocating SaaS / PaaS resources in an analysis application environment according to an embodiment. [Figure 20] A flowchart of a method for using and allocating SaaS / PaaS resources in an analysis application environment according to an embodiment.
Embodiment for Carrying Out the Invention
[0014] Detailed Description As described above, within an organization, computer-based investigations or analyses of the data are enabled by data analytics to derive conclusions or other information from large amounts of data, and information describing corporate data in a form that enables strategic business decisions to be made by business intelligence tools is provided to business users of the organization. Moreover, computer-based investigations or analyses of the data are enabled by data analytics to derive conclusions or other information from large amounts of data, and information describing corporate data in a form that enables strategic business decisions to be made by business intelligence tools is provided to business users of the organization.
[0015] There is growing interest in developing software applications that leverage data analytics in conjunction with an organization's enterprise software application / data environment (e.g., an Oracle Fusion Applications environment or other types of enterprise software application / data environments) or in conjunction with a SaaS (Software-As-A-Service) or cloud environment (e.g., an Oracle Analytics Cloud or Oracle Cloud infrastructure environment, or other types of cloud environments).
[0016] According to the embodiment, the analytics application environment enables data analytics related to an organization's enterprise software application / data environment, or Software-As-A-Service or other types of cloud environments, and supports the development of computer-executable software analytics applications.
[0017] According to the embodiment, for example, a data pipeline / processing, such as extraction, transformation, and loading processes, can receive data from the customer's (tenant's) enterprise software application / data environment for loading into a data warehouse instance, operating according to an analytics application schema designed to address a specific analytics use case or best practice.
[0018] According to the embodiment, each customer (tenant) can be further associated with a customer tenancy and customer schema. The data pipeline / processing adds data received from the enterprise software application / data environment to the data warehouse instance and database tables as defined by a combination of the analytical application schema and the customer schema.
[0019] According to the embodiments, the technical advantages of the described system and method include the ability to automatically or periodically (e.g., hourly / daily / weekly, or otherwise) add 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, or to reflect best practices for specific analytics use cases. Such analytics use cases include ERP (Enterprise Resource Planning), HCM (Human Capital Management), CX (Customer Experience), SCM (Supply Chain Management), EPM (Enterprise Performance Management), or other types of analytics use cases. The data warehouse instance or database table to which the data has been added can then be used to create a computer-executable software analytics application or to determine data analytics or other information mapped to the data.
[0020] According to the embodiment, for example, a computer-executable software analytics application can be associated with a data pipeline / processing held by a data integration component such as an ODI (Oracle Data Integrator) environment or other types of data integration components, such as an ETL (Extract, Transform, Load) process or an ELT (Extract, Transform, Load) process.
[0021] According to one embodiment, the analysis application environment is, for example, ADW (Oracle It can work with data warehouse environments or components such as Oracle Autonomous Data Warehouse (Autonomous Data Warehouse), ADWC (Oracle Autonomous Data Warehouse Cloud), or other types of data warehouse environments or components designed to store large amounts of data. Data can be added to the data warehouse environment or component via star schemas obtained from 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 analytics application environment can be provisioned, for example, in an ADWC tenancy. An ADWC tenancy is associated only with that customer (tenant) and is only accessible to that customer (tenant), while also providing access to other functions of the shared infrastructure.
[0022] For example, according to one embodiment, the analytics application environment may include a data pipeline / processing layer connected to a shared data pipeline / processing infrastructure that provides a common transformation map or repository. The data pipeline / processing layer enables customers (tenants) to ingest data extracted from the Oracle Fusion Applications environment and loaded into data warehouse instances within the ADWC tenancy, and includes support for features such as monitoring of multiple data warehouse schemas, data extraction schemas and target schemas, and data pipeline / processing stages.
[0023] Introduction According to the embodiment, for example, a data warehouse environment or component such as ADW (Oracle Autonomous Data Warehouse), ADWC (Oracle Autonomous Data Warehouse Cloud), or other types of data warehouse environments or components designed to store large amounts of data, can provide a central repository for storing data collected by one or more business applications.
[0024] For example, according to one embodiment, the data warehouse environment or component may be provided as a multidimensional database employing OLAP (Online Analytical Processing) or other techniques to generate business-related data from data from multiple different 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 that organization.
[0025] Examples of horizontal business applications include ERP, HCM, CX, SCM, and EPM, as mentioned above, which can provide a wide range of functions across various corporate organizations.
[0026] Vertical business applications generally have a narrower scope than horizontal business applications, but they provide access to a defined range of data, either vertically or horizontally within an industry. Examples of applications include medical software or banking software for use within a specific organization.
[0027] While software vendors are increasingly offering enterprise software products or components as SaaS or cloud-oriented products, such as Oracle Fusion Applications, other enterprise software products or components, such as Oracle ADWC, can also be offered as one or more of SaaS, PaaS (Platform-as-a-Service), or hybrid subscriptions. Enterprise users of traditional business intelligence (BI) applications and processes typically face the task of extracting data from horizontal and vertical business applications and placing that extracted data into a data warehouse—a process that can require both significant time and resources.
[0028] According to the embodiment, the analytics application environment enables the customer (tenant) to develop computer-executable software analytics applications for use with BI components, such as the OBIA (Oracle Business Intelligence Applications) environment, or other types of BI components designed to examine large amounts of data obtained by the customer (tenant) themselves or from multiple third-party entities.
[0029] For example, according to one embodiment, when used with a SaaS business productivity software product suite that includes a data warehouse component, the analytics application environment can be used to add data from the suite's business productivity software applications to the data warehouse component. A predefined data integration flow can automate the ETL process of data between the business productivity software applications and the data warehouse, a process that would have previously been performed manually by the service user.
[0030] As another example, according to the embodiment, the analytics application environment can be pre-configured with a database schema for storing integrated data obtained from various business productivity software applications within a SaaS product suite. Using such a pre-configured database schema, the entire productivity software applications and corresponding transactional databases provided in the SaaS product suite can be made uniform without the user having to manually design, adjust, and model the provided data warehouse.
[0031] As another example, according to the embodiment, the analytics application environment can be used to pre-add relevant metadata describing business-related data objects associated with various business productivity software applications to the reporting interface of a data warehouse instance, for example, to include predefined dashboards, key performance indicators (KPIs), or other types of reports.
[0032] Analytics application environment Figure 1 shows a system that provides an analysis application environment according to an embodiment.
[0033] As shown in Figure 1, according to the embodiment, the analysis application environment 100 has computer hardware (e.g., processor, memory) 101 and one or more software components that operate as a control plane 102 and a data plane 104. It may be provided by or run on a computer system that has a network and provides access to a data warehouse or data warehouse instance 160.
[0034] According to the embodiment, the components and processes shown in Figure 1 and further described in relation to various other embodiments can be provided as software or program code executable by a computer system or other type of processing device.
[0035] For example, according to the embodiments, the components and processes described herein can be provided by a cloud computing system or other appropriately programmed computer system.
[0036] According to one embodiment, the control plane operates to control cloud or other software products provided in connection with a SaaS or cloud environment, such as an Oracle Analytics Cloud or Oracle Cloud Infrastructure environment, or other types of cloud environments.
[0037] For example, according to one embodiment, under the control of a cloud environment having customers (tenants) 20 and / or provisioning components 111, the control plane may include a console interface 110 that allows access by client computer devices 10 having device hardware 12, a management application 14, and a user interface 16.
[0038] According to the embodiment, the console interface can enable 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).
[0039] For example, according to one embodiment, the console interface may provide an interface that allows a customer to provision services for use within their SaaS environment, and an interface that allows the customer to configure those provisioned services.
[0040] According to one embodiment, the provisioning component may include various functions for provisioning the services specified by the provisioning command.
[0041] For example, according to one embodiment, a customer (tenant) can access and utilize a provisioning component via a console interface to purchase one or more business productivity software applications together with a data warehouse instance for use with those software applications.
[0042] According to the embodiment, a customer (tenant) can request the provisioning of a customer schema 164 within the data warehouse. The customer can also provide multiple attributes associated with the data warehouse instance via a console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size or speed). The provisioning component then provisions the requested data warehouse instance containing the customer schema, and the customer provides... The appropriate information to be supplied can be added to the data warehouse instance.
[0043] Furthermore, according to the embodiment, the provisioning component can be used to update or edit data warehouse instances and / or ETL processes operating in the data plane, for example, by changing or updating the frequency of requests for ETL process execution for a specific customer (tenant).
[0044] Furthermore, according to the embodiment, the provisioning component may include a provisioning API (Application Programming Interface) 112, a plurality of workers 115, a metering manager 116, and a data plane API 118, as will be further described below. When a command, instruction, or other input for provisioning a service or modifying the configuration of a provisioned service is received at the console interface, the console interface can communicate with the provisioning API, for example, by making an API call.
[0045] According to the embodiment, the data plane API can communicate with the data plane. For example, according to one embodiment, changes to the provisioning and configuration of services provided by the data plane can be communicated to the data plane via a data plane API.
[0046] According to one embodiment, the metering manager may include various functions for measuring the usage of services and services provisioned through the control plane.
[0047] For example, according to one embodiment, a metering manager can record, for a specific customer (tenant), the usage of processors provisioned via the control plane over time for billing purposes. Similarly, a metering manager can record, for billing purposes, the amount of storage space in a data warehouse partitioned for use by customers in a SaaS environment.
[0048] According to the 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 business productivity software applications provisioned in a customer's (tenant's) SaaS environment. The data pipeline / processing may include various functions for extracting transactional data from business applications and databases provisioned in the SaaS environment and then loading the transformed data into a data warehouse.
[0049] According to the embodiment, the data transformation layer may include a data model used by the system to transform transaction data received from business applications and corresponding transaction databases provisioned in a SaaS environment into a model format that the analytical application environment can understand, such as a knowledge model (KM) or other types of data models. The model format can be provided in any data format suitable for storage in a data warehouse.
[0050] According to the embodiment, the data pipeline / processing provided by the data plane may include a monitoring component 122, a data staging component 124, a data quality component 126, and a data projection component 128, as will be further described below.
[0051] According to the embodiment, the data transformation layer may comprise a dimension creation component 136, a fact creation component 138, and an aggregate creation component 140, as will be further described below. The data plane may comprise a data / configuration user interface 130 and a mapping / configuration database 132.
[0052] According to one embodiment, the data warehouse may include a default analytics application schema (referred to herein as the analytics warehouse schema according to some embodiments) 162 and customer schemas as described above for each customer (tenant) of the system.
[0053] According to the embodiment, the data plane is responsible for performing ETL (Extract, Transform, Load) operations. ETL operations 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; converting the extracted data into a model format; and loading the transformed data into a customer schema in the data warehouse.
[0054] For example, according to one embodiment, each customer (tenant) in the environment may be associated with its own customer tenancy within the data warehouse. The customer tenancy may be associated with its own customer schema and may be provided with read-only access to the analytical application schema. The analytical application schema may be updated periodically or by other criteria through a data pipeline / process, such as an ETL process.
[0055] According to the embodiment, in order to support multiple tenants, the system can enable the use of multiple data warehouses or multiple data warehouse instances.
[0056] For example, according to one embodiment, the first warehouse customer tenancy of a first tenant may consist of a first database instance, a first staging area, and a first data warehouse instance among multiple data warehouses or multiple data warehouse instances, and the second customer tenancy of a second tenant may consist of a second database instance, a second staging area, and a second data warehouse instance among multiple data warehouses or multiple data warehouse instances.
[0057] According to the 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 a business productivity software application and a corresponding transactional database 106 provisioned in a SaaS environment.
[0058] According to the embodiment, the extraction process 108 can extract transaction data, and once extracted, the data pipeline / processing can insert the extracted data into the data staging area. The data staging area can function as a temporary staging area for the extracted data. The integrity of the extracted data can be ensured using data quality components and data protection components.
[0059] For example, according to one embodiment, the data quality component can validate the extracted data while it is temporarily held in the data staging area.
[0060] According to the embodiment, once the extraction process completes the extraction, 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.
[0061] As described above, according to the embodiment, the data pipeline / processing can work in conjunction with the data transformation layer to transform data into a model format. The mapping / configuration database may store metadata and data mappings that define the data model used by the data transformation. The data / configuration user interface (UI) can facilitate access to and modification of the mapping / configuration database.
[0062] According to the embodiment, based on the data model defined in the mapping / configuration database, the monitoring component can determine the dependencies between several different datasets to be transformed. Based on the determined dependencies, the monitoring component can decide which of the several different datasets should be transformed into the model format first.
[0063] For example, according to one embodiment, if the first model dataset has no dependencies on other model datasets, and the second model dataset has dependencies on the first model dataset, the monitoring component can transform the first dataset before the second dataset to accommodate the second dataset's dependency on the first dataset.
[0064] According to the embodiment, the data transformation layer can transform extracted data into a format suitable for loading into the customer schema of the data warehouse, for example, according to the data model described above. During the transformation, the data transformation can create dimensions, facts, and aggregates as appropriate. Creating dimensions may include the step of creating dimensions or fields for loading into the data warehouse instance.
[0065] For example, according to one embodiment, a dimension may include several data categories, such as "name," "address," or "age." Fact creation involves creating values that the data can take or values that can be "measured." The fact is mapped to the appropriate dimension in the data warehouse instance. Aggregate creation involves creating a data mapping that calculates the aggregation of transformed data into existing data in the customer schema 164 of the data warehouse instance.
[0066] According to the embodiment, once the transformation is performed (as defined by the data model), the data pipeline / process can read the source data, apply the transformation process, and send this data to the data warehouse instance.
[0067] According to the embodiment, data transformations can be represented by rules, and once the transformation is performed, the values can be immediately held in a staging area. In the staging area, data quality components and data projection components can verify the integrity of the transformed data before it is uploaded to the customer schema in the data warehouse instance. Monitoring can be performed, for example, when the extraction, transformation, and load processes are executed on multiple compute instances or multiple virtual machines. Dependencies can also be maintained between the extraction, transformation, and load processes, and the data pipeline / processing can handle such order determinations.
[0068] According to the embodiment, after the extracted data has been transformed, the data pipeline / processing is performed in the warehouse. The load procedure 150 can be executed to load the transformed data into the customer schema instance of the data warehouse. Following the step of loading the transformed data into the customer schema, the transformed data can be parsed and used in various additional business intelligence processes.
[0069] Horizontally integrated and vertically integrated business software applications generally target real-time data collection. This is because horizontally integrated and vertically integrated business software applications are typically used for daily workflows and store data in transactional databases. In other words, generally only the most recent data is stored in such databases.
[0070] For example, an HCM application might update records associated with an employee when that employee moves to a different location, but such HCM applications generally do not maintain records for each location where the employee worked during their tenure with the company. Thus, BI-related queries attempting to determine employee movement within a company may not have enough records in the transactional database to complete such queries.
[0071] According to the embodiment, historical data, in addition to current data generated by horizontally integrated and vertically integrated business software applications, is also stored in a manner that is easily understandable to BI applications. The data warehouse instance to which data has been added using the above technology provides resources for BI applications to process such queries, for example, by utilizing interfaces provided by a business productivity / analytics product suite or a customer-selected SQL tool.
[0072] Data pipeline process Figure 2 further illustrates a system that provides an analytical application environment according to an embodiment.
[0073] As shown in Figure 2, according to the embodiment, the data pipeline process described above can be used to retrieve data from, for example, the customer's (tenant's) enterprise software application / data environment (106), or, in the case of custom data 109, from one or more customer-specific applications 107, and load it into the data warehouse instance. In some examples, the data warehouse instance includes the use of object storage 105 for storing the data.
[0074] According to the embodiment, the data pipeline / processing maintains an analytics application schema for each customer (tenant), for example, as a star schema. The analytics application schema is updated periodically or otherwise by the system according to best practices for specific analytics use cases, such as HCM (Human Capital Management) analytics or ERP (Enterprise Resource Planning) analytics.
[0075] According to the embodiment, for each customer (tenant), the system uses the analytical application schema that the system maintains and updates within the analytical application environment (cloud) tenancy 114 to pre-add data to the customer's data warehouse instance based on the analysis of data within the customer's enterprise application environment and customer tenancy 117. This enables data pipelines / processing to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance.
[0076] Furthermore, according to the embodiment, the analytics application environment provides a customer schema for each customer of the environment, which the customer can easily modify. The customer schema allows the customer to supplement and utilize data within their own data warehouse instance. For each customer of the analytics application environment, the resulting data warehouse instance operates as a database. Part of the content of this database is controlled by the customer, and part is controlled by the analytics application environment (system), including cases where appropriate data retrieved from the enterprise application environment to address various analytics use cases, such as HCM analytics or ERP analytics, is pre-added to the database.
[0077] For example, according to one embodiment, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include analytical application schemas and customer schemas obtained from the enterprise software application / data environment on a per-customer / tenant basis. Data provisioned in a data warehouse tenancy (e.g., an ADWC tenancy) is accessible only to that tenant, but at the same time, it allows access to various functions, such as ETL-related functions or other functions of the shared analytical application environment.
[0078] According to the embodiment, in order to support multiple customers / tenants, the system allows the use of multiple data warehouse instances. For example, a first customer tenancy may consist of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may consist of a second database instance, a second staging area, and a second data warehouse instance.
[0079] According to the embodiment, once data is extracted for each specific customer / tenant, the data pipeline / processing can insert the extracted data into the tenant's data staging area. The data staging area can function as a temporary staging area for the extracted data. The integrity of the extracted data can be ensured by using data quality components and data protection components, for example, by validating the 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 that changes the extracted data into a model format for loading into the customer schema of the data warehouse.
[0080] Extract, convert, load / publish Figure 3 further illustrates a system that provides an analytical application environment according to an embodiment.
[0081] As shown in Figure 3, according to the embodiment, the process of using the data pipeline process described above to extract data from, for example, a customer's (tenant's) enterprise software application / data environment, or in the case of custom data, to obtain such data from one or more customer-specific applications, and then loading this data into a data warehouse instance or refreshing this data in the data warehouse, generally involves three main stages performed by an ETP service 160 or process, which includes one or more of the following: an extraction service 163, a transformation service 165, and a load / publish service 167, all of which are performed by one or more compute instances 170.
[0082] Extraction: According to the embodiment, a list of view objects to be extracted may be submitted to an OracleBICC (Oracle BI Cloud Connector) component, for example, by a ReST call. The extracted files may be uploaded to an object storage component for storing the data, such as an OSS (Oracle Storage Service) component.
[0083] Transformation: According to the embodiment, the transformation process retrieves 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 resides within the data pipeline / process and is not visible to the customer (tenant).
[0084] Load / Publish: According to the embodiment, a load / publish service or process retrieves data from, for example, an ADWC database or warehouse and publishes it to a data warehouse instance accessible to the customer (tenant).
[0085] Multiple customers (tenants) Figure 4 further illustrates a system that provides an analytical application environment according to an embodiment.
[0086] As shown in Figure 4, which illustrates the operation of the system according to the embodiment with multiple tenants (customers), the data pipeline process described above can be used to obtain data from, for example, the enterprise software application / data environments of multiple customers (tenants) and load it into the data warehouse instance.
[0087] According to the embodiment, the data pipeline / processing maintains an analytics application schema for each of multiple customers (tenants), for example, customer A180, customer B182, which the system updates periodically or otherwise according to best practices for a specific analytics use case.
[0088] According to the embodiment, for each of several customers (for example, customers A and B), the system uses the analytical application schemas 162A and 162B maintained and updated by the system to pre-add data to the customer's data warehouse instances 160A and 160B, based on the analysis of data within the customer's enterprise application environment 106A and 106B and each customer's tenancy (for example, customer A tenancy 181 and customer B tenancy 183), so that data can be retrieved from the customer's environment and loaded into the customer's data warehouse instances 160A and 160B via a data pipeline / processing.
[0089] Furthermore, according to the embodiment, the analytics application environment provides a customer schema (for example, customer A schema 164A, customer B schema 164B) for each of the multiple customers in the environment. The customer schemas enable customers to supplement and utilize data within their own data warehouse instance.
[0090] As described above, according to the embodiment, for each of the multiple customers of the analytics application environment, the resulting data warehouse instance operates as a database. Part of the content of this database is controlled by the customer, and part is controlled by the analytics application environment (system), including cases where appropriate data retrieved from the enterprise application environment to address various analytics use cases is pre-added to the database. Extraction processes for specific customers... Once steps 108A and 108B are complete, the 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.
[0091] Activation Plan Figure 5 further illustrates a system that provides an analytical application environment according to an embodiment.
[0092] According to the embodiment, Activation Plan 186 can be used to control the operation of a customer's data pipeline / processing service in a specific functional area to address the specific needs of that customer (tenant).
[0093] For example, according to one embodiment, an activation plan can specify a number of extraction services / steps, conversion services / steps, and storage (publish) services / steps that are to be performed in a specific order, at a specific time, and within a specific period of time.
[0094] According to the embodiment, each customer may be associated with their own activation plan(s). For example, the activation plan of a first customer A may determine which tables to search from the customer's enterprise software application environment (e.g., a Fusion Applications environment) or how to sequentially execute services and their processes, and similarly, the activation plan of a second customer B may determine which tables to search from the customer's enterprise software application environment or how to sequentially execute services and their processes.
[0095] According to the embodiment, activation plans can be stored in a mapping / configuration database and can be customized by the customer via a data / configuration UI. Each customer may have multiple activation plans. Compute instances / services (virtual machines) running various customer ETL processes can be dedicated to specific services to use the activation plan, and then released for use by other services and activation plans, according to the activation plan.
[0096] According to the embodiment, based on the analysis of historical performance data recorded over a certain period of time, the system can optimize the execution of, for example, activation plans for one or more functional areas associated with a specific tenant, or an entire set of activation plans associated with multiple tenants, to address the utilization of VMs and SLAs (Service Level Agreements) of these tenants. Such historical data may include statistical data on load volume and load time.
[0097] For example, according to the embodiment, 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 in tables, warehouse table conversion time, number of published tables, and publish time. For example, such historical data can be used to predict and plan current and future activation plans in order to organize various tasks to be executed sequentially or in parallel in order to achieve the execution of a single activation plan in the shortest possible time. In addition, the collected historical data can be used to optimize multiple activation plans for a single tenant. In some embodiments, activation plans based on historical data (i.e.) Optimization of jobs that are executed in a specific order, such as ETL, can be done automatically.
[0098] ETL Process Flow Figure 6 further illustrates a system that provides an analytical application environment according to an embodiment.
[0099] As shown in Figure 6, according to the embodiment, the system enables the flow of data from each customer's enterprise software application environment (e.g., Fusion Applications environment) controlled by the data configuration / management / ETL / status service 190 within the managed tenancy (e.g., Oracle). In this example, the data flow includes data flow through the BICC component, storage cloud service 192, e.g., OSS, and from there to the data warehouse instance.
[0100] As described above, according to the embodiment, the data flow may be managed by one or more services (including, for example, the extraction service and transformation service described above, as in the ETL repository 193) that take data from a storage cloud service and load it into an internal target data warehouse (e.g., ADWC database) 194. The target data warehouse resides within the data pipeline / processing and is not visible to the customer.
[0101] According to the embodiment, data is moved to a data warehouse in multiple stages and then to a database table change log 195. The load / publish service can load customer data from the database table change log 195 into a target data warehouse instance within that customer tenancy that is associated with the customer and accessible to that customer.
[0102] ETL stage Figure 7 further illustrates a system that provides an analytical application environment according to an embodiment.
[0103] According to the embodiment, the step of extracting and transforming data from an enterprise application and loading it into a data warehouse instance involves multiple stages. Each stage may have several sequential or parallel jobs and operate on different spaces / hardware, including different staging areas 196, 198 for each customer.
[0104] Analytics application environment metrics Figure 8 further illustrates a system that provides an analytical application environment according to an embodiment.
[0105] As shown in Figure 8, according to the embodiment, the metering manager includes the ability to measure the usage of services and services provisioned through the control plane, and can provide provisioned metrics 142.
[0106] For example, a metering manager can record the usage of processors provisioned via the control plane over time for billing purposes for a specific customer (tenant). Similarly, a metering manager can record the amount of storage space in a data warehouse partitioned for use by customers in a SaaS environment for billing purposes.
[0107] Customizing the analytics application environment Figure 9 further illustrates a system that provides an analytical application environment according to an embodiment.
[0108] As shown in Figure 9, according to the embodiment, in addition to the data that can be obtained from the customer's enterprise software application / data environment using the data pipeline process described above, in some examples, one or more additional custom data 109A, 109B obtained from one or more customer-specific applications 107A, 107B can be extracted, transformed, and loaded into the data warehouse instance using either the data pipeline process described above, which includes using object storage for storing the data in some examples, and / or a custom ETL process 144 or other process that can be modified from the customer's perspective. Once the data is loaded into the data warehouse instance, the customer can create business database views that combine tables from both the customer schema and the software analytics application schema, and query the data warehouse instance using interfaces provided, for example, by the business productivity / analytics product suite or by an SQL tool of the customer's choice.
[0109] Methods for the analytical application environment Figure 10 is a flowchart illustrating a method for providing an analysis application environment according to an embodiment.
[0110] As shown in Figure 10, according to the embodiment, in step 200, the analytics application environment provides multiple tenants with access to a data warehouse for storing data. The data warehouse is associated with the analytics application schema.
[0111] Step 202 associates each tenant in a group of tenants with a customer tenancy and the customer schema that the tenant uses when adding data to the data warehouse instance.
[0112] Step 204 adds data received from the enterprise software application / data environment to the data warehouse instance. Data is provisioned according to the analytics application schema and customer schema associated with that specific tenant in the data warehouse instance, which is associated with a specific tenant of the analytics application environment and accessible to that tenant.
[0113] Hybrid SaaS / PaaS model According to the embodiment, the control plane may operate to control the cloud products provided within the SaaS environment. For example, a console interface may provide an interface that allows a customer to provision services for use within their SaaS environment, and an interface that allows the customer to configure those provisioned services. Provisioning components may include functionality for provisioning services specified by provisioning commands. For example, a customer (tenant) may access and utilize a provisioning component via the console interface to purchase one of a suite of applications together with a data warehouse instance.
[0114] Figure 11 shows a system for utilizing and allocating SaaS / PaaS resources in an analytical application environment according to an embodiment.
[0115] As shown in Figure 11, the control plane 1102 may include, for example, a console interface 1110 that controls cloud products provided within a SaaS environment and enables access by customer / tenant-controlled client (computer) devices, and a provisioning component 1111.
[0116] According to one embodiment, for example, a customer may request the provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and adds the necessary information provided by the customer to the warehouse. This may represent, for example, part of a PaaS component.
[0117] According to one embodiment, for example, this provisioning can be further utilized to provision multiple seats and multiple compute units that can be used by a customer, for example, based on an order. This could represent, for example, part of a SaaS component.
[0118] According to one embodiment, each of these provisioned resources, including database instances, sheets, and computing devices, can be tagged for each tenant (or subtenant) of the system.
[0119] As further shown in Figure 11, the data plane 1104 may comprise a data pipeline (e.g., an ETL (Extract, Transform, Load) process) 1120 and a data transformation layer 1134. The data pipeline 1120 and the data transformation layer 1134 are customer enterprise applications or transactional database environments, such as Oracle. The system works in conjunction to extract (1108a) operational or transactional data from the Fusion Applications environment, process it, and load (1150) it into a data warehouse instance. The data plane may also include a data / configuration user interface 1130 and a mapping / configuration database 1132.
[0120] According to the embodiment, although the embodiment shown in Figure 11 only shows one tenant, i.e., customer A represented by 1106a, as described above, such a system and method can support multiple tenants. Only one tenant is shown in the diagram for clarity.
[0121] According to the embodiment, the data pipeline maintains an analytics application schema 1162 for each customer / tenant (for example, Customer A associated with Customer A application / transaction database 1106a), for example as a star schema. The analytics application schema 1162 is periodically updated by the system (e.g., hourly / daily / weekly) in accordance with best practices for a specific analytics use case, such as HCM (Human Capital Management) analytics or ERP (Enterprise Resource Planning) analytics.
[0122] According to one embodiment, the data transformation layer may include a data model (e.g., a knowledge model, KM, or other type of data model) that the system uses to transform transaction data received from an enterprise application or business application into a model format for loading into a data warehouse.
[0123] According to the embodiment, for each customer, the system uses the analytical application schema that the system maintains and updates to pre-add data to the customer's data warehouse instance based on the analysis of data in the customer's enterprise application environment, for example, 1106a.
[0124] According to this embodiment, the analytical application schema held by the system allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1160a. Otherwise, the customer would have read-only access to the data and would not be able to directly modify it.
[0125] According to the embodiment, the analytics application environment provides a customer schema, such as 1164a, for each customer of the environment, which the customer can easily modify. The customer schema allows the customer to supplement and utilize data within their own data warehouse instance.
[0126] According to the embodiment, for each customer of the analytics application environment, the resulting data warehouse instance operates as a database. Part of the content of this database is controlled by the customer, and part is controlled by the analytics application environment (system), including cases where appropriate data retrieved from the enterprise application environment to address various analytics use cases, such as HCM analytics or ERP analytics, is pre-added to the database.
[0127] According to the embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytics application schema (analytics warehouse schema) and customer schemas obtained from enterprise application components on a per-customer / tenant basis. Data provisioned in a data warehouse tenancy (e.g., an ADWC tenancy) is accessible only to that tenant, but at the same time, it allows access to various functions, such as ETL-related functions or other functions of the shared analytics application environment.
[0128] According to the embodiment, in order to support multiple customers / tenants, the system allows the use of multiple data warehouse instances. For example, a first customer tenancy may consist of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may consist of a second database instance, a second staging area, and a second data warehouse instance.
[0129] According to the embodiment, once data is extracted for a specific customer / tenant, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can function as a temporary staging area for the extracted data. The integrity of the extracted data can be ensured by using data quality components and data protection components to validate the data, for example, while the extracted data is temporarily held in the data staging area.
[0130] Once the extraction process is complete, 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.
[0131] Using the provisioning component, customers can request the provisioning of a customer schema 1164 within a data warehouse. Customers can also provide multiple attributes associated with the data warehouse via the console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of sheets). The provisioning component can then provision the requested data warehouse (e.g., the customer schema for the data warehouse), adding the necessary information provided by the customer to that warehouse.
[0132] Such provisioning may be based on orders, including, for example, the number of seats, the database size, and the number of computing devices. These provisioned components may be tagged for each tenant in the system.
[0133] According to one embodiment, a monitoring agent 1180 may be provided (for example, in the data warehouse or control plane) in association with the data warehouse instance 1160a. An additional monitoring agent 1183 may be provided in the control plane. (According to one embodiment, although shown as two separate components in the figure, monitoring agents 1180 and 1183 may be a single entity, and the communication line between 1180 and 1183 illustrates the nature of the relationship between SaaS and PaaS).
[0134] According to the embodiment, the monitoring agent(s) may have access to provisioned metrics associated with tenants / customers. Monitoring agents 1180, 1183 may be responsible for monitoring (for example, dynamically, at configured configurable intervals, hourly, daily, etc.) (1182 / 1185) tenant / customer resource usage in the data warehouse (e.g., monitoring storage used by customers / tenants in associated data warehouse instances) and tenant / customer resource usage in the control plane (e.g., monitoring customer / tenant computing device usage for use in analytics). This may include, for example, monitoring and measuring customer computing device usage in relation to provisioned metrics, or measuring the number of seats a customer is using in relation to provisioned metrics.
[0135] According to the embodiment, the monitoring agent can utilize provisioned metrics 1181 / 1184 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) when monitoring and tracking resource usage by tenants. This can improve resource allocation within the system. That is, since each tenant is provisioned with various resources tagged to correspond to each tenant, the monitoring agent can identify resource usage on a per-tenant basis by tracking the tagged resources (each resource allocated to a tenant is tagged to identify that it belongs to and is allocated to that tenant). In addition, the monitoring agent can provide a notification / instruction 1186 to the provisioning component 1111 or other backend system indicating that a tenant has exceeded the provisioned resources, or that, based on the monitored metrics corresponding to the tenant, additional resources (e.g., computing devices) should be provided to a given tenant for a set period of time. Similarly, the monitoring agent 1180 / 1183 can provide an instruction 1188 indicating that too many resources allocated to a customer / tenant are not being utilized (more than provisioned). In these cases, the provisioning component then, for example, reduces waste in usage. Such resources may be reclaimed in order to eliminate them and / or provision them to a different tenant / customer.
[0136] According to one embodiment, for example, 20 seats and 4 computing devices are provisioned to a single tenant. During periods of high utilization, a monitoring agent detects, using tags associated with the tenant, that the tenant is using more components than those provisioned. In such cases, the monitoring agent can detect that the tenant is using, for example, more than 4 computing devices and, accordingly, provide provisioning for additional computing resources. Furthermore, based on such provisioning, the monitoring agent can notify the tenant of such usage.
[0137] Figure 12 shows a system for utilizing and allocating SaaS / PaaS resources in an analytical application environment according to an embodiment.
[0138] More specifically, Figure 12 shows a system for utilizing and allocating SaaS / PaaS resources in situations where storage / data warehouse resources are insufficient, according to an embodiment.
[0139] As shown in Figure 12, the control plane 1202 may include, for example, a console interface 1210 that controls cloud products provided within a SaaS environment and enables access by customer / tenant-controlled client (computer) devices, and a provisioning component 1211.
[0140] According to one embodiment, for example, a customer may request the provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and adds the necessary information provided by the customer to the warehouse. This may represent, for example, part of a PaaS component.
[0141] According to one embodiment, for example, this provisioning can be further utilized to provision multiple seats and multiple compute units that are available to the provisioning customer, for example, based on an order. This could represent, for example, part of a SaaS component.
[0142] According to one embodiment, each of these provisioned resources, including database instances, sheets, and computing devices, can be tagged for each tenant (or subtenant) of the system.
[0143] As further shown in Figure 12, the data plane 1204 may comprise a data pipeline (e.g., an ETL (Extract, Transform, Load) process) 1220 and a data transformation layer 1234. The data pipeline 1220 and the data transformation layer 1234 are customer enterprise applications or transactional database environments, such as Oracle. The system works in conjunction to extract (1208a) operational or transactional data from the Fusion Applications environment, process it, and load (1250) it into a data warehouse instance. The data plane may also include a data / configuration user interface 1230 and a mapping / configuration database 1232.
[0144] According to the embodiment, the embodiment shown in Figure 12 only shows one tenant, that is, customer A represented by 1206a, but as described above, such a system The naming convention can support multiple tenants. Only one tenant is shown in the diagram for clarity.
[0145] According to the embodiment, the data pipeline maintains an analytics application schema 1262 for each customer / tenant (for example, Customer A associated with Customer A application / transaction database 1206a), for example as a star schema. The analytics application schema 1262 is periodically updated by the system (e.g., hourly / daily / weekly) according to best practices for a specific analytics use case, such as HCM (Human Capital Management) analytics or ERP (Enterprise Resource Planning) analytics.
[0146] According to one embodiment, the data transformation layer may include a data model (e.g., a knowledge model, KM, or other type of data model) that the system uses to load transaction data received from an enterprise application or business application into a model format for storage in a data warehouse.
[0147] According to the embodiment, for each customer, the system uses the analytical application schema that the system maintains and updates to pre-add data to the customer's data warehouse instance based on the analysis of data in the customer's enterprise application environment, for example, 1206a.
[0148] According to this embodiment, the analytical application schema held by the system allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1260a. Otherwise, the customer would have read-only access to the data and would not be able to directly modify it.
[0149] According to the embodiment, the analytics application environment provides a customer schema, such as 1264a, for each customer of the environment, which the customer can easily modify. The customer schema allows the customer to supplement and utilize data within their own data warehouse instance.
[0150] According to the embodiment, for each customer of the analytics application environment, the resulting data warehouse instance operates as a database. Part of the content of this database is controlled by the customer, and part is controlled by the analytics application environment (system), including cases where appropriate data retrieved from the enterprise application environment to address various analytics use cases, such as HCM analytics or ERP analytics, is pre-added to the database.
[0151] According to the embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytics application schema (analytics warehouse schema) and customer schemas obtained from enterprise application components on a per-customer / tenant basis. Data provisioned in a data warehouse tenancy (e.g., an ADWC tenancy) is accessible only to that tenant, but at the same time, it allows access to various functions, such as ETL-related functions or other functions of the shared analytics application environment.
[0152] According to the embodiment, in order to support multiple customers / tenants, the system is multiple This enables the use of data warehouse instances. For example, a first customer tenancy may consist of a first database instance, a first staging area, and a first data warehouse instance, while a second customer tenancy may consist of a second database instance, a second staging area, and a second data warehouse instance.
[0153] According to the embodiment, once data is extracted for a specific customer / tenant, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can function as a temporary staging area for the extracted data. The integrity of the extracted data can be ensured by using data quality components and data protection components to validate the data, for example, while the extracted data is temporarily held in the data staging area.
[0154] Once the extraction process is complete, 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.
[0155] Using the provisioning component, customers can request the provisioning of a customer schema 1264 within a data warehouse. Customers can also provide multiple attributes associated with the data warehouse via the console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of seats). The provisioning component can then provision the requested data warehouse (e.g., the customer schema for the data warehouse), adding the necessary information provided by the customer to that warehouse.
[0156] Such provisioning may be based on orders, including, for example, the number of seats, the database size, and the number of computing devices. These provisioned components may be tagged for each tenant in the system.
[0157] According to one embodiment, a monitoring agent 1280 may be provided (for example, in the data warehouse or control plane) in association with the data warehouse instance 1260a. An additional monitoring agent 1283 may be provided in the control plane. (According to one embodiment, although shown as two separate components in the figure, monitoring agents 1280 and 1283 may be a single entity, and the communication line between 1280 and 1283 illustrates the nature of the relationship between SaaS and PaaS).
[0158] According to the embodiment, the monitoring agent(s) may have access to provisioned metrics associated with tenants / customers. Monitoring agents 1280, 1283 may be responsible for monitoring (for example, dynamically, at configured configurable intervals, hourly, daily, etc.) (1282 / 1285) tenant / customer resource usage in the data warehouse (e.g., monitoring storage used by customers / tenants in associated data warehouse instances) and tenant / customer resource usage in the control plane (e.g., monitoring customer / tenant computing device usage for use in analytics). This may include, for example, monitoring and measuring customer computing device usage in relation to provisioned metrics, or measuring the number of seats a customer is using in relation to provisioned metrics.
[0159] According to the embodiment, the monitoring agent monitors the tenant's resource usage and When tracking, provisioned metrics 1281 / 1284 (for example, resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) can be utilized. This can improve resource allocation within the system. That is, since each tenant is provisioned with various resources tagged to correspond to each tenant, by tracking tagged resources (each resource allocated to a tenant is tagged to identify that it belongs to and is allocated to that tenant), the monitoring agent can identify resource usage on a per-tenant basis. In addition, the monitoring agent can provide notifications / commands 1286 to the provisioning component 1211 or other backend systems indicating that a tenant has exceeded the provisioned resources, or that, based on the monitored metrics corresponding to the tenant, additional resources (for example, computing power) should be provided to a given tenant for a set period of time. Similarly, monitoring agents 1280 / 1283 can provide commands 1288 indicating that resources allocated to a customer / tenant are not being utilized excessively (more than provisioned). In such cases, the provisioning component can then reclaim the resource, for example, to eliminate waste and / or to provision such resource to a different tenant / customer.
[0160] In one embodiment, as shown in the embodiment of Figure 12, the monitoring agent 1280 may detect that the resources a customer / tenant's data warehouse instance is providing to its associated customer / tenant are insufficient (1282). This could be, for example, a period of onboarding a large amount of data when the current size of the provisioned data warehouse instance is insufficient for the new data onboarding (ETL process). In such an embodiment, in order to seamlessly meet the client's current request without administrative work, the monitoring agent can then communicate that there is an oversupply 1287 and relay instructions 1286 to the provisioning component 1211 to allocate / provision additional resources (additional storage space in the illustrated example) to the customer's data warehouse instance (1288).
[0161] Figure 13 shows a system for utilizing and allocating SaaS / PaaS resources in an analytical application environment according to an embodiment.
[0162] More specifically, Figure 13 shows a system for the utilization and allocation of SaaS / PaaS resources in a situation where storage / data warehouse resources are not being effectively utilized by tenants / customers, according to an embodiment.
[0163] As shown in Figure 13, the control plane 1302 may include, for example, a console interface 1310 that controls cloud products provided within a SaaS environment and enables access by customer / tenant-controlled client (computer) devices, and a provisioning component 1311.
[0164] According to one embodiment, for example, a customer may request the provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and adds the necessary information provided by the customer to the warehouse. This may represent, for example, part of a PaaS component.
[0165] According to the embodiment, for example, this provisioning can be further utilized to provide a provisioning customer with multiple sheets and multiple computing units available, for example, based on an order. A compute unit can be provisioned. This could, for example, represent part of a SaaS component.
[0166] According to one embodiment, each of these provisioned resources, including database instances, sheets, and computing devices, can be tagged for each tenant (or subtenant) of the system.
[0167] As further shown in Figure 13, the data plane 1304 may comprise a data pipeline (e.g., an ETL (Extract, Transform, Load) process) 1320 and a data transformation layer 1334. The data pipeline 1320 and the data transformation layer 1334 are customer enterprise applications or transactional database environments, such as Oracle. The system works in conjunction to extract (1308a) operational or transactional data from the Fusion Applications environment, process it, and load (1350) it into a data warehouse instance. The data plane may also include a data / configuration user interface 1330 and a mapping / configuration database 1332.
[0168] According to the embodiment, although the embodiment shown in Figure 13 only shows one tenant, i.e., customer A represented by 1306a, as described above, such a system and method can support multiple tenants. Only one tenant is shown in the diagram for clarity.
[0169] According to the embodiment, the data pipeline maintains an analytics application schema 1362 for each customer / tenant (for example, Customer A associated with Customer A application / transaction database 1306a), for example as a star schema. The analytics application schema 1362 is periodically updated by the system (e.g., hourly / daily / weekly) in accordance with best practices for a specific analytics use case, such as HCM (Human Capital Management) analytics or ERP (Enterprise Resource Planning) analytics.
[0170] According to one embodiment, the data transformation layer may include a data model (e.g., a knowledge model, KM, or other type of data model) that the system uses to transform transaction data received from an enterprise application or business application into a model format for loading into a data warehouse.
[0171] According to the embodiment, for each customer, the system uses the analytical application schema that the system maintains and updates to pre-add data to the customer's data warehouse instance based on the analysis of data in the customer's enterprise application environment, for example, 1306a.
[0172] According to this embodiment, the analytical application schema held by the system allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1360a. Otherwise, the customer would have read-only access to the data and would not be able to directly modify it.
[0173] According to the embodiment, the analytics application environment provides a customer schema, such as 1364a, for each customer of the environment, which the customer can easily modify. The customer schema allows the customer to supplement and utilize data within their own data warehouse instance.
[0174] According to the embodiment, for each customer of the analytics application environment, the resulting data warehouse instance operates as a database. Part of the content of this database is controlled by the customer, and part is controlled by the analytics application environment (system), including cases where appropriate data retrieved from the enterprise application environment to address various analytics use cases, such as HCM analytics or ERP analytics, is pre-added to the database.
[0175] According to the embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytics application schema (analytics warehouse schema) and customer schemas obtained from enterprise application components on a per-customer / tenant basis. Data provisioned in a data warehouse tenancy (e.g., an ADWC tenancy) is accessible only to that tenant, but at the same time, it allows access to various functions, such as ETL-related functions or other functions of the shared analytics application environment.
[0176] According to the embodiment, in order to support multiple customers / tenants, the system allows the use of multiple data warehouse instances. For example, a first customer tenancy may consist of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may consist of a second database instance, a second staging area, and a second data warehouse instance.
[0177] According to the embodiment, once data is extracted for a specific customer / tenant, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can function as a temporary staging area for the extracted data. The integrity of the extracted data can be ensured by using data quality components and data protection components to validate the data, for example, while the extracted data is temporarily held in the data staging area.
[0178] Once the extraction process is complete, 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.
[0179] Using the provisioning component, customers can request the provisioning of a customer schema 1364 within a data warehouse. Customers can also provide multiple attributes associated with the data warehouse via the console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of seats). The provisioning component can then provision the requested data warehouse (e.g., the customer schema for the data warehouse), adding the necessary information provided by the customer to that warehouse.
[0180] Such provisioning may be based on orders, including, for example, the number of seats, the database size, and the number of computing devices. These provisioned components may be tagged for each tenant in the system.
[0181] According to the embodiment, a monitoring agent 1380 may be provided (for example, in the data warehouse or control plane) in association with the data warehouse instance 1360a. An additional such monitoring agent 1383 may be provided in the control plane. (According to the embodiment, two separate components are shown in the figure) Although shown as an example, monitoring agents 1380 and 1383 could be a single entity, and the communication line between 1380 and 1383 illustrates the nature of the relationship between SaaS and PaaS.
[0182] According to the embodiment, the monitoring agent(s) may have access to provisioned metrics associated with tenants / customers. Monitoring agents 1380, 1383 may be responsible for monitoring (for example, dynamically, at configured configurable intervals, hourly, daily, etc.) (1382 / 1385) tenant / customer resource usage in the data warehouse (e.g., monitoring storage used by customers / tenants in associated data warehouse instances) and tenant / customer resource usage in the control plane (e.g., monitoring customer / tenant computing device usage for use in analytics). This may include, for example, monitoring and measuring customer computing device usage in relation to provisioned metrics, or measuring the number of seats a customer is using in relation to provisioned metrics.
[0183] According to the embodiment, the monitoring agent can utilize provisioned metrics 1381 / 1384 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) when monitoring and tracking resource usage by tenants. This can improve resource allocation within the system. That is, since each tenant is provisioned with various resources tagged to correspond to each tenant, the monitoring agent can identify resource usage on a per-tenant basis by tracking tagged resources (each resource allocated to a tenant is tagged to identify that it belongs to and is allocated to that tenant). In addition, the monitoring agent can provide a notification / instruction 1386 to the provisioning component 1311 or other backend system indicating that a tenant has exceeded the provisioned resources, or that, based on the monitored metrics corresponding to the tenant, additional resources (e.g., computing power) should be provided to a given tenant for a set period of time. Similarly, the monitoring agent 1380 / 1383 can provide an instruction 1388 indicating that resources allocated to a customer / tenant are not being used excessively (more than provisioned). In such cases, the provisioning component can then reclaim the resource, for example, to eliminate waste and / or to provision such resource to a different tenant / customer.
[0184] In some embodiments, as shown in the embodiment of Figure 13, the monitoring agent 1380 may detect that a customer / tenant data warehouse instance is providing more resources than is sufficient, and that the utilization of resources provided to the customer / tenant is exceeding current demands (1382). This may occur, for example, during normal operation when an excess of storage space is allocated to a tenant / customer data warehouse instance (e.g., 1364a). In such embodiments, the monitoring agent may then communicate that the resources are underutilized 1387, and the instruction 1386 may be relayed to the provisioning component 1311. Then, according to some embodiments, in order to seamlessly respond to the client's current demands without administrative work, the provisioning component may deallocate the resources (e.g., storage size) to the customer / tenant and reallocate them elsewhere, or reserve them for reallocation to the customer / tenant when they are needed again.
[0185] Figure 14 shows a system for utilizing and allocating SaaS / PaaS resources in an analytical application environment according to an embodiment.
[0186] More specifically, Figure 14 shows a system for the utilization and allocation of SaaS / PaaS resources in a situation where storage / data warehouse resources are not being effectively utilized by tenants / customers, according to an embodiment.
[0187] As shown in Figure 14, the control plane 1402 may include, for example, a console interface 1410 that controls cloud products provided within a SaaS environment and enables access by customer / tenant-controlled client (computer) devices, and a provisioning component 1411.
[0188] According to one embodiment, for example, a customer may request the provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and adds the necessary information provided by the customer to the warehouse. This may represent, for example, part of a PaaS component.
[0189] According to one embodiment, for example, this provisioning can be further utilized to provision multiple seats and multiple compute units that are available to the provisioning customer, for example, based on an order. This could represent, for example, part of a SaaS component.
[0190] According to one embodiment, each of these provisioned resources, including database instances, sheets, and computing devices, can be tagged for each tenant (or subtenant) of the system.
[0191] As further shown in Figure 14, the data plane 1404 may comprise a data pipeline (e.g., an ETL (Extract, Transform, Load) process) 1420 and a data transformation layer 1434. The data pipeline 1420 and the data transformation layer 1434 are customer enterprise applications or transactional database environments, such as Oracle. The system works in conjunction to extract (1408a) operational or transactional data from the Fusion Applications environment, process it, and load (1450) it into a data warehouse instance. The data plane may also include a data / configuration user interface 1430 and a mapping / configuration database 1432.
[0192] According to the embodiment, although the embodiment shown in Figure 14 only shows one tenant, i.e., customer A represented by 1406a, as described above, such a system and method can support multiple tenants. Only one tenant is shown in the diagram for clarity.
[0193] According to the embodiment, the data pipeline maintains an analytics application schema 1462 for each customer / tenant (for example, Customer A associated with Customer A application / transaction database 1406a), for example as a star schema. The analytics application schema 1462 is periodically updated by the system (e.g., hourly / daily / weekly) in accordance with best practices for a specific analytics use case, such as HCM (Human Capital Management) analytics or ERP (Enterprise Resource Planning) analytics.
[0194] According to one embodiment, the data transformation layer may include a data model (e.g., a knowledge model, KM, or other type of data model) that the system uses to transform transaction data received from an enterprise application or business application into a model format for loading into a data warehouse.
[0195] According to the embodiment, for each customer, the system uses the analytical application schema that the system maintains and updates to pre-add data to the customer's data warehouse instance based on the analysis of data in the customer's enterprise application environment, for example, 1406a.
[0196] According to this embodiment, the analytical application schema held by the system allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1460a. Otherwise, the customer would have read-only access to the data and would not be able to directly modify it.
[0197] According to the embodiment, the analytics application environment provides a customer schema, such as 1464a, for each customer of the environment, which the customer can easily modify. The customer schema allows the customer to supplement and utilize data within their own data warehouse instance.
[0198] According to the embodiment, for each customer of the analytics application environment, the resulting data warehouse instance operates as a database. Part of the content of this database is controlled by the customer, and part is controlled by the analytics application environment (system), including cases where appropriate data retrieved from the enterprise application environment to address various analytics use cases, such as HCM analytics or ERP analytics, is pre-added to the database.
[0199] According to the embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytics application schema (analytics warehouse schema) and customer schemas obtained from enterprise application components on a per-customer / tenant basis. Data provisioned in a data warehouse tenancy (e.g., an ADWC tenancy) is accessible only to that tenant, but at the same time, it allows access to various functions, such as ETL-related functions or other functions of the shared analytics application environment.
[0200] According to the embodiment, in order to support multiple customers / tenants, the system allows the use of multiple data warehouse instances. For example, a first customer tenancy may consist of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may consist of a second database instance, a second staging area, and a second data warehouse instance.
[0201] According to the embodiment, once data is extracted for a specific customer / tenant, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can function as a temporary staging area for the extracted data. The integrity of the extracted data can be ensured by using data quality components and data protection components to validate the data, for example, while the extracted data is temporarily held in the data staging area.
[0202] Once the extraction process is complete, 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.
[0203] Using the provisioning component, customers can request the provisioning of a customer schema 1464 within a data warehouse. Customers can also provide multiple attributes associated with the data warehouse via the console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of sheets). The provisioning component can then provision the requested data warehouse (e.g., the customer schema for the data warehouse), adding the necessary information provided by the customer to that warehouse.
[0204] Such provisioning may be based on orders, including, for example, the number of seats, the database size, and the number of computing devices. These provisioned components may be tagged for each tenant in the system.
[0205] According to one embodiment, a monitoring agent 1480 may be provided (for example, in the data warehouse or control plane) in association with the data warehouse instance 1460a. An additional monitoring agent 1483 may be provided in the control plane. (According to one embodiment, although shown as two separate components in the figure, monitoring agents 1480 and 1483 may be a single entity, and the communication line between 1480 and 1483 illustrates the nature of the relationship between SaaS and PaaS).
[0206] According to the embodiment, the monitoring agent(s) may have access to provisioned metrics associated with tenants / customers. Monitoring agents 1480, 1483 may be responsible for monitoring (for example, dynamically, at configured configurable intervals, hourly, daily, etc.) (1482 / 1485) tenant / customer resource usage in the data warehouse (e.g., monitoring storage used by customers / tenants in associated data warehouse instances) and tenant / customer resource usage in the control plane (e.g., monitoring customer / tenant computing device usage for use in analytics). This may include, for example, monitoring and measuring customer computing device usage in relation to provisioned metrics, or measuring the number of seats a customer is using in relation to provisioned metrics.
[0207] According to the embodiment, the monitoring agent can utilize provisioned metrics 1481 / 1484 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) when monitoring and tracking resource usage by tenants. This improves resource allocation within the system. That is, since each tenant is provisioned with various resources tagged to correspond to each tenant, the monitoring agent can identify resource usage for each tenant by tracking tagged resources (each resource allocated to a tenant is tagged to identify that it belongs to or is allocated to that tenant). In addition, the monitoring agent can issue notifications / instructions 1486 to the provisioning component 141 indicating that a tenant has exceeded the provisioned resources, or that additional resources (e.g., computing devices) should be provided to a given tenant for a set period of time based on the situation where the monitored metrics correspond to the tenant. 1. It can be provided to other backend systems. Similarly, monitoring agents 1480 / 1483 can provide instruction 1488 indicating that resources allocated to a customer / tenant are too numerous (more than provisioned) and not being utilized. In such cases, the provisioning component can then reclaim such resources, for example, to eliminate wasteful utilization and / or to provision such resources to a different tenant / customer.
[0208] In some embodiments, as shown in the embodiment of Figure 14, the monitoring agent 1483 may detect that the resources provisioned to the customer / tenant on the console interface (e.g., computing power, seats, etc.) are being fully utilized, and that the customer / tenant is requesting an oversupply of such resources (1485). This may be, for example, if the customer / tenant is running intensive analytics at scale, for example, running analytics on hundreds of gigabytes of data that require more computing power than initially provisioned to the customer / tenant (e.g., 1464a). In such embodiments, the instruction 1486 may be relayed to the provisioning component 1411. Then, according to some embodiments, the provisioning component may allocate additional computing resources (or seats) to the customer / tenant to seamlessly meet the client's current request without administrative work.
[0209] Figure 15 shows a system for utilizing and allocating SaaS / PaaS resources in an analytical application environment according to an embodiment.
[0210] More specifically, Figure 15 shows a system for the utilization and allocation of SaaS / PaaS resources in a situation where storage / data warehouse resources are not being effectively utilized by tenants / customers, according to an embodiment.
[0211] As shown in Figure 15, the control plane 1502 may include, for example, a console interface 1510 that controls cloud products provided within a SaaS environment and enables access by customer / tenant-controlled client (computer) devices, and a provisioning component 1511.
[0212] According to one embodiment, for example, a customer may request the provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and adds the necessary information provided by the customer to the warehouse. This may represent, for example, part of a PaaS component.
[0213] According to one embodiment, for example, this provisioning can be further utilized to provision multiple seats and multiple compute units that are available to the provisioning customer, for example, based on an order. This could represent, for example, part of a SaaS component.
[0214] According to one embodiment, each of these provisioned resources, including database instances, sheets, and computing devices, can be tagged for each tenant (or subtenant) of the system.
[0215] As further shown in Figure 15, the data plane 1504 may comprise a data pipeline (e.g., an ETL (Extract, Transform, Load) process) 1520 and a data transformation layer 1534. The data pipeline 1520 and the data transformation layer 1534 are customer enterprise applications or transactional database environments, such as Oracle. The system works in conjunction to extract (1508a) operational or transactional data from the Fusion Applications environment, process it, and load (1550) it into a data warehouse instance. The data plane may also include a data / configuration user interface 1530 and a mapping / configuration database 1532.
[0216] According to the embodiment, although the embodiment shown in Figure 15 only shows one tenant, i.e., customer A represented by 1506a, as described above, such a system and method can support multiple tenants. Only one tenant is shown in the diagram for clarity.
[0217] According to the embodiment, the data pipeline maintains an analytics application schema 1562 for each customer / tenant (for example, Customer A associated with Customer A application / transaction database 1506a), for example as a star schema. The analytics application schema 1562 is periodically updated by the system (e.g., hourly / daily / weekly) according to best practices for a specific analytics use case, such as HCM (Human Capital Management) analytics or ERP (Enterprise Resource Planning) analytics.
[0218] According to one embodiment, the data transformation layer may include a data model (e.g., a knowledge model, KM, or other type of data model) that the system uses to transform transaction data received from an enterprise application or business application into a model format for loading into a data warehouse.
[0219] According to the embodiment, for each customer, the system uses the analytical application schema that the system maintains and updates to pre-add data to the customer's data warehouse instance based on the analysis of data in the customer's enterprise application environment, for example, 1506a.
[0220] According to this embodiment, the analytical application schema held by the system allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1560a. Otherwise, the customer would have read-only access to the data and would not be able to directly modify it.
[0221] According to the embodiment, the analytics application environment provides a customer schema, such as 1564a, for each customer of the environment, which the customer can easily modify. The customer schema allows the customer to supplement and utilize data within their own data warehouse instance.
[0222] According to the embodiment, for each customer of the analytics application environment, the resulting data warehouse instance operates as a database. Part of the content of this database is controlled by the customer, and part is controlled by the analytics application environment (system), including cases where appropriate data retrieved from the enterprise application environment to address various analytics use cases, such as HCM analytics or ERP analytics, is pre-added to the database.
[0223] According to the embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) includes a default analytics application schema (analytics warehouse schema) and an enterprise application The customer schema obtained from the production component may be included for each customer / tenant. Data provisioned in a data warehouse tenancy (e.g., ADWC tenancy) is accessible only to that tenant, but at the same time, it allows access to various functions, such as ETL-related functions or other functions of the shared analytics application environment.
[0224] According to the embodiment, in order to support multiple customers / tenants, the system allows the use of multiple data warehouse instances. For example, a first customer tenancy may consist of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may consist of a second database instance, a second staging area, and a second data warehouse instance.
[0225] According to the embodiment, once data is extracted for a specific customer / tenant, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can function as a temporary staging area for the extracted data. The integrity of the extracted data can be ensured by using data quality components and data protection components to validate the data, for example, while the extracted data is temporarily held in the data staging area.
[0226] Once the extraction process is complete, 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.
[0227] Using the provisioning component, customers can request the provisioning of a customer schema 1564 within a data warehouse. Customers can also provide multiple attributes associated with the data warehouse via the console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of seats). The provisioning component can then provision the requested data warehouse (e.g., the customer schema for the data warehouse) and add the necessary information provided by the customer to that warehouse.
[0228] Such provisioning may be based on orders, including, for example, the number of seats, the database size, and the number of computing devices. These provisioned components may be tagged for each tenant in the system.
[0229] According to one embodiment, a monitoring agent 1580 may be provided (for example, in the data warehouse or control plane) in association with the data warehouse instance 1560a. An additional monitoring agent 1583 may be provided in the control plane. (According to one embodiment, although shown as two separate components in the figure, monitoring agents 1580 and 1583 may be a single entity, and the communication line between 1580 and 1583 illustrates the nature of the relationship between SaaS and PaaS).
[0230] According to the embodiment, the monitoring agent(s) may have access to provisioned metrics associated with tenants / customers. Monitoring agents 1580, 1583 may, for example, monitor resources tagged by each tenant of the system, thereby monitoring tenant / customer resource usage in the data warehouse (e.g., monitoring storage used by customers / tenants in associated data warehouse instances) and tenant / customer resource usage in the control plane (e.g., customer resource usage for use in analytics). It may be responsible for monitoring (for example, dynamically, at set configurable intervals, hourly, daily, etc.) the usage of computing devices by tenants (1582 / 1585). This may include, for example, monitoring and measuring the usage of a customer's computing devices in relation to provisioned metrics, or measuring the number of seats a customer is using in relation to provisioned metrics.
[0231] According to the embodiment, the monitoring agent can utilize provisioned metrics 1581 / 1584 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) when monitoring and tracking resource usage by tenants. This can improve resource allocation within the system. That is, since each tenant is provisioned with various resources tagged to correspond to each tenant, the monitoring agent can identify resource usage on a per-tenant basis by tracking the tagged resources (each resource allocated to a tenant is tagged to identify that it belongs to and is allocated to that tenant). In addition, the monitoring agent can provide a notification / instruction 1586 to the provisioning component 1511 or other backend system indicating that a tenant has exceeded the provisioned resources, or that, based on the monitored metrics corresponding to the tenant, additional resources (e.g., computing devices) should be provided to a given tenant for a set period of time. Similarly, the monitoring agent 1580 / 1583 can provide an instruction 1588 indicating that resources allocated to a customer / tenant are not being utilized excessively (more than provisioned). In such cases, the provisioning component can then reclaim the resource, for example, to eliminate waste and / or to provision such resource to a different tenant / customer.
[0232] According to one embodiment, as shown in the embodiment of Figure 15, the monitoring agent 1583 may detect that resources provisioned to a customer / tenant (e.g., computers, seats, etc.) on the console interface are not being effectively utilized, and that the customer / tenant does not currently need the provisioned amount of resources 1585. This could be, for example, if the customer / tenant is not currently running analytics. Then, according to one embodiment, in order to seamlessly respond to the client's current requests without administrative work, the provisioning component may deallocate resources (e.g., multiple computers) to the customer / tenant and reallocate them elsewhere, or reserve them for reallocation to the customer / tenant when they are needed again.
[0233] Figure 16 shows a system for utilizing and allocating SaaS / PaaS resources in an analytical application environment according to an embodiment.
[0234] More specifically, Figure 16 shows a system for utilizing and allocating SaaS / PaaS resources in an analytics application environment that supports multiple customers / tenants.
[0235] As shown in Figure 16, the control plane 160 may include, for example, a console interface 1610 that controls cloud products provided within a SaaS environment and enables access by customer / tenant-controlled client (computer) devices, and a provisioning component 1611.
[0236] According to the embodiment, for example, the customer provides a data warehouse instance Provisioning may be requested. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and adds the necessary information provided by the customer to the warehouse. This could, for example, represent part of a PaaS component.
[0237] According to one embodiment, for example, this provisioning can be further utilized to provision multiple seats and multiple compute units that are available to the provisioning customer, for example, based on an order. This could represent, for example, part of a SaaS component.
[0238] According to one embodiment, each of these provisioned resources, including database instances, sheets, and computing devices, can be tagged for each tenant (or subtenant) of the system.
[0239] As further shown in Figure 16, the data plane 1604 may comprise a data pipeline (e.g., an ETL (Extract, Transform, Load) process) 1620 and a data transformation layer 1634. The data pipeline 1620 and the data transformation layer 1634 are customer enterprise applications or transactional database environments, such as Oracle. They work together to extract operational or transactional data from the Fusion Applications environment (where each extraction process is separate for each tenant / customer and / or associated application or transaction database) (1608), process it, and load it into a data warehouse instance (1650). The data plane may also include a data / configuration user interface 1630 and a mapping / configuration database 1632.
[0240] According to the embodiment, the system for utilizing and allocating SaaS / PaaS resources in the analytics application environment can support multiple tenants / customers, each sharing the analytics application environment 1600 through multiple instances of the data warehouse F60. As illustrated, it can support customers / tenants, each associated with a separate application / transaction database 1606.
[0241] According to the embodiment, the data pipeline maintains an analytics application schema 1662 for each customer / tenant (for example, customers A-C mapped to customer A-C application / transaction database 1606), for example as a star schema. The analytics application schema 1662 is periodically updated by the system (e.g., hourly / daily / weekly) according to best practices for a specific analytics use case, such as HCM (Human Capital Management) analytics or ERP (Enterprise Resource Planning) analytics.
[0242] According to one embodiment, the data transformation layer may include a data model (e.g., a knowledge model, KM, or other type of data model) that the system uses to transform transaction data received from an enterprise application or business application into a model format for loading into a data warehouse.
[0243] According to the embodiment, for each customer, the system uses the analytical application schema that the system maintains and updates to pre-add data to the customer's data warehouse instance based on the analysis of data in the customer's enterprise application environment, for example, 1606a.
[0244] According to this embodiment, the analytical application schema held by the system allows the data pipeline to retrieve data "live" from the customer's environment and load it into the customer's data warehouse instance 1660. Otherwise, the customer would have read-only access to the data and would not be able to directly modify it.
[0245] According to one embodiment, the analytics application environment provides a customer schema, such as 1664, for each customer of the environment, which the customer can easily modify. The customer schema allows the customer to supplement and utilize data within their own data warehouse instance.
[0246] According to the embodiment, for each customer of the analytics application environment, the resulting data warehouse instance operates as a database. Part of the content of this database is controlled by the customer, and part is controlled by the analytics application environment (system), including cases where appropriate data retrieved from the enterprise application environment to address various analytics use cases, such as HCM analytics or ERP analytics, is pre-added to the database.
[0247] According to the embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytics application schema (analytics warehouse schema) and customer schemas obtained from enterprise application components on a per-customer / tenant basis. Data provisioned in a data warehouse tenancy (e.g., an ADWC tenancy) is accessible only to that tenant, but at the same time, it allows access to various functions, such as ETL-related functions or other functions of the shared analytics application environment.
[0248] According to the embodiment, in order to support multiple customers / tenants, the system allows the use of multiple data warehouse instances. For example, a first customer tenancy may consist of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may consist of a second database instance, a second staging area, and a second data warehouse instance.
[0249] According to the embodiment, once data is extracted for a specific customer / tenant, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can function as a temporary staging area for the extracted data. The integrity of the extracted data can be ensured by using data quality components and data protection components to validate the data, for example, while the extracted data is temporarily held in the data staging area.
[0250] Once the extraction process is complete, 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.
[0251] Using the provisioning component, customers can request the provisioning of customer schema 1664 within a data warehouse. Customers can also supply multiple attributes associated with the data warehouse via the console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of sheets). The requested data warehouse (e.g., dataware) can then be provisioned. The provisioning component can provision the customer schema of the warehouse and add the necessary information provided by the customer to that warehouse.
[0252] Such provisioning may be based on orders, including, for example, the number of seats, the database size, and the number of computing devices. These provisioned components may be tagged for each tenant in the system.
[0253] According to the embodiment, a monitoring agent 1680 may be provided in association with each data warehouse instance 1660 (for example, in the data warehouse or control plane). In addition, monitoring agents 1683 may be provided in the control plane, each associated with a customer / tenant instance. (According to the embodiment, although shown as two separate components in the figure, each instance of monitoring agents 1680 and 1683 may be a single entity, and the communication line between 1680 and 1683 illustrates the nature of the relationship between SaaS and PaaS).
[0254] According to the embodiment, a monitoring agent(s) may have access to provisioned metrics associated with the tenant / customer to which the monitoring agent is associated (for example, based on tags of the metrics being monitored). Monitoring agents 1680, 1683 may be responsible for monitoring (for example, dynamically, at configured configurable intervals, hourly, daily, etc.) (1682 / 1685) tenant / customer resource usage in the data warehouse (for example, monitoring storage used by the customer / tenant in the associated data warehouse instance) and tenant / customer resource usage in the control plane (for example, monitoring the use of computing devices by the customer / tenant for use in analytics) by monitoring resources tagged by each tenant of the system. This may include, for example, monitoring and measuring the usage of a customer's computing devices in relation to provisioned metrics, or measuring the number of seats a customer is using in relation to provisioned metrics.
[0255] According to the embodiment, the monitoring agent can utilize provisioned metrics 1681 / 1684 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) when monitoring and tracking resource usage by tenants. This can improve resource allocation within the system. That is, since each tenant is provisioned with various resources tagged to correspond to each tenant, the monitoring agent can identify resource usage on a per-tenant basis by tracking the tagged resources (each resource allocated to a tenant is tagged to identify that it belongs to and is allocated to that tenant). In addition, the monitoring agent can provide a notification / instruction 1686 to the provisioning component 1611 or other backend system indicating that a tenant has exceeded the provisioned resources, or that, based on the monitored metrics corresponding to the tenant, additional resources (e.g., computing devices) should be provided to a given tenant for a set period of time. Similarly, the monitoring agent 1680 / 1683 can provide an instruction 1688 indicating that resources allocated to a customer / tenant are not being used excessively (more than provisioned). In such cases, the provisioning component can then reclaim the resource, for example, to eliminate waste and / or to provision such resource to a different tenant / customer.
[0256] Figure 17 shows a system for utilizing and allocating SaaS / PaaS resources in an analytical application environment according to an embodiment.
[0257] More specifically, Figure 17 shows a system for utilizing and allocating SaaS / PaaS resources in an analytics application environment that supports multiple customers / tenants.
[0258] As shown in Figure 17, the control plane 1702 may include, for example, a console interface 1710 that controls cloud products provided within a SaaS environment and enables access by customer / tenant-controlled client (computer) devices, and a provisioning component 1711.
[0259] According to one embodiment, for example, a customer may request the provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and adds the necessary information provided by the customer to the warehouse. This may represent, for example, part of a PaaS component.
[0260] According to one embodiment, for example, this provisioning can be further utilized to provision multiple seats and multiple compute units that are available to the provisioning customer, for example, based on an order. This could represent, for example, part of a SaaS component.
[0261] According to one embodiment, each of these provisioned resources, including database instances, sheets, and computing devices, can be tagged for each tenant (or subtenant) of the system.
[0262] As further shown in Figure 17, the data plane 1704 may comprise a data pipeline (e.g., an ETL (Extract, Transform, Load) process) 1720 and a data transformation layer 1734. The data pipeline 1720 and the data transformation layer 1734 are customer enterprise applications or transactional database environments, such as Oracle. They work together to extract operational or transactional data from the Fusion Applications environment (where each extraction process is separate for each tenant / customer and / or associated application or transaction database) (1708), process it, and load it into a data warehouse instance (1750). The data plane may also include a data / configuration user interface 1730 and a mapping / configuration database 1732.
[0263] According to the embodiment, the system for utilizing and allocating SaaS / PaaS resources in the analytics application environment can support multiple tenants / customers, each sharing the analytics application environment 1700 through multiple instances of the data warehouse F60. As illustrated, it can support customers / tenants, each associated with a separate application / transaction database 1706.
[0264] According to the embodiment, the data pipeline maintains an analytics application schema 1762 for each customer / tenant (for example, customers A-C associated with customer A-C application / transaction database 1706), for example as a star schema. The analytics application schema 1762 is for example HCM (Human Capital Management) analytics or ERP (Enterprise Resource Planning). The system updates regularly (e.g., hourly / daily / weekly) according to best practices for specific analytical use cases, such as Resource Planning (SE) analytics.
[0265] According to one embodiment, the data transformation layer may include a data model (e.g., a knowledge model, KM, or other type of data model) that the system uses to transform transaction data received from an enterprise application or business application into a model format for loading into a data warehouse.
[0266] According to an embodiment, for each customer, the system uses an analytical application schema that the system holds and updates to pre-add data to the customer's data warehouse instance based on an analysis of the customer's enterprise application environment, for example, the data within 1706a.
[0267] According to an embodiment, thus, with the analytical application schema held by the system, it becomes possible to "live" retrieve data from the customer's environment by a data pipeline and load it into the customer's data warehouse instance 1760. Otherwise, the data is made accessible to the customer in a read-only manner and the customer cannot directly make changes.
[0268] According to an embodiment, for each customer of the analytical application environment, the analytical application environment provides a customer schema such as 1764 that allows the customer to easily change the content. With the customer schema, the customer can supplement or utilize the data within their own data warehouse instance.
[0269] According to an embodiment, for each customer of the analytical application environment, the resulting data warehouse instance operates as a database. A part of the content of this database is controlled by the customer, and a part is controlled by the analytical application environment (system), including cases where appropriate data retrieved from the enterprise application environment to handle various analytics use cases such as HCM analytics or ERP analytics is pre-added to the database.
[0270] According to the embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytics application schema (analytics warehouse schema) and customer schemas obtained from enterprise application components on a per-customer / tenant basis. Data provisioned in a data warehouse tenancy (e.g., an ADWC tenancy) is accessible only to that tenant, but at the same time, it allows access to various functions, such as ETL-related functions or other functions of the shared analytics application environment.
[0271] According to the embodiment, in order to support multiple customers / tenants, the system allows the use of multiple data warehouse instances. For example, a first customer tenancy may consist of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may consist of a second database instance, a second staging area, and a second data warehouse instance.
[0272] According to the embodiment, once data is extracted for each specific customer / tenant, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can function as a temporary staging area for the extracted data. The integrity of extracted data can be ensured by using data quality and data protection components, for example, by validating the extracted data while it is temporarily held in a data staging area.
[0273] Once the extraction process is complete, 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.
[0274] Using the provisioning component, customers can request the provisioning of customer schema 1764 within a data warehouse. Customers can also provide multiple attributes associated with the data warehouse via the console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of sheets). The provisioning component can then provision the requested data warehouse (e.g., the customer schema for the data warehouse) and add the necessary information provided by the customer to that warehouse.
[0275] Such provisioning may be based on orders, including, for example, the number of seats, the database size, and the number of computing devices. These provisioned components may be tagged for each tenant in the system.
[0276] In one embodiment, a single monitoring agent 1780 may be provided that supports multiple data warehouse instances 1760 (for example, in the data warehouse or control plane). This single monitoring agent 1780 can monitor multiple instances of the data warehouse by monitoring tag-based resources 1781, where the tags indicate the customer / tenant from which the resources are provisioned. In addition, a single monitoring agent 1783 may be provided in the control plane, where this monitoring agent supports multiple customer / tenant instances. This single monitoring agent 1783 can monitor multiple instances of the data warehouse by monitoring tag-based resources 1784, where the tags indicate the customer / tenant from which the resources are provisioned. (In one embodiment, although shown as two separate components in the figure, each instance of monitoring agents 1780 and 1783 may be a single entity, and the communication lines between 1780 and 1783 represent the nature of the relationship between SaaS and PaaS).
[0277] According to the embodiment, a monitoring agent(s) may have access to provisioned metrics associated with the tenant / customer to which the monitoring agent is associated (for example, based on tags of the metrics being monitored). Monitoring agents 1780, 1783 may be responsible for monitoring (for example, dynamically, at configured configurable intervals, hourly, daily, etc.) (1782 / 1785) tenant / customer resource usage in the data warehouse (for example, monitoring storage used by the customer / tenant in the associated data warehouse instance) and tenant / customer resource usage in the control plane (for example, monitoring the use of computing devices by the customer / tenant for use in analytics), by monitoring resources tagged by each tenant of the system. This may include, for example, monitoring and measuring the usage of a customer's computing devices in relation to provisioned metrics, or measuring the number of seats a customer is using in relation to provisioned metrics.
[0278] According to the embodiment, the monitoring agent monitors the tenant's resource usage and When tracking, provisioned metrics 1781 / 1784 (e.g., resources provisioned or allocated to a customer / tenant in response to provisioning by the customer / tenant) can be utilized. This can improve resource allocation within the system. That is, since each tenant has various resources provisioned that are associated with each tenant, by tracking the tagged resources (each resource allocated to a tenant is tagged to identify that it belongs to and is allocated to that tenant), the monitoring agent can identify resource usage on a per-tenant basis. In addition, the monitoring agent can provide notifications / instructions 1786 to the provisioning component 1711 or other backend systems indicating that a tenant has exceeded the provisioned resources, or that, based on the monitored metrics associated with the tenant, additional resources (e.g., computing power) should be provided to a given tenant for a set amount of time. Similarly, monitoring agents 1780 / 1783 can provide instructions 1788 indicating that resources allocated to a customer / tenant are too numerous (more than provisioned) and not being utilized. In such cases, the provisioning component can then reclaim the resource, for example, to eliminate waste and / or to provision such resource to a different tenant / customer.
[0279] Figure 18 shows a system for a SaaS / PaaS billing model in an analytical application environment according to an embodiment.
[0280] More specifically, Figure 18 shows a system for utilizing and allocating SaaS / PaaS resources in an analytics application environment that supports multiple customers / tenants.
[0281] As shown in Figure 18, the control plane 1802 may include, for example, a console interface 1810 that controls cloud products provided within a SaaS environment and enables access by customer / tenant-controlled client (computer) devices, and a provisioning component 1811.
[0282] According to one embodiment, for example, a customer may request the provisioning of a data warehouse instance. The provisioning component then provisions the requested data warehouse instance (including the customer schema) and adds the necessary information provided by the customer to the warehouse. This may represent, for example, part of a PaaS component.
[0283] According to one embodiment, for example, this provisioning can be further utilized to provision multiple seats and multiple compute units that are available to the provisioning customer, for example, based on an order. This could represent, for example, part of a SaaS component.
[0284] According to one embodiment, each of these provisioned resources, including database instances, sheets, and computing devices, can be tagged for each tenant (or subtenant) of the system.
[0285] As further shown in Figure 18, the data plane 1804 may comprise a data pipeline (e.g., an ETL (Extract, Transform, Load) process) 1820 and a data transformation layer 1834. The data pipeline 1820 and the data transformation layer 1834 are customer enterprise applications or transactional database environments, such as Oracle. They work together to extract operational or transactional data from the Fusion Applications environment (where each extraction process is separate for each tenant / customer and / or associated application or transaction database) (1808), process it, and load it into a data warehouse instance (1850). The data plane may also include a data / configuration user interface 1830 and a mapping / configuration database 1832.
[0286] According to the embodiment, the system for utilizing and allocating SaaS / PaaS resources in the analytics application environment can support multiple tenants / customers, each sharing the analytics application environment 1800 via multiple instances of the data warehouse F60. As illustrated, it can support customers / tenants, each associated with a separate application / transaction database 1806.
[0287] According to the embodiment, the data pipeline maintains an analytics application schema 1862 for each customer / tenant (for example, customers A-C mapped to customer A-C application / transaction database 1806), for example as a star schema. The analytics application schema 1862 is periodically updated by the system (e.g., hourly / daily / weekly) according to best practices for a specific analytics use case, such as HCM (Human Capital Management) analytics or ERP (Enterprise Resource Planning) analytics.
[0288] According to one embodiment, the data transformation layer may include a data model (e.g., a knowledge model, KM, or other type of data model) that the system uses to transform transaction data received from an enterprise application or business application into a model format for loading into a data warehouse.
[0289] According to an embodiment, for each customer, the system adds data in advance to the customer's data warehouse instance based on an analysis of the customer's enterprise application environment, e.g., the data within 1806a, using an analysis application schema that the system holds and updates.
[0290] According to an embodiment, thus, with the analysis application schema held by the system, it becomes possible to "live" search for data from the customer's environment by a data pipeline and load it into the customer's data warehouse instance 1860. Otherwise, the data can be made accessible to the customer in a read-only manner, and the customer cannot directly make changes.
[0291] According to an embodiment, for each customer in the analysis application environment, a customer schema such as 1864 is provided that allows the customer to easily change the content. With the customer schema, the customer can supplement and utilize the data within their own data warehouse instance.
[0292] According to an embodiment, for each customer in the analysis application environment, the resulting data warehouse instance operates as a database. Some of the content of this database is controlled by the customer, and some is controlled by the analysis application environment (system), including cases where appropriate data retrieved from the enterprise application environment to handle various analytics use cases, such as HCM analytics or ERP analytics, is presumably added to the database in advance.
[0293] According to the embodiment, for example, a data warehouse (e.g., Oracle Autonomous Data Warehouse, ADWC) may include a default analytics application schema (analytics warehouse schema) and customer schemas obtained from enterprise application components on a per-customer / tenant basis. Data provisioned in a data warehouse tenancy (e.g., an ADWC tenancy) is accessible only to that tenant, but at the same time, it allows access to various functions, such as ETL-related functions or other functions of the shared analytics application environment.
[0294] According to the embodiment, in order to support multiple customers / tenants, the system allows the use of multiple data warehouse instances. For example, a first customer tenancy may consist of a first database instance, a first staging area, and a first data warehouse instance, and a second customer tenancy may consist of a second database instance, a second staging area, and a second data warehouse instance.
[0295] According to the embodiment, once data is extracted for a specific customer / tenant, the data pipeline can insert the extracted data into the tenant's data staging area. The data staging area can function as a temporary staging area for the extracted data. The integrity of the extracted data can be ensured by using data quality components and data protection components to validate the data, for example, while the extracted data is temporarily held in the data staging area.
[0296] Once the extraction process is complete, 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.
[0297] Using the provisioning component, customers can request the provisioning of customer schema 1864 within a data warehouse. Customers can also provide multiple attributes associated with the data warehouse via the console interface, including required attributes (e.g., login credentials) and optional attributes (e.g., size, speed, or number of sheets). The provisioning component can then provision the requested data warehouse (e.g., the customer schema for the data warehouse), adding the necessary information provided by the customer to that warehouse.
[0298] Such provisioning may be based on orders, including, for example, the number of seats, the database size, and the number of computing devices. These provisioned components may be tagged for each tenant in the system.
[0299] According to one embodiment, a single monitoring agent 1880 may be provided to support multiple data warehouse instances 1860 (for example, in the data warehouse or control plane). This single monitoring agent 1880 can monitor multiple instances of the data warehouse by monitoring tag-based resources 1881, where the tags indicate the customer / tenant from which the resources are provisioned. In addition, a single monitoring agent 1883 may be provided in the control plane, where the monitoring agent supports multiple customer / tenant instances. This single monitoring agent 1883 can monitor multiple instances of the data warehouse by monitoring tag-based resources 1884, where the tags indicate the customer / tenant from which the resources are provisioned. (According to one embodiment, although shown as two separate components in the figure, monitoring Each instance of agents 1880 and 1883 can be a single entity, and the communication line between 1880 and 1883 illustrates the nature of the relationship between SaaS and PaaS.
[0300] According to the embodiment, a monitoring agent(s) may have access to provisioned metrics associated with the tenant / customer to which the monitoring agent is associated (for example, based on tags of the metrics being monitored). Monitoring agents 1880, 1883 may be responsible for monitoring (for example, dynamically, at configured configurable intervals, hourly, daily, etc.) (1882 / 1885) tenant / customer resource usage in the data warehouse (for example, monitoring storage used by the customer / tenant in the associated data warehouse instance) and tenant / customer resource usage in the control plane (for example, monitoring the use of computing devices by the customer / tenant for use in analytics), by monitoring resources tagged by each tenant of the system. This may include, for example, monitoring and measuring the usage of a customer's computing devices in relation to provisioned metrics, or measuring the number of seats a customer is using in relation to provisioned metrics.
[0301] According to the embodiment, customer provisioning may be partly based on an order specifying the number of seats / users the customer wants to access both the analytics environment and the data warehouse 1860. Based on the number of users / seats purchased by the customer (plus optional attributes such as increases or decreases in database size for analytics or the data warehouse, or increases or decreases in computing devices), several tagged provisioned metrics 1881 and 1884 may be configured in relation to the customer schema. Such an initial order may form part of the billing model 1890 in the form of a setup fee 1891. This setup fee can be thought of as the customer / tenant's first subscription.
[0302] In one embodiment, monitoring agents 1880 and / or 1883 (in some embodiments, these may be considered as a single logical entity) can report to the billing system 1890, for example, if additional resources are provisioned to a customer / tenant. The monitoring agents can not only notify billing 1890 but also provide information about the amount of additional resources provisioned to the customer / tenant in the form of an oversupply 1892. The billing system can use such oversupply in conjunction with a stipulation fee 1891 to automatically generate an invoice combining the initial subscription with one or more additional resources provisioned based on monitoring.
[0303] In one embodiment, a conventional SaaS (Software as a Service) / PaaS (Platform as a Service) billing system typically bills the customer / tenant for their use of the SaaS / PaaS based on the number of seats (e.g., users who can access the SaaS at any time) selected by the customer / tenant during the initial purchase / license agreement for the SaaS / PaaS. While this model has worked well for SaaS / PaaS so far, problems can arise if the customer / tenant requests or needs more resources than they have already purchased. In such a situation, for example, the only mechanism available to the customer / tenant might be to purchase several additional seats for the SaaS / PaaS.
[0304] According to the embodiment, when a customer / tenant orders a SaaS / PaaS analytics data warehouse (for example, Oracle® Fusion Analytics Warehouse), a data warehouse for the customer / tenant (here, the terms customer and tenant are used synonymously) (for example, An instance of an autonomous data warehouse may be provisioned. Provisioning of an autonomous data warehouse may be based on criteria selected by the customer / tenant at the time of purchase / license agreement. For example, a sales order placed by the customer may specify the number of seats purchased by the customer. Based on the number of seats, the control plane described above may provision the customer schema in the data warehouse. The provisioned data warehouse may specify several items about the provisioned data warehouse, including the number of computing devices (e.g., OCPUs (Oracle® Compute Units)) for both the analytics cloud and the autonomous data warehouse, and the database size. For example, if a customer purchases 20 to 100 seats, the system may provision 4 computing devices (e.g., processors, or the maximum computing power associated with the cores of the processors) for the analytics cloud, 4 computing devices for the autonomous data warehouse, and a 1 terabyte database.
[0305] According to embodiments, the systems and methods described herein provide a way for customers to adjust provisioned computing resources related to their orders on demand, rather than simply purchasing more seats. In addition, billing for this on-demand adjustment can be done using a cash payment model. This billing model is a combination of a subscription-based model and a cash payment model.
[0306] Figure 19 shows a flowchart of a SaaS / PaaS billing model in an analytical application environment according to an embodiment.
[0307] According to the embodiment, an order / license agreement 1900 may be received. The order may specify a number of sheets 1901. The number of sheets 1901 may indicate the type and amount of resources included in the customer's license agreement, based on a table lookup. These resources may include data warehouse calculators, database sizes, and analytics calculators.
[0308] According to one embodiment, this information, along with customer-specific information, may be passed to a Tenancy Management System (TAS) 1910. The TAS 1910 may be configured by a provisioning system, as described above. The TAS can communicate with a Service Manager 1915. The Service Manager 1915 can process analytics entitlements (for example, based on a specified number of sheets and analytics compute resources). This can then be passed to the analytics control plane. The analytics control plane may provision an analytics environment (for example, based on a specified number of sheets and analytics compute resources). As part of this provisioning, information may be passed to the data warehouse control plane 1920 along with a minimum provisioned metrics (database size, data warehouse compute units). The data warehouse control plane may then create an ADW instance.
[0309] According to the embodiment, as described above, the data warehouse is responsible for measuring usage and reporting excess supply to the billing system 1930. The billing system 1930 then creates an invoice based on the subscription fee 1931 and the excess supply 1932 reported by the data warehouse.
[0310] Figure 20 is a flowchart illustrating a method for utilizing and allocating SaaS / PaaS resources in an analytical application environment according to an embodiment.
[0311] According to one embodiment, in step 2010, the method may provide an analysis application environment.
[0312] According to one embodiment, in step 2020, the method may provide a control plane consisting of a server. The control plane further consists of provisioning components and a console interface.
[0313] According to one embodiment, in step 2030, the method may provide a data warehouse.
[0314] According to one embodiment, in step 2040, the method may provide a monitoring agent.
[0315] According to one embodiment, in step 2050, the method can provision an instance of the data warehouse in relation to the tenant. The provisioned instance of the data warehouse has an initial size.
[0316] According to one embodiment, when a data warehouse instance is provisioned in step 2060, the method may add an entry to the monitoring agent's metrics repository. The added entry indicates the initial size of the provisioned data warehouse instance. The added entry is tagged, and the tag indicates the tenant.
[0317] According to one embodiment, in step 2070, the method may monitor the amount of data stored in the provisioned data warehouse instance using a monitoring agent.
[0318] According to various embodiments, the teachings herein may be conveniently implemented by one or more conventional general-purpose or dedicated digital computers, computing devices, machines, or microprocessors, including one or more processors, memory, and / or computer-readable storage media programmed in accordance with the teachings herein. A programmer skilled in the art can readily provide appropriate software coding based on the teachings herein, as will be apparent to a person proficient in software technology.
[0319] In some embodiments, the present invention includes a computer program product which is a non-temporary computer-readable storage medium (or multiple computer-readable storage mediums) storing instructions. A computer can be programmed to use the computer program product to perform any of the operations of this teaching. For example, such storage mediums may include, but are not limited to, hard disk drives, hard disks, fixed disks or other electromechanical data storage devices, any type of disk including 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 mediums or devices suitable for temporarily storing instructions and / or data.
[0320] The above description is provided for illustrative and illustrative purposes only. It is not intended to be comprehensive or to limit the scope of protection to the exact form disclosed. Many changes and modifications will be apparent to those skilled in the art.
[0321] For example, some of the examples provided herein illustrate the operation of an analytics application environment with an enterprise software application / data environment, such as an Oracle Fusion Applications environment, or the operation of an analytics application environment within the context of a SaaS (Software-As-A-Service) or cloud environment, such as an Oracle Analytics Cloud or Oracle Cloud Infrastructure environment. However, according to various embodiments, the systems and methods described herein can be used with other types of enterprise software application / data environments, cloud environments, cloud services, cloud computing, or other computing environments.
[0322] Embodiments have been selected and described to best illustrate the principles of this teaching and their practical applications. This will enable those skilled in the art to understand various embodiments and, in addition, various modifications suitable for specific applications. The scope of this disclosure is indicated by the appended claims and their equivalents.
Claims
1. A system for allocating and managing resources in an analytics cloud environment, A computer containing one or more processors that provides access to a data analytics environment and a data warehouse for storing data from multiple tenants, The system further comprises a provisioning component used when provisioning instances of the data analytics environment and data warehouse in relation to a tenant, wherein the provisioned instances have an initial allocation of computing resources including data size, and the system further comprises: The system includes a monitoring agent that monitors the use of the data analytics environment and data warehouse by each tenant instance and updates the metrics repository with entries indicating the use by the provisioned instance, including data size, wherein the entries are tagged and indicate the tenant. The monitoring agent monitors the amount of computing resources, including data usage, in the provisioned instance of the data warehouse, and provides notifications accordingly, the notifications including a display of the amount of change in the data size of the provisioned instance of the data warehouse.
2. The system according to claim 1, wherein the monitoring agent detects that the amount of data stored in the provisioned instance of the data warehouse is equal to the initial size of the provisioned instance of the data warehouse.
3. The system according to claim 2, wherein when the monitoring agent detects that the amount of data stored in the provisioned instance of the data warehouse is equal to the initial size of the provisioned instance of the data warehouse, the monitoring agent issues a command to the provisioning component of the control plane, the command being a command to increase the initial size of the provisioned instance of the data warehouse.
4. The system according to claim 3, wherein when the provisioning component increases the initial size of the provisioned instance of the data warehouse, the monitoring agent sends the notification to the billing component to create an updated invoice.
5. The system according to claim 4, wherein the billing component, in response to receiving the notification from the monitoring agent, creates the updated invoice, the updated invoice reflects the increase in the initial size of the provisioned instance of the data warehouse, and the updated invoice is an invoice that is automatically created based on the configuration fee and combines the initial subscription with one or more additional resources provisioned based on the monitoring.
6. A discrete number calculator is provisioned in relation to the aforementioned tenant, The system according to claim 1, wherein the monitoring agent detects the use by the tenant of a number of computing devices greater than the discrete number of computing devices provisioned in relation to the tenant.
7. The system according to claim 6, wherein when the monitoring agent detects that the tenant is using more computing devices than the discrete number of computing devices provisioned in relation to the tenant, the monitoring agent issues an instruction to the provisioning component of the control plane, the instruction to the provisioning component to provision even more discrete computing devices for use by the tenant.
8. A computer-based method for allocating and managing resource usage in an analytics cloud environment, To provide a computer containing one or more processors that provides access to a data analytics environment and a data warehouse for storing data from multiple tenants, The method includes providing provisioning components used when provisioning instances of the data analytics environment and data warehouse in relation to a tenant, wherein the provisioned instances have an initial allocation of compute resources, including data size, and the method further includes: The service includes providing a monitoring agent that monitors the use of the data analytics environment and data warehouse by each tenant instance and updates a metrics repository with entries indicating the use by the provisioned instance, including data size, wherein the entries are tagged and indicate the tenant. A method comprising: a monitoring agent monitoring the amount of computing resources, including data usage, in the provisioned instance of the data warehouse, and providing notifications accordingly, the notifications including a display of the amount of change in the data size of the provisioned instance of the data warehouse.
9. The method according to claim 8, further comprising the monitoring agent detecting that the amount of data stored in the provisioned instance of the data warehouse is equal to the initial size of the provisioned instance of the data warehouse.
10. The method according to claim 9, wherein when the monitoring agent detects that the amount of data stored in the provisioned instance of the data warehouse is equal to the initial size of the provisioned instance of the data warehouse, the monitoring agent further includes giving an instruction to the provisioning component of the control plane, the instruction being an instruction to the provisioning component to increase the initial size of the provisioned instance of the data warehouse.
11. The method according to claim 10, further comprising the monitoring agent sending the notification to the billing component to create an updated invoice when the provisioning component increases the initial size of the provisioned instance of the data warehouse.
12. The method according to claim 11, further comprising the billing component creating an invoice in response to receiving the notification from the monitoring agent, wherein the invoice reflects an increase in the initial size of the provisioned instance of the data warehouse.
13. A discrete number calculator is provisioned in relation to the aforementioned tenant, The method according to claim 8, wherein the monitoring agent detects the use by the tenant of a number of computing devices greater than the discrete number of computing devices provisioned in relation to the tenant.
14. The method according to claim 13, wherein when the monitoring agent detects that the tenant is using more computing devices than the discrete number of computing devices provisioned in relation to the tenant, the monitoring agent issues an instruction to the provisioning component of the control plane, the instruction to the provisioning component to provision a further discrete number of computing devices for use by the tenant.
15. A program for causing a computer to perform the method described in any one of claims 8 to 14.
Citation Information
Patent Citations
Method and system for movably deploying applications to one or more cloud systems
JP2017529633A
Automatic demand-driven resource scaling for relational database-as-a-service
US20160321588A1
Tracking query execution status for selectively routing queries
US20180060400A1
Elastic multi-tenant container architecture
US20190042322A1
