首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Big SQL V4.X 中联邦的新特性-1

Big SQL V4.X 中联邦的新特性-1

联邦特性首次在 Big SQL V3 中亮相时,我编写了。自那以后,配置得到了简化和改进。本教程将介绍从 V4.0 开始一直到 V4.2.5,在 Big SQL                联邦特性中引入的增量更改。如果跟随这些示例进行操作,在学完本教程后,您应该已经设置了一种基本联邦。
这是一篇独立的教程,您不需要提前阅读任何关于该主题的文章。要比较当前版本与旧版本,请参阅部分,获取我的上一篇文章的链接。
在整篇教程中,提供了一些代码样本。命令行语句的格式为:[<USER>@myserv]$ <COMMAND>。SQL                语句没有前缀,而且显示的输出是使用 jsqsh 获取的。
完成本教程需要做的准备工作
  • 中的 Big SQL 知识,特别是关于 Big                    SQL 数据库特征的知识。要获得关于该产品的更多信息,请查阅。
Big SQL                联邦概述可以将联邦描述为一种数据仓库架构,其中的不同数据源通过一个中央联邦数据库进行连接并交换信息。
启用联邦特性后,Big SQL 可发挥中央联邦数据库的作用。
联邦依靠 3 个基本对象与远程数据库建立连接:一个包装器、一个服务器、一个(或多个)用户映射,以及其他重要概念(包括函数映射和昵称):
  • 包装器—                    包装器是一种使联邦服务器能支持某种特定类型的数据源的对象。这些对象包含特定数据类型支持的版本和默认函数映射信息。
  • 服务器— 服务器是一种表示与特定远程数据源的连接的对象。该对象包含远程数据库的信息                    —例如,远程数据源是否有一个与 Big SQL 的二元排序匹配的排序序列。
  • 用户映射—                    用户映射是一种对象,包含在与远程数据源通信并在其上执行操作时用作代理的用户的信息。用户映射可以是用户级别的,每个本地用户都映射到一个远程用户,或者它们可以是公共的,任何通过                    Big SQL 验证的用户都会映射到一个远程用户。
  • 函数映射—                    函数映射是将本地函数映射到远程函数的对象,这通常是因为函数拥有不同的返回类型、不同的参数,甚至拥有不同的名称。创建一个包装器时,会建立一些默认函数映射,但您也可以为任何函数创建映射。
  • 昵称— 昵称是表示远程表的对象。在联邦中,可以使用 3                    段式名称来访问远程表。昵称不只是与远程表的简单连接。它向本地目录添加一个条目来收集统计数据,优化器可以使用这些数据计算查询的成本。
下图演示了该架构,以及联邦对象与真实对象的关系。
图                    1.联邦架构的表示图增量改进对 Big SQL 联邦的更改是循序渐进的。仅在后来的版本中可以发现一些简化。对于之前使用过联邦的用户,下面列出了各项改进和引入它们的版本。
表                    1.对 Big SQL 中的联邦特性的改进 改进  Big SQL 版本  添加了对数据源 MSSQL 的支持。 V4.0  需要将 Oracle 和 ODBC 库的路径单独添加到 db2dj.ini 中。  V4.1                         不再需要对 Db2 数据源进行编目。一种新的 create server                            语法允许定义主机和端口。 V4.2  IBM 品牌的 ODBC 驱动程序默认安装在                            /usr/ibmpacks/bigsql/<version>/db2/federation/odbc                            下。V4.2  Netezza ODBC 驱动程序默认安装在                            /usr/ibmpacks/bigsql/<version>/db2/federation/netezza                            下。V4.2  样本 db2dj.ini 默认情况下是在实例所有者主目录中的 sqllib/cfg 下创建的。 V4.2                         不需要显式创建包装器。 V4.2 支持与 Oracle 建立 ODBC 连接
- 不需要 Oracle                            client/tnsnames.ora。 V4.2.5 新增服务器类型 oracle_odbc 和 mssql_odbc。 V4.2.5 针对 ODBC 数据源的新 create server 语法意味着不再需要 odbc.ini                            文件。 V4.2.5
环境设置不同数据源有不同的需求,而且更高的 Big SQL 版本简化了所需的设置步骤。您应该注意仅根据将要使用的数据源和安装的 Big SQL                版本,执行必要的更改。以下每节中的“版本更改”项都包含关于哪些 Big SQL 版本需要每种设置的信息。
以下所有示例都假设实例所有者是用户 bigsql,它的主目录是 /home/bigsql。
Db2 环境设置版本更改:V4.1 及以前的版本需要此设置。
依赖项:无
对于 Big SQL V4.1 或更低的版本,create server 语句需要一个 TCP/IP                节点和要编目的远程数据库。
清单                    1.对远程服务器进行编目的 SQL                语句
1
CATALOG TCPIP NODE MYNODE REMOTE 192.168.0.1 SERVER 32051




