Abstract:
A central data warehouse includes embedded data marts. These embedded data marts, referred to as workspaces, are assigned centrally manage data by reference only but rely directly on the centrally managed data and the underlying infrastructure. Workspaces still allow departments in an enterprise to perform certain actions on their own (like adding new data and building new models) without having to instantiate copies of the centrally managed data in a locally managed data mart.

Description:
BACKGROUND 
       [0001]    Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section. 
         [0002]    A central data warehouse (CDW) generally serves as a central repository for informational data about a business enterprise. Typically, the source data for the central data warehouse come from various operational applications executing in the business enterprise such as enterprise resource planning (ERP) systems, customer relations management (CRM) systems, human resource (HR) systems, and so on. The central data warehouse is sometimes referred to by other terms such as “data warehouse”, “centralized” data warehouse, enterprise data warehouse, and so on. 
         [0003]    An enterprise typically builds a central data warehouse to enable a consolidated view on the relevant key performance indicators (KPIs) such as sales volume, margin, profit, etc. Setting up such a central data warehouse requires company-wide efforts and means a significant investment for the company. Despite the complexity and cost, a central data warehouse nonetheless provides valuable information to the business enterprise by providing a total view of the company&#39;s performance and financial status using data collected from various sources within the enterprise. A central data warehouse is typically maintained and controlled by an information technology (IT) department which relies on clearly formulated requirements by the business. 
         [0004]    The central data warehouse is suitable from the point of view of the enterprise as a whole. However, groups within the enterprise require flexibility in terms of being able to view the data in their own way, develop new data models, and conduct analyses in ways that are specific to their needs. The central data warehouse architecture is generally not so dynamic. Because of the centralized nature of the data, there are typically strictly controlled and limited accesses to the central data warehouse. Accordingly, the response time to the demands of new or changing requirements by the individual users or business departments is likely to be long. In addition, the sheer volume of data that may have to be processed can add to the delay. Also, due to an increasing number of legal constraints, such as auditing rules, data protection rules, world-wide financial regulations requiring centralized governance of the data, and so on, the resulting procedural delays (“red tape”) can further increase the response times. 
         [0005]    A conventional solution is the use of local data marts. The term “data mart” is generally understood as comprising a partition of the total enterprise data that is stored and maintained in the central data warehouse. The data mart typically is created for a specific use by a group of users in the enterprise. For example, a sales group may only be interested in regional sales figures for their own planning purposes, and would not be interested in data relating to manufacturing. Accordingly, a data mart of regional sales figures may be instantiated for the sales group. Conventionally, the sales group might download a copy of just the regional sales data from the central data warehouse to create a local instance of the regional sales data in their data mart. Then they use this data to build a smaller solution that can be controlled and maintained only by them. 
         [0006]    Having a local copy of the data in their own local data mart gives a business department within the enterprise the freedom to fulfill their requirements in the manner that they want, without the constraints imposed by the central data warehouse. This conventional approach, however, has several drawbacks:
       Redundancy: It creates additional data redundancies in the organization as the data is replicated to the local instances.   Security: The person who downloaded the data may see more or different data than other users of the local solution. These restrictions have to be re-implemented on the local instance or, as it is often the case, are simply neglected.   The “one version of truth” approach is violated. The downloads represent snapshots of the data at any time, reporting on different such local solutions can differ significantly and cause bad decisions and/or endless discussions on which dataset is the “right” one.   Higher total cost of ownerships for the company. These local solutions also require technically skilled people to manage them and the departments start to build up “shadow” IT organizations instead of relying on the central services of the IT organization.       
 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]      FIG. 1  shows an illustrative embodiment of a central data warehouse in accordance with the present disclosure. 
           [0012]      FIG. 2  shows additional details of the central data warehouse example of  FIG. 1 . 
           [0013]      FIG. 3  illustrates a process flow in accordance with the present disclosure. 
           [0014]      FIG. 4  illustrates a high level system block diagram of a typical implementation in accordance with the present disclosure. 
       
    
    
     DETAILED DESCRIPTION 
       [0015]    In the following description, for purposes of explanation, numerous examples and specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be evident, however, to one skilled in the art that the present disclosure as defined by the claims may include some or all of the features in these examples alone or in combination with other features described below, and may further include modifications and equivalents of the features and concepts described herein. 
         [0016]      FIG. 1  shows a high level overview of a central data warehouse (“data warehouse”) system  100  in accordance with principles of the present invention. The central data warehouse system  100  for an enterprise may receive source data from various sources in the enterprise; for example, an enterprise resource planning system  112 . Of course, it will be appreciated that the central data warehouse system  100  may receive source data from other providers of source data  114 . An IT administrator  122  may manage the central data warehouse system  100 , including defining and maintaining the underlying data model by which the incoming source data are modeled. The IT administrator  122  may provide and maintain several global data views (e.g., total sales figures, total costs, etc.) of the data model, for example, to allow the financial health of the enterprise to be assessed by management level users in the enterprise. 
         [0017]    In some embodiments, the central data warehouse system  100  may comprise a data warehouse  102  and a workspace manager  104 . The data warehouse  102  may include hardware and software components which support the storage, accessing, viewing, and general maintenance of the incoming source data. The data stored and managed by the data warehouse  102  is sometimes referred to collectively as “centrally managed data.” 
         [0018]    In accordance with the present disclosure, the workspace manager  104  is a component of the central data warehouse system  100  that provides and manages one or more workspaces  106   a,    106   b,    106   c  to support specific activities for various groups  132 ,  134 ,  136  of users within the enterprise; e.g., sales, production, marketing, engineering, finance, etc. Local data  142  may be imported into a group&#39;s workspace (e.g.,  106   c ). The local data  142  may be data that is specific to the group. The local data  142  may include confidential information that the group does not wish to share with others outside the group. 
         [0019]    Referring to  FIG. 2 , the central data warehouse system  100  in accordance with some embodiments of the present disclosure may include a source data receiver  202  for receiving incoming source data  242 . An extraction, translation, load (ETL) tool, for example, may be a component in the source data receiver  202 . The incoming source data  242  may be loaded into a suitable database system  204  (e.g., a relational database management system, RDBMS). Though not illustrated, it will be understood that the database system  204  may comprise a data storage subsystem to house or store the received incoming source data  242 , and a database management subsystem to provide database services in order to access the stored source data. The database system  204  may be configured to represent a configuration of data tables which collectively define a data model  206  to model the source data in a way that is useful to the enterprise. 
         [0020]    A data view generator  210  may be used to provide data views  212  of the data model  206  that users in the enterprise may want to see. Since the data stored in the data model  206  comprises all data relating to the enterprise, strict access controls are typically needed to ensure the integrity and security of the data. Typically, only an enterprise-level IT administrative group is permitted to access and build the data views  212  using, for example, the data view generator  210 . 
         [0021]    The IT administrator may designate access controls for each of the data views  212 ; for example, the data views  212  may be read-only. Data views  212  may be further restricted to certain groups within the enterprise. For instance, data views relating to employees&#39; salaries may only be accessible by people in the human resources (HR) department, and perhaps only to certain people within the HR department. The data views  212  may be accessed by a business user via a data warehouse interface  214 . 
         [0022]    In an embodiment, the foregoing described components may be viewed collectively as constituting the data warehouse  102  shown in  FIG. 1 . Centrally managed data may include the data views  214 , in addition to the data contained in the data tables comprising the data model  206 . In other words, centrally managed data may refer to all the enterprise data that is collected (e.g., incoming source data  242 ), stored, and maintained by the central data warehouse system  100 , including data derived (e.g., data views) from the collected and stored enterprise data. 
         [0023]    In accordance with principles of the present disclosure, the central data warehouse system  100  supports the idea of “workspaces.”  FIG. 2  shows two instances of a workspace, “workspace 1” and “workspace 2.” Referring to workspace 1 as simply “the workspace,” the workspace allows a group of users to perform data modeling or other analytics that are specific to their needs, using portions of the centrally managed data stored in the data warehouse. Accordingly, the workspace may be assigned data views  212 , portions of the data views, data from the data tables comprising the data model  206 , and so on. As will be explained in more detail below, the centrally managed data that is assigned to the workspace is assigned by reference only. 
         [0024]    A workspace services interface  220  may provide services to support the creation, usage, and general maintenance of workspaces (e.g., workspace 1, workspace 2) provided by the central data warehouse system  100 . A workspace maintenance module  222  may be provided to manage workspaces within the central data warehouse system  100 . In some embodiments, the workspace maintenance module  222  may allow the IT administrator to create workspaces, to assign centrally managed data to the workspaces, to assign the workspaces to users in the enterprise, to change workspaces, delete workspaces, monitor activity in the workspaces, and so on. 
         [0025]    A workspace designer module  224  may be used to provide a suitable interface that allows business users to work in their assigned workspaces, such as creating data models, importing data, performing analytics, generating views, and so on. A user may import or upload locally produced data (“local data”) into their assigned workspace. The data is “local” in that it may be unique to the group of users using the workspace; for example, the data may be for assessing what-if scenarios specific to that group. Data modeling or other analytics may be performed on the centrally managed data that is assigned to the workspace and any imported local data. For example, the workspace designer module  224  may include conventional data modeling or analytical tools to support the users&#39; data modeling efforts. 
         [0026]    The workspace maintenance module  222  and the workspace designer module  224  may access the services provided by the workspace services interface  220  to perform their respective tasks. In some embodiments, the workspace maintenance module  222  and the workspace designer module  224  may be deemed to constitute the workspace manager  104  shown in  FIG. 1 . 
         [0027]    As noted above, data that is associated with the workspace includes centrally managed data that has been assigned to the workspace by an IT administrator and local data imported into the workspace. Data models  232  created by users of a workspace may also be deemed data that is associated with the workspace. Data associated with the workspace is “visible” only to users of the workspace. This can be achieved in some embodiments, for example, by requiring a user to login to their assigned workspace in order to initiate a workspace session; e.g., via the workspace designer module  224 . Any data associated with the workspace becomes visible only to users who can login to the workspace. Similarly, a user should have visibility only to data in their workspace. For example, if user A is not assigned to workspace N, then data in workspace N should not be visible to user A. The login procedure achieves this because user A would not be allowed to login to the workspace N. It will be appreciated that in other embodiments, other mechanisms may be employed to restrict workspace access to only users assigned to the workspace, and to restrict users to only workspaces to which they are assigned. 
         [0028]    A user assigned to a workspace generally has read and write access to the workspace. For example, the user may read data that is associated with the workspace. Any data that the user creates in the workspace may also be subsequently read and written by the user. However, in accordance with the present disclosure, centrally managed data that is assigned to the workspace is read-only. This restriction maintains the integrity of the centrally managed data while at the same time facilitating the user&#39;s data modeling needs by granting read access to the centrally managed data. 
         [0029]      FIG. 3  shows a process flow in accordance with some embodiments for creating a workspace. A user or group of users may request that a workspace be created to support their data modeling or analytics needs. In response, the IT administrator may use the workspace maintenance module  222  to create a workspace in accordance with principles of the present disclosure. Accordingly, in a step  302 , a workspace may be instantiated. This may include giving the workspace a name and creating various metadata files to manage the workspace. 
         [0030]    In a step  304 , objects form the data warehouse may be assigned to the instantiated workspace. The objects may include data from the centrally managed data such as data views  214  or data tables comprising the data model  206 . In some embodiments, objects may include queries previously defined by the central data warehouse system  100 , previously defined analytics, and so on, allowing for reusability of previously defined tools. This step may be repeated during the lifetime of the workspace. The IT administrator may assign additional objects to the workspace subsequent to creating the workspace, for example, to accommodate users as their date modeling needs change. Conversely, objects previously assigned to a workspace may be un-assigned as users&#39; needs or situations change. 
         [0031]    In accordance with the principles of the present disclosure, the assignment of centrally managed data to the instantiated workspace is by reference only. In other words, the central data warehouse system  100  does not download or otherwise store into the workspace a copy of the actual data corresponding to the assigned centrally managed data, but rather contains references to the assigned centrally managed data. An analogy might be the concept of a pointer in some computer programming languages such as the C programming language. Another analogy might be the notion of a symbolic link used in some file systems such as used in a Unix-based operating system. 
         [0032]    An example is illustrated in  FIG. 2 . The “sales data” and “employee data” are data views in the centrally managed data. They are indicated as being assigned to “workspace 1.” However, the workspace does not contain a local copy of the data that correspond to the “sales data.” Instead, the workspace contains a reference to “sales data.” Likewise, the workspace contains a reference to “employee data.” As will be explained below, the workspace services interface  220  provides, during a workspace session, “transient data” that correspond to these references to the centrally managed data. 
         [0033]    In a step  306 , the IT administrator may assign users to the instantiated workspace. Users may be assigned at the time of creating the workspace. And during the lifetime of the workspace, additional users may be assigned or may be removed (un-assigned) as the situation changes. 
         [0034]    In a step  308 , the IT administrator may apply various access controls to the assigned users. Group level access controls may be applied that affect all the users in the group that are assigned to the workspace. Individual access controls may be applied on a per user basis; for example, the manager of a group may have more access than non-managers. Access controls may include typical control settings such as read and write access to the workspace. However, as mentioned above, access to centrally managed data that is assigned to the workspace is read-only. Access controls may specify when and where the workspace may be accessed. For example, access may be granted for specific windows of time. Access to a workspace may be restricted to computers (e.g., clients) that are connected to the enterprise&#39;s internal communication network. And so on. It will be appreciated that other controls may be enforced. 
         [0035]    In a step  310 , the IT administrator may set boundary conditions on the instantiated workspace. For example, the IT administrator may limit the amount of data (e.g., local data) that can be uploaded and stored in the workspace. This data limit may be expressed in terms of total data (e.g.,  1  Gigabyte of data), or the data limit may be expressed as the maximum number of files, and so on. The workspace may have a “lifetime”; for example, users may be allowed to use a workspace for 3 months. After the lifetime of the workspace has expired, the workspace may then be de-activated so that users can no longer access the workspace, or the workspace may be deleted including deleting any stored data. The workspace may be de-activated if no one has used the workspace for a period of time. The IT administrator may impose certain naming conventions on the data that the user might create in the workspace. The IT administrator may limit the computational resources allocated to the workspace. It will be appreciated that other boundary conditions may be imposed on the workspace, for example, in order to avoid any one workspace from consuming too much processing and storage resources of the central data warehouse system  100 . 
         [0036]    After creating the workspace, users may then access the workspace and conduct modeling or other analytical activities on the data in the workspace. Following are typical activities that a user may perform:
       access the workspace—In some embodiments, a user may access their assigned workspace, for example, by performing a login sequence using the workspace designer module  224 . It will be appreciated that in other embodiments, other mechanisms may be provided to allow the user to gain access to their assigned workspace.   perform analyses—The workspace designer module  224  may provide tools that allow the user to develop data models on their data, or to perform other analytics on their data. The data may include centrally managed data that is assigned to the workspace and data that the user may import.   upload data—As noted above, the workspace designer module  224  may provide tools that allow the user to import data that they may have created for their modeling purposes.   generate data views—The workspace designer module  224  may provide the user with tools to perform queries on the their data models and to generate data views of their data models. The user may perform data table operations such as JOINs and UNIONs.   exit the workspace—In some embodiments, the user may exit their workspace, for example, by logging out of the system.       
 
         [0042]    As explained above, in accordance with principles of the present disclosure, centrally managed data that is assigned to a workspace is assigned by reference only, and thus may be referred to as “referenced data.” For example, in  FIG. 2 , the “sales data” and “employee data” represented in the data model  232  of workspace 1 are examples of referenced data. Since the workspace does not have an actual copy of the data that correspond to the referenced data, the workspace services interface  220  may provide utilities for the workspace designer module  224  to perform operations that use referenced data. Operations may include creating data models that use referenced data, performing data table operations on referenced data, generating data views, and so on. 
         [0043]    In accordance with the present disclosure, the workspace services interface  220  may generate “transient data” that correspond to the referenced data. Utilities provided by the workspace services interface  220  may include low level functions that operate on the transient data to perform the operations (e.g., table JOINs) called for by the workspace. Transient data is data that is created during the user&#39;s workspace session. At the end of the workspace session (e.g., when the user exits the workspace), the transient data may be deleted. In some embodiments, therefore, though the workspace does not posses a copy of the data corresponding to the reference data, operations on the data may nonetheless be performed on the transient data provided by the workspace services interface  220  during the workspace session so that the user can still do their data modeling or other analytics on the centrally managed data that is assigned to their workspace. 
         [0044]    In accordance with the present disclosure, data imported into the workspace by a user may be used in any operations that are performed on the referenced data. For example, a JOIN operation may be performed between a locally uploaded data table and a data table in the centrally managed data that corresponds to a referenced data table. 
         [0045]    An advantageous outcome of a workspace having only referenced data to the centrally managed data and performing operations on transient data is that no persistent copies of the centrally managed data are created outside of the central data warehouse system  100 . Accordingly, the control of the central data warehouse system  100  can maintain and ensure the security of the centrally managed data. As a corollary, the workspace obviates the need for duplicating data security measures by groups who need to access centrally managed data since there are no persistent copies of the centrally managed data stored in the groups&#39; workspaces. In some embodiments, the security measures associated with the centrally managed data are inherited by the workspace. Since the centrally managed data is not copied into an instance in the workspace, and access to the centrally managed data is done via the same infrastructure (e.g., the workspace services interface  220  may incorporated the security infrastructure of the central data warehouse system  100 ), the security settings of the centrally managed data are automatically inherited by the workspace. 
         [0046]    Another advantage of a workspace using referenced data is that the workspace is guaranteed to be operating on the most current state of the data because the transient data is generated on the fly each time the referenced data is used. In addition, different workspaces that use the same referenced data will be guaranteed to be accessing the same state of the corresponding data. Results from different groups using different workspaces can be assured that their respective models or analyses are based on the same underlying data. 
         [0047]    A particular embodiment of the central data warehouse system  100  in accordance with the present disclosure is illustrated in  FIG. 4 , showing a high level block diagram of a computer system  402  configured to operate in accordance with the present disclosure. The computer system  402  may include a central processing unit (CPU) or other similar data processing component. The computer system  402  may include various memory components. For example, the memory components may include a volatile memory  414  (e.g., random access memory, RAM) and a data storage device  416 . A communication interface  418  may be provided to allow the computer system  402  to communicate over a communication network  422 , such as a local area network (LAN), the Internet, and so on. An internal bus  420  may interconnect the components comprising the computer system  402 . 
         [0048]    The data storage device  416  may comprise a non-transitory computer readable medium having stored thereon computer executable program code  432 . The computer executable program code  432  may be executed by the CPU  412  to cause the CPU to perform steps of the present disclosure, for example the steps set forth in  FIG. 3 . The data storage device  416  may store data structures  434  such as object instance data, runtime objects, and any other data described herein. 
         [0049]    A user (e.g., IT administrator, business user) may interact with the computer system  402  using suitable user interface devices  442 . They may include, for example, input devices such as a keyboard, a keypad, a mouse or other pointing device, and output devices such as a display. 
         [0050]    All systems and processes discussed herein may be embodied in program code stored on one or more non-transitory computer-readable media. Such media may include, for example, a floppy disk, a CD-ROM, a DVD-ROM, a Flash drive, magnetic tape, and solid state Random Access Memory (RAM) or Read Only Memory (ROM) storage units. It will be appreciated that embodiments are not limited to any specific combination of hardware and software. Elements described herein as communicating with one another are directly or indirectly capable of communicating over any number of different systems for transferring data, including but not limited to shared memory communication, a local area network, a wide area network, a telephone network, a cellular network, a fiber-optic network, a satellite network, an infrared network, a radio frequency network, and any other type of network that may be used to transmit information between devices. Moreover, communication between systems may proceed over any one or more transmission protocols that are or become known, such as Asynchronous Transfer Mode (ATM), Internet Protocol (IP), Hypertext Transfer Protocol (HTTP) and Wireless Application Protocol (WAP). 
         [0051]    The above description illustrates various embodiments of the present disclosure along with examples of how aspects of the present disclosure may be implemented. The above examples and embodiments should not be deemed to be the only embodiments, and are presented to illustrate the flexibility and advantages of the present disclosure as defined by the following claims. Based on the above disclosure and the following claims, other arrangements, embodiments, implementations and equivalents will be evident to those skilled in the art and may be employed without departing from the spirit and scope of the disclosure as defined by the claims.