In previous posts, I’ve focused on the components around BAM (starting with Impact of ACM Implementation on BAM). Now is will start with a number of posts that are related to the components of BAM. Hereby I will use the image below. The image comes from the BAM documentation of Oracle. This post will mainly be about Data objects.
From the Oracle Documentation (https://docs.oracle.com/middleware/1213/bam/bam-user-guide/GUID-22D3700F-121C-4FCC-B0EE-A5AA54689CC7.htm#BAMUG98195)
A BAM data object models data for use within BAM. It contains the data to be monitored. The data can be saved in raw format in a database or in an external table. The data can also be a stream from an ongoing activity.
A data object is structured like a table, with columns and rows. A column can be one of these types:
- A measure column contains numeric data, such as procedure costs or case processing times.
- A dimension column contains data used to group or partition numeric data, such as departments or case type.
- An attribute column contains information that can be used for filtering or references, such as an ID or a timestamp.
A hierarchy is a set of dimension columns in a data object with a hierarchical relationship, such as Judicial system, Department, Team and Employee.
The following types of data objects exist:
- A simple data object is used as is. It can contain indexes and hierarchies, but no other column additions or modifications. It corresponds to a database view in the BAM database. Other data objects can use or refer to simple data objects.
- A derived data object extends a simple data object or another derived data object. It inherits the columns and hierarchies of the parent data object and adds its own columns.
- An external data object references data that is persisted outside of Oracle BAM. When a connection to the external data object is configured in Oracle WebLogic Server, Oracle BAM can access it. The external data object name may be changed from the actual table name, but the column names are unchanged. Some columns may not be selected for visibility in BAM.
- You use an External FACT Data Object to fetch data from an external table (not within BAM) to create tactical views (External FACT Data Object acts as a remote FACT table, you cannot join it with BAM Data Objects).
- You use as External DIM Data Object as a remote dimension table (not within BAM) so it can participate in a join within a BAM Logical Data Object. Under the cover, BAM copies the remote content into a BAM Simple Data Object. You can create active queries or tactical queries based on the Logical Data Object. You can now use LEFT OUTER JOIN in Logical Data Object – in the case of BAM Star Schema; this would imply that matching FACT records without corresponding DIMENSION counterparts will be returned as part of the results. You specify JOIN type at the Dimension DO (default is INNER JOIN).
- A logical data object references data in other archived relation data objects. Unlike a derived data object, it is read-only and not a physical data object. However, it can do more than add columns. It can rename or hide columns, or add calculated columns. It can also join two or more simple or derived data objects. Typically, in compliance with process star schema standards, one source data object is a fact table consisting of measures, while the others are dimension tables.
Simple, derived, and external data objects are physical data objects, which can be modified and are mapped to database tables. A logical data object is read-only, is not persisted, references data in other data objects, and is most commonly used to join other data objects.
In post 4 (Populating BAM using JMS) I have created a Simple Data Object ‘Bestuur Activity’). This is the Data Object that I will continue to use in the next posts. This will finally result a BAM dashboard that presents information from this DO.
This Data Object is based on the database view ‘BEAM_VIEW_72’, and then this view is based on database table ‘BEAM_FLEX_72’. As you can see, I forgot to specify an Alias. That´s by mistake. As objects need to be accessible it is a good idea always to specify an alias. The Data Object is made up of a number of attributes and a lot of dimensions. There are no measure defined. A part of the definition is shown below.
In Oracle BAM, you can add hierarchies to data objects to provide drill paths. Users can drill down and up the hierarchy of data, displaying data at different levels of detail. Hierarchies cannot consist of calculated fields. There are two hierarchy types: non-datetime and datetime. For both of them I have specified one.
The first one ‘Organisatie’ (Organisation) contains organisational level. Judicial system, Department, Team and Employee. The second one is a datetime hierarchy. I will used these hierarchies in the final dashboard to drill through the data.
Calculated fields are also part of the Data Objects. There is so much to tell about calculated fields that it justifies a separate blog post. You can expect it next week.