配置 ODBC 数据源 (Linux)

要使 ODBC 数据源与 Linux 上的 Essbase 配合使用,您主要需要在 Essbase 服务器域中配置 odbc.ini

Prerequisites

开始之前,请记下这些文件在 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 Tools and Utilities 客户端

  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 ),您必须在配置过程中提供密钥库和 wallet 的路径。密钥库和 wallet(和 TNS 名称配置文件)位于 <Oracle Home>/network/admin 中。如果使用 Autonomous AI Lakehouse ,则必须将 wallet 从 Autonomous AI Lakehouse 下载到 Essbase 服务器上的 <Oracle Home>/network/admin

    注意:

    对于 Teradata,DBCNameconnection strings 中使用的 DBName 不同。

    注意:

    对于 SQL Server,请确保启用引号标识符,如示例中所示。

仅 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