Configure the ODBC Source of Data (Linux)
To make ODBC sources of data to work with Essbase on Linux, you primarily configure odbc.ini
in the Essbase server domain.
- Prerequisites
- Configure the ODBC Source of Data
- Teradata Only - Set Environment Variables
- Teradata Only - Configure odbcinst.ini
Prerequisites
Before you begin, make note of the location of these files on the Essbase server domain:
-
For Linux only,
odbc.ini
- In Essbase 21c,odbc.ini
is located in:<Domain Root>/<Domain Name>/config/fmwconfig/essconfig/core
-
ODBC driver libraries - located in
<Essbase Product Home>/modules/
If you are configuring Teradata as a source, do the following:
-
Download the Teradata Tools and Utilities client from https://downloads.teradata.com/
-
Install the Teradata client onto your Essbase server machine.
Configure the ODBC Source of Data
To configure your ODBC source of data, you start by editing odbc.ini
(or .odbc.ini
, if hidden). This is the ODBC data source configuration information file located on the Essbase server domain.
-
Open
odbc.ini
in a text editor. -
In the section labeled
[ODBC Data Sources]
add/identify your source using the following syntax:
<DSN name>=<Driver name>
where
- DSN name = A name you choose to identify the ODBC connection to the source of data
- Driver name = The name of the ODBC driver to use for this connection
For example, to add a DB2 source, add:
[ODBC Data Sources] TBC_DB2=Oracle 7.1 DB2 Wire Protocol
In this release, Oracle Database uses driver version 8.0, and all other RDBMS use driver versions 7.1.
The following example entries include DB2, SQL Server, MySQL, Oracle Database, and Teradata. For Teradata, see the last two lines (the syntax varies from the other sources).
[ODBC Data Sources] TBC_DB2=Oracle 7.1 DB2 Wire Protocol TBC_SQL=Oracle 7.1 SQL Server Wire Protocol TBC_MYSQL=Oracle 7.1 MySQL Wire Protocol TBC_ORA=Oracle 8.0 Oracle Wire Protocol TBC_ORA_DBAAS=Oracle 8.0 Oracle Wire Protocol TBC_ORA_ADW=Oracle 8.0 Oracle Wire Protocol Teradata=tdataodbc_sb64.so $TELAPI$10.xx.xxx.211=tdataodbc_sb64.so
-
For each DSN name you added in
[ODBC Data Sources]
section, add a section for it specifying the driver path (required), description (optional), and host details (required). The following example includes sections for various sources.[TBC_DB2] #Example for DB2 Driver=/scratch/username/oracle_home/essbase/modules/oracle.essbase.datadirect.odbc/7.1.6/lib/Ardb227.so Description=Oracle 7.1 DB2 Wire Protocol Driver Database=TBC IpAddress=myhost.example.com TcpPort=50000 [TBC_SQL] #Example for SQL Server Driver=/scratch/username/oracle_home/essbase/modules/oracle.essbase.datadirect.odbc/7.1.6/lib/ARsqls27.so Description=Oracle 7.1 SQL Server Wire Protocol HostName=myhost.example.com PortNumber=1433 Database=TBC EnableQuotedIdentifiers=1 [TBC_MYSQL] #Example for MySQL Driver=/scratch/username/oracle_home/essbase/modules/oracle.essbase.datadirect.odbc/7.1.6/lib/ARmysql27.so Description=Oracle 7.1 MySQL Wire Protocol Database=tbc HostName=myhost.example.com PortNumber=3306 [TBC_ORA] #Example for standalone Oracle Database Driver=/scratch/username/oracle_home/essbase/modules/oracle.essbase.datadirect.odbc/8.0.2/lib/ARora28.so Description=Oracle 8.0 Oracle Wire Protocol EnableNcharSupport=1 EncryptionLevel=1 DataIntegrityLevel=1 PortNumber=1521 SID=orcl HostName=myhost.example.com [TBC_ORA_DBAAS] #Example for Oracle DBaaS Driver=/scratch/username/oracle_home/essbase/modules/oracle.essbase.datadirect.odbc/8.0.2/lib/ARora28.so Description=Oracle 8.0 Oracle Wire Protocol DataIntegrityLevel=1 EncryptionLevel=1 EncryptionTypes=AES256 DataIntegrityTypes=SHA1 HostName=192.0.2.20 PortNumber=1521 EnableNcharSupport=1 ServiceName=ORCL.esscs.mydb.myhost.example.com [TBC_ORA_ADW] #Example for Oracle Database with TLS/SSL security Driver=/scratch/username/oracle_home/essbase/modules/oracle.essbase.datadirect.odbc/8.0.2/lib/ARora28.so Description=Oracle 8.0 Oracle Wire Protocol EnableNcharSupport=1 EncryptionLevel=1 DataIntegrityLevel=1 EncryptionMethod=1 AuthenticationMethod=1 CryptoProtocolVersion=TLSv1.2,TLSv1.1,TLSv1 ValidateServerCertificate=1 TNSNamesFile=/scratch/username/oracle_home/network/admin/tbc_ora_adw/tnsnames.ora ServerName=TBC_ORA_ADW Truststore=/scratch/username/oracle_home/network/admin/ tbc_ora_adw/cwallet.sso Keystore=/scratch/username/oracle_home/network/admin/tbc_ora_adw/cwallet.sso [Teradata] Driver=/opt/teradata/client/16.20/lib64/tdataodbc_sb64.so Description=NCR 3600 running Teradata V2R6.2 DBCName=192.xx.xx.110 astUser= Username=xxxxxx Password=xxxxxx Database=TBC DefaultDatabase=TBC NoScan=no MechanismName=TD2 [$TELAPI$192.0.2.110] Driver=/opt/teradata/client/16.20/lib64/tdataodbc_sb64.so Description=NCR 3600 running Teradata V2R6.2 DBCName=192.0.2.110 astUser= Username=xxxxxx Password=xxxxxx Database=TBC DefaultDatabase=TBC NoScan=no MechanismName=TD2
Note:
The TBC_ORA_ADW example is configured for Autonomous Data Warehouse with TLS/SSL security enabled. For any TLS/SSL configurations (including Autonomous Data Warehouse), you must provide the path to the keystore and wallet as part of the configuration. The keystore and wallet (and TNS names configuration file) are located in<Oracle Home>/network/admin
. If you use Autonomous Data Warehouse, you must download the wallet from Autonomous Data Warehouse to<Oracle Home>/network/admin
on the Essbase server.Note:
For Teradata,DBCName
is not the same asDBName
used in connection strings. See DataDirect documentation for more information aboutDBCName
.Note:
For SQL Server, be sure to enable quoted identifiers as shown in the example.
Teradata Only - Set Environment Variables
If you are configuring Teradata as a source, you additionally need to edit the Essbase server configuration file, <Domain Root>/<Domain Name>/config/fmwconfig/essconfig/essbase/essbase.cfg
.
-
Navigate to
essbase.cfg
and open it in a text editor. -
Add LD_LIBRARY_PATH variables to specify the loation of Teradata client libraries:
env:LD_LIBRARY_PATH /opt/teradata/client/16.20/bin env:LD_LIBRARY_PATH /opt/teradata/client/16.20/lib64 env:LD_LIBRARY_PATH /opt/teradata/client/16.20/tbuild env:LD_LIBRARY_PATH /opt/teradata/client/16.20/msg env:LD_LIBRARY_PATH /opt/teradata/client/16.20/tbuild/tptapi
-
Add the following line to the end of
essbase.cfg
, to configure authentication:env:LD_PRELOAD /usr/lib64/libgssapi_krb5.so:/usr/lib64/libkrb5.so:/usr/lib64/libk5crypto.so:/usr/lib64/libkrb5support.so
-
Save
essbase.cfg
. -
Stop and restart the Essbase server.
-
Navigate to the domain tools directory,
<Domain Root>/<Domain Name>/esstools/bin
. -
Stop and restart the Essbase services by running
./stop.sh
and./start.sh
, respectively.
-
Teradata Only - Configure odbcinst.ini
If you are configuring Teradata as a source, you additionally need to edit the odbcinst.ini
file with information about the ODBC driver for Teradata.
-
Navigate to
<Oracle Home>/essbase/modules/oracle.essbase.datadirect.odbc/8.0.2/
and openodbcinst.ini
in a text editor. -
Add information about the Teradata ODBC driver:
Teradata=Installed [Teradata] Driver=/opt/teradata/client/16.20/odbc_64/lib/tdataodbc_sb64.so APILevel=CORE ConnectFunctions=YYY DriverODBCVer=3.51 SQLLevel=1
-
Save
odbcinst.ini
.