設定 ODBC 資料來源 (Linux)
若要讓 ODBC 資料來源與 Linux 上的 Essbase 搭配使用,您主要是在 Essbase 伺服器網域中設定 odbc.ini。
必備條件
開始之前,請記下這些檔案在 Essbase 伺服器網域上的位置:
-
僅適用於 Linux,
odbc.ini- 在 Essbase 21c 中,odbc.ini位於:<Domain Root>/<Domain Name>/config/fmwconfig/essconfig/core -
ODBC 驅動程式程式庫 - 位於
<Essbase Product Home>/modules/
如果您將 Teradata 設定為來源,請執行下列作業:
-
從 https://downloads.teradata.com/ 下載 Teradata 工具與公用程式用戶端
-
將 Teradata 用戶端安裝至您的 Essbase 伺服器機器。
設定資料的 ODBC 來源
若要設定您的 ODBC 資料來源,請從編輯 odbc.ini (如果隱藏,則為 .odbc.ini) 開始。這是位於 Essbase 伺服器網域上的 ODBC 資料來源組態資訊檔案。
-
在文字編輯器中開啟
odbc.ini。 -
在標示的區段中
[ODBC Data Sources]使用下列語法新增 / 識別您的來源:
<DSN name>=<Driver name>其中
- DSN 名稱 = 您選擇用來識別與資料來源之 ODBC 連線的名稱
- 驅動程式名稱 = 用於此連線的 ODBC 驅動程式名稱
例如,若要新增 DB2 來源,請新增:
[ODBC Data Sources] TBC_DB2=Oracle 8.0 DB2 Wire Protocol在本發行版本中,Oracle Database 和所有其他 RDBMS 版本包括驅動程式版本 8.0。
下列範例項目包括 DB2、SQL Server、MySQL、Oracle Database 和 Teradata。對於 Teradata,請參閱最後兩行 (語法會因其他來源而異)。
[ODBC Data Sources] TBC_DB2=Oracle 8.0 DB2 Wire Protocol TBC_SQL=Oracle 8.0 SQL Server Wire Protocol TBC_MYSQL=Oracle 8.0 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 -
針對您在
[ODBC Data Sources]區段中新增的每個 DSN 名稱,新增一個區段以指定驅動程式路徑 (必要)、描述 (選擇性) 以及主機詳細資訊 (必要)。下列範例包含各種來源的區段。[TBC_DB2] #Example for DB2 Driver=Ardb228.so Description=Oracle 8.0 DB2 Wire Protocol Driver Database=TBC IpAddress=myhost.example.com TcpPort=50000 [TBC_SQL] #Example for SQL Server Driver=ARsqls28.so Description=Oracle 8.0 SQL Server Wire Protocol HostName=myhost.example.com PortNumber=1433 Database=TBC EnableQuotedIdentifiers=1 [TBC_MYSQL] #Example for MySQL Driver=ARmysql28.so Description=Oracle 8.0 MySQL Wire Protocol Database=tbc HostName=myhost.example.com PortNumber=3306 [TBC_ORA] #Example for standalone Oracle Database Driver=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=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=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附註:
TBC_ORA_ADW 範例是針對已啟用 TLS/SSL 安全性的 Autonomous AI Lakehouse 所設定。對於任何 TLS/SSL 組態 (包括 Autonomous AI Lakehouse),您必須在組態中提供金鑰存放區和公事包的路徑。金鑰存放區和公事包 (以及 TNS 名稱組態檔) 位於<Oracle Home>/network/admin。如果您使用 Autonomous AI Lakehouse ,則必須在 Essbase 伺服器上將公事包從 Autonomous AI Lakehouse 下載至<Oracle Home>/network/admin。附註:
若為 SQL Server,請務必啟用引號的 ID,如範例所示。
僅限 Teradata - 設定環境變數
如果您要將 Teradata 設定為來源,則另外需要編輯 Essbase 伺服器組態檔 <Domain Root>/<Domain Name>/config/fmwconfig/essconfig/essbase/essbase.cfg。
-
導覽至
essbase.cfg,然後在文字編輯器中開啟。 -
新增 LD_LIBRARY_PATH 變數以指定 Teradata 從屬端程式庫的迴圈:
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 -
新增下列行至
essbase.cfg的結尾,以設定認證:env:LD_PRELOAD /usr/lib64/libgssapi_krb5.so:/usr/lib64/libkrb5.so:/usr/lib64/libk5crypto.so:/usr/lib64/libkrb5support.so -
儲存
essbase.cfg。 -
停止並重新啟動 Essbase 伺服器。
-
瀏覽至網域工具目錄
<Domain Root>/<Domain Name>/esstools/bin。 -
分別執行
./stop.sh和./start.sh來停止並重新啟動 Essbase 服務。
-
僅限 Teradata - 設定 odbcinst.ini
如果您將 Teradata 設定為來源,則另外還需要編輯包含 Teradata ODBC 驅動程式相關資訊的 odbcinst.ini 檔案。
-
瀏覽至
<Oracle Home>/essbase/modules/oracle.essbase.datadirect.odbc/8.0.2/,然後在文字編輯器中開啟odbcinst.ini。 -
新增 Teradata ODBC 驅動程式的相關資訊:
Teradata=Installed [Teradata] Driver=/opt/teradata/client/16.20/odbc_64/lib/tdataodbc_sb64.so APILevel=CORE ConnectFunctions=YYY DriverODBCVer=3.51 SQLLevel=1 -
儲存
odbcinst.ini。