特殊 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 配置设置,
-
在 Essbase 域上找到 SQL 配置文件:
<DOMAIN HOME>/config/fmwconfig/essconfig/essbase/esssql.cfg -
使用其他名称保存文件的副本。例如,创建名为
esssql_cfg.orig的副本。 -
打开
esssql.cfg进行编辑。可使用多个块(每个驱动程序一个块)配置此文件。块由方括号
[]划线。您可以复制和粘贴块,并根据需要编辑每个驱动程序的设置。 -
根据您的要求进行必要的更改并保存文件。请参见下文的 esssql.cfg Options 。例如,要启用多线程操作,请将 SingleConnection 的值更改为 0。
-
停止并重新启动 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。
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 数据源管理员实用程序中的“驱动程序”选项卡。

| 关键字 | 值 | 值 = 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 默认值不同。
关键字和值必须至少由一个空格分隔,并且每个驱动程序的关键字和值集必须括在括号 ( [ ] ) 中。
不同的驱动程序可能需要其他值。有关特定信息,请参见驱动程序文档。