We have Oracle Business Intelligence Enterprise Edition running on Linux. I was asked to install lineage, but while it is supported to run on Linux, it appears the install is only supported on Windows. Of course we are not licensed to run it on Windows and Oracle would not allow us to install and copy across – you need to be licensed.
However with the help of someone from Oracle I found that you can install it on linux using the following procedure.
Prepare the companion CD
Download the ODI companion CD from oracle edelivery, and unzip the whole thing as an oracle home. Go to misc/biee-lineage and unzip odiobilineage.zip
For version 126.96.36.199 we found we had to apply patch 17008493. Follow the instructions in the readme, but install OPatch in the home, and apply the patch using:
$ opatch apply -jre /path/to/jre
Merge the rpd file
The RPD needs to be merged with the lineage rpd. This is done by converting it to UDML and uploading. Create a temporary directory and copy in odi_repository_archive_11g.rpd from the ODI companion CD under misc/biee-lineage/artifacts/11g. Then run:
ORACLE_HOME=/path/to/middleware_home . $ORACLE_HOME/instances/$inst/bifoundation/OracleBIApplication/coreapplication/setup/bi-init.sh $ORACLE_HOME/Oracle_BI1/bifoundation/server/bin/nqudmlgen \ -P Admin123 \ -R ./odi_repository_archive_11g.rpd -O lineage.udml \ -N -Q
Now copy in the RPD file and merge in the lineage UDML using:
$ORACLE_HOME/Oracle_BI1/bifoundation/server/bin/nqudmlexec\ -P Password \ -I lineage.udml \ -B original.rpd \ -O updated.rpd ---------------lineage.udml--------------- ---------------Complete Success!!---------------
Where Password is the password of the rpd file. Copy the RPD file to windows, and update the connection pool as per Oracles lineage documentation.
Find the ORACLE_ODI_REPOSITORY. Edit the connection pool to match the ODI Work repository.
- Expand the ORACLE_ODI_REPOSITORY database in the OBIEE Physical Layer, double-click the Connection Pool node, and edit the Connection Pool to match your ODI work repository configuration:
- Update the Data source name, Username and Password fields.
- Click OK.
- Right-click the Physical schema and rename it to match the schema of the ODI Work Repository.
- Click OK to save your changes.
- Expand the renamed schema and test this updated connection as follows:
- Right-click one of the tables of this physical schema and updating the row count.
- Right-click the same table again and select View data to view data with the updated row count.
This completes thework with the RPD file. It can now be uploaded back to the server.
Copy the resources
Now we need to copy the resources from the CD to the correct location on the server. Under the CD change to misc/biee-lineage/artifacts/images and copy the two images to $ORACLE_HOME/user_projects/domains/bifoundation_domain/servers/bi_server1/tmp/_WL_user/analytics_11.1.1/7dezjl/war/res
I did it manually. The manual process needs to be run on the server because the client version had missing libraries that are required.
Make sure that X is working (Run xclock to check) and run:
cd $ORACLE_HOME/instances/$instance/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/catalogmanager ./runcat.sh
This brings up the catalogue manager. Select “Open Catalog” from the File menu. Select offline, then browse to the catalogue location which is:
You should see your developers directories under here. Using the online catalogue also works. Click OK.
Extract the web catalog using file->Unarchive and select
Export the web catalog report using Tools->Create Report.
The report type should be analysis. Add the following fields to the report in the following order: “Owner”, “Folder”, “Name” ,”Subject Area” ,”Formula” ,”Table”, “Column”
Save the report
It should be possible to script this step as follows:
OBIEE_WEBCAT=SampleAppLite WIN_EXP_RPD_DIR="D:\tmp" OBIEE_WEBCAT_MGR=$OBIEE_INSTANCE_HOME/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/catalogmanager OBIEE_WEBCAT_BASE=$OBIEE_INSTANCE_HOME/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/catalog $OBIEE_WEBCAT_MGR/runcat.sh -cmd report \ -offline $OBIEE_WEBCAT_BASE/$OBIEE_WEBCAT \ -forceOutputFile $ODL_TMP_DIR/webcat_doc.txt \ -distinct \ -folder /shared \ -type Analysis "Owner" "Folder" "Name" "Subject Area" "Formula" "Table" "Column"bb
Export the RPD report
Open the RPD file in the OBIEE administration tool. Select Tools->Utilities. Select Repository Documentation and click execute. Save the file.
Gather the webcat extract file, and the RPD report into a directory. Create a file to refresh lineage that looks like this:
#Properties for ODI/OBIEE Lineage #Fri Dec 13 09:45:15 EST 2013 ODI_MASTER_USER=ODI_REPO_M ODI_MASTER_PASS=firtr33s ODI_MASTER_DRIVER=oracle.jdbc.OracleDriver ODI_MASTER_URL=jdbc\:oracle\:thin\:@palin\:1532\:BIPROD ODI_SUPERVISOR_USER=SUPERVISOR ODI_SUPERVISOR_PASS=firtr33s ODI_SECU_WORK_REP=WORKREPDEV OBIEE_VERSION=11g OBIEE_WEBCAT_EXPORT_FILE=/path/to/webcat.txt OBIEE_RPD_EXPORT_FILE=/path/to/repo.txt MAPPING_FILE=/path/to/MappingData.csv INSTALL_ODI_LINEAGE=no EXPORT_OBIEE_METADATA=no
Create the mapping data file. The layout for these is on the companion CD at:
The format is:
ORACLE_SID is the oracle_sid of the database (Well the TNS connection)
DB_USERID is the username within the database (Probably DEV_BIPLATFORM)
nnnn is the ODI Model ID. This can be derived by opening the ODI tool and connecting to the master and work repository. Select the designer tab on the left, and open the model. The model id is under version.
Now it should be possible to refresh lineage. The script needs to be run from the bin directory as it has relative paths. Also JAVA_HOME needs to be set.
JAVA_HOME=/usr/java cd $odi_companion/misc/biee-lineage/bin ./refreshlineage.sh -propertyFile=$LINDIR/lineage.properties \ -mappingFile=$LINDIR/MappingData.csv
All being well, lineage will be refreshed and everything will work. Presumably the catalogue extract and rpd file extract will need to be updated periodically as they change.