特殊 SQL 配置选项

如果要使用 Oracle 与 Essbase 不包含的 ODBC 驱动程序连接到数据库,或者要更改随 Essbase 分发的任何驱动程序的默认设置,请在 Essbase 域上配置 esssql.cfg

用例

需要更改默认设置的一个用例是需要使用任何驱动程序(无论是 JDBC、ODBC、 Essbase 附带的还是 Essbase 不附带的)启用多线程 SQL 数据加载(与并行数据加载不同)。例如,将 SQL 数据加载到聚合存储多维数据集时,最多可以使用八个规则文件并行加载数据。每个规则文件必须包含相同的验证信息(SQL 用户名和密码)。

Essbase 初始化多个临时聚合存储数据加载缓冲区(每个规则文件一个),其中对数据值进行排序和累积。当数据完全加载到数据加载缓冲区中时, Essbase 会将所有缓冲区的内容提交到多维数据集,这比单独提交缓冲区要快。

在以下 MaxL 示例中,从两个规则文件(rule1.rul 和 rule2.rul)加载 SQL 数据:

import database AsoSamp.Basic data 
   connect as TBC identified by 'password' 
   using multiple rules_file 'rule1' , 'rule2' 
   to load_buffer_block starting with buffer_id 100 
   on error write to "error.txt";

更改 SQL 配置

要像上面的用例一样从外部 SQL 源启用多线程数据加载,必须通过修改 esssql.cfg 来更改随 Essbase 分发的驱动程序的默认设置。否则,尝试数据加载的并发用户将遇到错误,例如:ERROR - 1021025 - SQL driver [driverLibrary] for [DriverName] is in use already and does not allow multiple connections. Please try later.

如果要在 Essbase 中使用 Oracle 不包括的 ODBC 驱动程序连接到数据库,还需要向 esssql.cfg 添加条目。

要更改 SQL 配置设置,

  1. Essbase 域上找到 SQL 配置文件:

    <DOMAIN HOME>/config/fmwconfig/essconfig/essbase/esssql.cfg
  2. 使用其他名称保存文件的副本。例如,创建名为 esssql_cfg.orig 的副本。

  3. 打开 esssql.cfg 进行编辑。

    可使用多个块(每个驱动程序一个块)配置此文件。块由方括号 [] 划线。您可以复制和粘贴块,并根据需要编辑每个驱动程序的设置。

  4. 根据您的要求进行必要的更改并保存文件。请参见下文的 esssql.cfg Options 。例如,要启用多线程操作,请将 SingleConnection 的值更改为 0。

  5. 停止并重新启动 Essbase 服务器,如启动、停止和检查服务器中所述。

esssql.cfg 文件样例

以下样例 esssql.cfg 具有 6 个配置块。第一个是默认的,接下来的五个是配置不同源以启用多线程 SQL 数据加载的示例。

[
Description "Oracle BI Server"
DriverName libnqsodbc
UserId 1
Password 1
Database 1
SingleConnection 0
IsQEDriver 0
ConvertUTF16toUTF8 1
]
[
Description "SQL Server"
DriverName SQLSRV
UserId 1
Password 1
Database 1
SingleConnection 0
IsQEDriver 0
]
[
Description "Oracle SQL Server Wire Protocol"
DriverName ARSQLS
UserId 1
Password 1
Database 1
SingleConnection 0
IsQEDriver 1
]
[
Description "Oracle DB2 Wire Protocol"
DriverName ARDB2
UserId 1
Password 1
Database 1
SingleConnection 0
IsQEDriver 1
]
[
Description "Oracle MySQL Wire Protocol"
DriverName ARMYSQL
UserId 1
Password 1
Database 1
SingleConnection 0
IsQEDriver 1
]
[
Description "Teradata"
DriverName TDATAODBC_SB64
UserId 1
Password 1
Database 1
SingleConnection 0
IsQEDriver 0
]

对于 Teradata DriverName,可以使用 TDATA 或 TDATAODBC_SB64。

esssql.cfg 选项

esssql.cfg 配置文件必须至少包含驱动程序文件名 (DriverName)。(可选)可以包括说明(说明)。配置文件可能包含其他关键字,其值为 0 或 1。

要查找 Linux 上的 DriverName,请查看位于以下位置的 odbcinst.ini
<Essbase Product Home>/modules/<driver class>/<driver version>
驱动程序名称位于为驱动程序指定的路径的末尾。

例如,从 odbcinst.ini 中的以下条目中,我们知道驱动程序名称为 ARora(无需包括版本信息 28):

Driver=/scratch/username/oracle_home/essbase/modules/oracle.essbase.datadirect.odbc/8.0.2/lib/ARora28.so

要在 Windows 上查找 DriverName,请查看 Windows 64 位 ODBC 数据源管理员实用程序中的“驱动程序”选项卡。


选择了 "Drivers"(驱动程序)选项卡的 ODBC 数据源管理员工具。此时将突出显示 Oracle 8.0 Oracle Wire Protocol。其驱动程序文件名是 ARORA28.DLL。

关键字 值 = 0 值 = 1
说明 (可选)驱动程序的说明,用双引号括起来。默认值为 "" 不适用 不适用
DriverName (必需)驱动程序文件名;例如 ARORA 不适用 不适用
UserId 0 或 1 用户 ID 不是必需的(默认值) 需要用户 ID
密码 0 或 1 不需要密码(默认值) 需要输入密码
Database 0 或 1 数据库名称不是必需的(默认值) 需要提供数据库名称
Server 0 或 1 服务器名称不是必需的(默认值) 需要提供服务器名称
Application 0 或 1 应用程序名称不是必需的(默认值) 需要应用程序名
字典 0 或 1 字典名称不是必需的(默认) 需要字典名称
文件 0 或 1 文件名不是必需的(默认值) 需要文件名
单连接 0 或 1 驱动程序线程安全 -- 允许多个活动连接 驱动程序不是线程安全的 -- 允许一个活动连接
IsQEDriver 0 或 1 驱动程序未附带 Essbase (默认) 驱动程序随 Essbase 一起提供
ConvertUTF16toUTF8 0 或 1 不将 UTF16 数据转换为 UTF8(这是默认值)。 将 UTF16 编码的数据从 Oracle BI 数据源转换为 UTF8。对于从 OBI 加载到 Essbase 的 SQL 数据,需要在 UNIX 上执行此操作。

默认值适用于未指定的值。在配置文件中应用的默认值与不存在 esssql.cfg 文件时应用的 Essbase 默认值不同。

关键字和值必须至少由一个空格分隔,并且每个驱动程序的关键字和值集必须括在括号 ( [ ] ) 中。

不同的驱动程序可能需要其他值。有关特定信息,请参见驱动程序文档。