MYNODE – 本地目录上的远程节点的名称
192.168.0.1 – 远程服务器的 IP 地址
32051 – Db2 服务在此端口上运行
清单                    2.对远程数据库进行编目的 SQL                语句
1
CATALOG DATABASE MYDB AS "RMTDB" AT NODE "MYNODE"




DATASD2 – 远程数据库实例名称
RMTDB – 本地目录上的远程数据库的名称
MYNODE – 编目的远程服务器
Teradata                环境设置版本更改:所有 Big SQL 版本都需要此设置。
依赖项:Teradata 包装器依赖于 cliv2,后者可从官方来源获得。
将 Teradata cliv2 安装到您的系统上后(例如,我假设安装路径为                /opt/teradata/client/<VERSION>/),包装器库需要链接到客户端库。为实现此目的,实例所有者的主目录中的                sqllib/bin 目录下提供了一个可执行的 djxlinkTeradata 命令。
以 root 用户身份,导出环境变量 TERADATA_LIB_DIR 以指向 cliv2 库,然后执行二进制命令:
清单 3.将 Teradata 包装器链接到 Teradata cliv2                客户端
1
2
[root@myserv]$ export TERADATA_LIB_DIR=/opt/teradata/client/15.10/lib
[root@myserv]$ /home/bigsql/sqllib/bin/djxlinkTeradata




Oracle 环境设置版本更改:Big SQL V4.2 及以前的版本需要此设置。
依赖项:对于 Big SQL V4.2 及以前的版本,提供了 Net8 包装器。此包装器依赖于 Oracle 的即时客户端。对于                Big SQL V4.2 以前的版本,必须在实例所有者的主目录中的 sqllib/cfg 目录下创建 db2dj.ini。
安装 Oracle 即时客户端后(对于下面这个示例,我假设它位于                /opt/oracle_instantclient_<VERSION>/),必须将客户端库添加到 Big                SQL 路径。要实现此目的,可将变量 LIBPATH、DB2LIBPATH 和                LD_LIBRARY_PATH 添加到实例所有者主目录中的 sqllib/cfg/ 目录下的 db2dj.ini                文件中。
db2dj.ini 中需要另外两个变量:ORACLE_HOME 和 TNS_ADMIN,前者包含 Oracle 客户端的完整路径的值,后者包含                tnsnames.ora 所在的文件夹的路径。
清单                    4.适用于 Oracle 的                /home/bigsql/sqllib/cfg/db2dj.ini
1
2
3
4
5
LIBPATH=//opt/oracle_instantclient_12_1/lib:
DB2LIBPATH=/opt/oracle_instantclient_12_1/lib:
LD_LIBRARY_PATH=/opt/oracle_instantclient_12_1/lib:
ORACLE_HOME=/opt/oracle_instantclient_12_1
TNS_ADMIN=/home/bigsql/bin/

返回列表