Oracle
本节介绍如何使用 Oracle 目标连接器配置与 Oracle 目标的连接。Oracle 只能在复制任务中用作目标。在连接到 Oracle 目标之前,您需要在数据库上配置 所需的权限。如果您通过 数据移动网关 连接到 Oracle,还需要安装驱动程序设置中所述的驱动程序。
有关使用 Oracle 连接器时的限制和注意事项的信息,请参阅限制和考虑事项。
设置连接属性
要配置连接器,请执行以下操作:
-
在连接中单击创建连接。
-
选择 Oracle 目标连接器,然后提供以下设置:
数据目标
-
数据网关:当使用 数据移动网关时,选择将用于测试与 Oracle 目标的连接的数据网关。这应该是用于访问数据源的同一网关。
信息注释- 此字段不适用于 Qlik Talend Cloud Starter 订阅,因为此订阅层不支持 数据移动网关。
-
您还需要在 数据移动网关 计算机上安装相应的驱动程序。有关详细信息,请参阅下文的驱动程序设置。
-
连接字符串:要使用的 Oracle 数据库的 Oracle 连接字符串。
信息注释- 在复制到 Oracle Autonomous Data Warehouse 时,首先需要执行连接到 Oracle 自主数据仓库 中所述的过程。
- 此信息区分大小写。
帐户属性
用户名称和密码:经授权可访问 Oracle Server 数据库的用户的用户名和密码。
内部属性
内部属性用于特殊用例,因此不会在对话框中公开。只有在 Qlik 支持部门的指示下,您才应该使用它们。
使用字段右侧的 和 按钮可以根据需要添加或删除特性。
名称
连接的显示名称。
先决条件
所需的权限
必须向连接字符串中指定的用户授予在 Oracle 数据库中授予的以下权限:
-
CREATE ANY TABLE
-
CREATE ANY INDEXES
-
ALTER ANY TABLE;
- DROP ANY TABLE
-
INSERT ANY TABLE
-
UPDATE ANY TABLE
-
DELETE ANY TABLE
-
SELECT ANY TABLE;
-
SELECT all_indexes
-
SELECT all_ind_columns
-
SELECT all_constraints
-
SELECT all_cons_columns
-
LOCK ANY TABLE
驱动程序设置
您可以使用驱动程序安装实用程序(推荐)安装 driver 或手动安装。只有在您遇到驱动程序安装实用程序发生问题的少见情况下,才应尝试手动安装。
使用驱动程序安装实用程序安装驱动程序
本部分介绍如何安装所需的 driver。这个过程包括运行一个脚本,该脚本将自动下载、安装和配置所需的 driver。您还可以根据需要运行脚本来更新和卸载 driver。
准备安装
-
请确保在 数据移动 网关服务器上安装了 Python 3.6 或更高版本。
Python 预装在大多数 Linux 发行版上。您可以通过运行以下命令来检查系统上安装了哪个 Python 版本。
python3 --version
安装 driver
下载并安装 driver :
-
在 数据移动 网关计算机上,将工作目录更改为:
opt/qlik/gateway/movement/drivers/bin
-
然后运行以下命令:
语法:
./install oracle
如果无法下载 driver(由于访问限制或技术问题),将显示一条消息,为您指示在 数据移动 网关机器上下载 driver 的位置和复制驱动程序的位置。完成此操作后,请再次运行 install oracle 命令。
否则,将显示 driver 的 EULA。
-
执行以下操作之一:
- 重复按 [Enter] 可在 EULA 中缓慢滚动。
- 重复按空格键可快速滚动 EULA。
- 按 q 退出许可证文本并显示 EULA 接受选项。
-
执行以下操作之一:
- 键入 "y" 并按 [Enter] 接受 EULA 并开始安装。
- 键入 "n" 并按 [Enter] 拒绝 EULA 并退出安装。
-
键入“v”并按 [Enter] 以再次查看 EULA。
将会安装 driver。
更新 driver
如果要在安装提供的 driver 之前卸载以前版本的 driver,请运行 update 命令。
下载并更新 driver:
-
在 数据移动 网关计算机上,将工作目录更改为:
opt/qlik/gateway/movement/drivers/bin
-
然后运行以下命令:
语法:
./update oracle
如果无法下载 driver(由于访问限制或技术问题),将显示一条消息,为您指示在 数据移动 网关机器上下载 driver 的位置和复制驱动程序的位置。完成此操作后,请再次运行 update oracle 命令。
否则,将显示 driver 的 EULA。
-
执行以下操作之一:
- 重复按 [Enter] 可在 EULA 中缓慢滚动。
- 重复按空格键可快速滚动 EULA。
- 按 q 退出许可证文本并显示 EULA 接受选项。
-
执行以下操作之一:
- 键入 "y" 并按 [Enter] 接受 EULA 并开始安装。
- 键入 "n" 并按 [Enter] 拒绝 EULA 并退出安装。
- 键入“v”并按 [Enter] 可从头开始查看 EULA。
将卸载旧的 driver,并安装新的 driver。
卸载 driver
如果要卸载 driver,请运行 uninstall 命令。
卸载 driver:
-
停止所有配置为使用此连接器的任务。
-
在 数据移动 网关计算机上,将工作目录更改为:
opt/qlik/gateway/movement/drivers/bin
-
然后运行以下命令:
语法:
./uninstall oracle
将卸载 driver。
手动安装驱动程序
只有在自动驱动程序安装未成功完成的情况下,才应尝试手动安装 driver。
安装 数据移动网关 后,下载 oracle-instantclient-basiclite-<版本>.x86_64.rpm 驱动程序。您可以在此路径下面找到受支持版本的直接下载链接:binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/oracle.yaml。下载完成后,将 RPM 复制到 数据移动网关 机器上。
然后,在 数据移动网关 服务器上,打开 shell 提示符并执行以下操作:
-
停止 数据移动网关 服务:
sudo systemctl stop repagent
-
可选择确认服务已停止:
sudo systemctl status repagent
- 安装驱动程序 (RPM)。
-
此外,如果尚未包含在系统中,请在 $Oracle_Home\lib 目录中创建符号链接。命名链接 libclntsh.so,并将其指向此文件的特定版本。
示例:
lrwxrwxrwx 1 oracle oracle 63 Oct 2 14:16 libclntsh.so -> /u01/app/oracle/home/lib/libclntsh.so.21.1
-
将工作目录更改为 <数据移动网关-Install-Dir>/bin,并通过将驱动程序位置复制到e site_arep_login.sh 文件中,将 LD_LIBRARY_PATH 环境变量附加到 Oracle 即时客户端目录和 数据移动网关lib 目录:
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/opt/oracle/instantclient_<version>:/opt/qlik/gateway/movement/lib/" >> site_arep_login.sh
-
可选择确认已将驱动程序位置复制:
cat site_arep_login.sh
-
启动 数据移动网关 服务:
sudo systemctl start repagent
-
可选择确认服务已启动:
sudo systemctl status repagent
状态应如下所示:
Active: active (running) since <timestamp> ago
状态应如下所示:
Active: inactive (dead) since <timestamp> ago
连接到 Oracle 自主数据仓库
当复制到 Oracle Autonomous Data Warehouse 时,应执行以下过程。
要设置到 Oracle Autonomous Data Warehouse (ADW) 的连接,您需要在设置 Oracle Autonomous Data Warehouse 环境时下载的 Client Credentials (Wallet) ZIP 文件。
要使得 Qlik Talend Data Integration 连接到 Oracle Autonomous Data Warehouse,请执行以下操作:
-
将 Client Credentials ZIP 文件的内容解压到您选择的文件夹中。
这可以是任何文件夹,但就本过程而言,/home/adw_credentials 将是包含解压文件的 Linux 文件夹。
-
在包含解压文件的文件夹中,编辑 sqlnet.ora 文件,将 ?/network/admin 替换为包含解压文件的文件夹的路径:
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/home/adw_credentials")))
SSL_SERVER_DN_MATCH=yes
-
创建 TNS_ADMIN 环境变量,并将其设置为凭据文件的位置。
然后运行以下命令:
export TNS_ADMIN=/home/adw_credentials
export PATH=$TNS_ADMIN:$PATH
-
在 Oracle Target 连接器的连接字符串字段中,输入 tnsnames.ora 文件中的一个名称。
有关设置与 Oracle ADW 的连接的更多信息,请参阅:
限制和考虑事项
当使用 Oracle 作为复制目标时,以下限制适用:
- 无法在 Oracle 数据库中创建新的模式。若要复制到新模式,新模式名称必须已存在于目标数据库中。然后,您应该在任务设置的 Metadata 选项卡中指定新的模式名称。
-
在批处理优化应用模式下工作时,空的 LOB 列可能会作为 NULL 值复制。
- 满负载完成后,如果启用了将 LOB 大小限制为选项,并且表中包含 NCLOB 数据,则目标上的 NCLOB 大小将被截断为将 LOB 大小限制为字段中指定大小的一半。CDC 仍将根据限制截断它。
数据类型
本机数据类型信息将被保留,并显示在数据集视图的本机数据类型列中。如果列不可见,则需要打开数据集视图的列选择器,然后选择本机数据类型列。
Qlik Cloud 数据类型 | Oracle 数据类型 |
---|---|
BOOLEAN |
NUMBER (1) |
BYTES |
RAW (length) |
DATE |
DATETIME |
TIME |
TIMESTAMP (0) |
DATETIME |
如果比例 <= 9,则为 TIMESTAMP (scale) 否则为 VARCHAR2 (37) |
INT1 |
NUMBER (3) |
INT2 |
NUMBER (5) |
INT4 |
NUMBER (10) |
INT8 |
NUMBER (19) |
NUMERIC |
数字 (p,s) |
REAL4 |
BINARY_FLOAT |
REAL8 |
BINARY_DOUBLE |
STRING |
具有日期指示:DATE 具有时间指示:TIMESTAMP 具有时间戳指示:TIMESTAMP 具有 timestamp_with_timezone 指示:TIMESTAMP WITH TIMEZONE 具有 timestamp_with_local_timezone 指示:TIMESTAMP WITH LOCAL TIMEZONE 具有 interval_year_to_month 指示:INTERVAL YEAR TO MONTH 具有 interval_day_to_second 指示:INTERVAL DAY TO SECOND 如果长度 > 4000:CLOB 在所有其他情况下:VARCHAR2(长度) |
UINT1 |
NUMBER (3) |
UINT2 |
NUMBER (5) |
UINT4 |
NUMBER (10) |
UINT8 |
NUMBER (19) |
WSTRING |
NVARCHAR2 (length) 请注意,当长度大于 2000 时,列数据类型将为 NCLOB。 |
BLOB |
BLOB 信息注释
|
CLOB |
CLOB 信息注释
|
NCLOB |
NCLOB 信息注释
|
XMLTYPE 目标数据类型仅与 Oracle 到 Oracle 复制任务相关。请参阅以下注释。 |
XMLTYPE |