設定 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 設定為來源,請執行下列作業:

  1. https://downloads.teradata.com/ 下載 Teradata 工具與公用程式用戶端

  2. 將 Teradata 用戶端安裝至您的 Essbase 伺服器機器。

設定資料的 ODBC 來源

若要設定您的 ODBC 資料來源,請從編輯 odbc.ini (如果隱藏,則為 .odbc.ini) 開始。這是位於 Essbase 伺服器網域上的 ODBC 資料來源組態資訊檔案。

  1. 在文字編輯器中開啟 odbc.ini

  2. 在標示的區段中

    [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
  3. 針對您在 [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

    附註:

    對於 Teradata,DBCName連線字串中使用的 DBName 不同。

    附註:

    若為 SQL Server,請務必啟用引號的 ID,如範例所示。

僅限 Teradata - 設定環境變數

如果您要將 Teradata 設定為來源,則另外需要編輯 Essbase 伺服器組態檔 <Domain Root>/<Domain Name>/config/fmwconfig/essconfig/essbase/essbase.cfg

  1. 導覽至 essbase.cfg,然後在文字編輯器中開啟。

  2. 新增 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
  3. 新增下列行至 essbase.cfg 的結尾,以設定認證:

    env:LD_PRELOAD /usr/lib64/libgssapi_krb5.so:/usr/lib64/libkrb5.so:/usr/lib64/libk5crypto.so:/usr/lib64/libkrb5support.so
  4. 儲存 essbase.cfg

  5. 停止並重新啟動 Essbase 伺服器。

    1. 瀏覽至網域工具目錄 <Domain Root>/<Domain Name>/esstools/bin

    2. 分別執行 ./stop.sh./start.sh 來停止並重新啟動 Essbase 服務。

僅限 Teradata - 設定 odbcinst.ini

如果您將 Teradata 設定為來源,則另外還需要編輯包含 Teradata ODBC 驅動程式相關資訊的 odbcinst.ini 檔案。

  1. 瀏覽至 <Oracle Home>/essbase/modules/oracle.essbase.datadirect.odbc/8.0.2/,然後在文字編輯器中開啟 odbcinst.ini

  2. 新增 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
  3. 儲存 odbcinst.ini