OBIEE - BI Server and repository file
When we build data model in OBIEE, We actually use OBIEE administration tools. A client tools that we could define physical layer, logical layer(Business layer) and each field 's label appearance in presentation layer.
The output of these definitions is a file call BI repository file (.rpd) which contain the following data model definition :
- Star schema
- Dimension and hierarchy
- field mapping with actual backend data source
At startup, Oracle BI Server will read this rpd file and all of these definition into memory, When user query the data model, BI Server will find in the definition of the data model 's mapping with the backend data source and generate dynamic sql according to the query and send the sql to different backend data source. BI Server will also assemble query result from different data source and return to the end user (to the presentation service actually that we will discuss later).
There 's a snapshot of the BI administration tools that we use to define our data modle

Here we understand that the analytic Data Model definition is only meta data that does not contain any physical data, The data reside at the backend systems which is defined as data source at physical layer.
Important BI Server files
These are the important files that used by BI Server
- .rpd - BI repository file which contain physical layer, logical layer & presentation layer definitions:
- NQSConfig.ini - BI Server configuration file, specify important parameters that will have more or less impact of BI Server, for example
Star = samplesales.rpd, DEFAULT;
instruct the BI Server to use samplesales.rpd as the data model.
- DBFetures.ini - Generally, There 're many kinds of data sources in the enterpirse, each data source might has different SQL capability, We could use this file to control the SQL dynamically generated to conform with data backend data source , We could also use the file to use advanced or extended feature of backend data source features.
- Cache file - cache file is generated automatically by BI Server if the cache option is set to 'on', It is used to store query result from data source that if a similiar query is submited by user at a later time, BI Server will use the cache result instead of resubmiting query to backend data source. This feature will reduce workload to backend data source and improve query performance greatly!
So in what situation that the cache could be used?
for example, if we do a query of 'sales revenue by each quarter', the data for this query is stored in the cache file, At a later time, a query of ' sales revenue by each month' will not be submited to data source, cause It is a higher level aggregation, there 's no need to query the data source again. BI server could calculate this from the cached data
This means that BI Server has some kind of OLAP knowledge although It is not a OLAP Server that actually store cube data.
