Amazon Redshift
您可以使用 Amazon Redshift 作为数据管道或复制任务中的目标数据平台。在数据管道中,可以在目标平台上执行各种 ELT 操作,包括存储数据、转换数据、创建数据集市和注册数据。另一方面,复制任务涉及将数据直接从源系统复制到具有基本转换功能的目标系统,但不支持 ELT 操作。
将 Amazon Redshift 设定为目标涉及以下方面:
设置云暂存区
配置到 Amazon Redshift 的连接还需要您设置到 AmazonS3 云暂存区域的连接,在应用和存储数据和更改之前,该区域将暂存数据和更改。
有关设置与 AmazonS3 的连接的信息,请参阅Amazon S3。
配置连接,指向 Amazon Redshift
提供了暂存设置后,请执行以下操作:
-
在连接中单击创建连接。
-
选择 Amazon Redshift 目标连接器,然后提供以下设置:
数据目标
数据网关
只有当目标数据库无法从 Qlik Cloud 访问时(例如,如果它位于防火墙后面的内部部署或虚拟专用云中),才需要 数据移动网关,并且只能使用私有链接访问。如果是这种情况,请选择要通过其访问目标数据库的 数据移动网关。
根据您的使用情况,这将和从数据源移动数据时部署的 数据移动网关 相同,或者与之不同。
有关 数据移动网关 用例的信息,请参阅 什么时候需要 数据移动网关? 和 常见用例。
如果可以从 Qlik Cloud 直接访问目标数据库,请选择无。
连接属性
-
服务器:Amazon Redshift 数据库服务器的主机名。
-
端口:用来访问您的 Amazon Redshift 数据库的端口。默认值为 5439。
帐户属性
用户名称和密码:经授权可访问 Amazon Redshift 数据库的用户的用户名和密码。
数据库属性
-
数据库名称:有两种方法可以用于指定数据库:
- 方法 1 - 从列表中选择:单击加载数据库,然后选择一个数据库。
- 方法 2 - 手动:选择手动输入数据库名称,然后输入数据库名称。
S3 属性
-
IAM 角色 ARN(仅当暂存到 EC2 上的 S3 时才需要):与您在 IAM Roles Anywhere 控制台中创建的角色关联的 ARN。角色是您在账户中创建的具有特定权限的 IAM 身份。为了让 IAM Roles Anywhere 能够代入角色并提供临时 AWS 凭证,该角色必须信任 IAM Roles Anywhere 服务主体。
有关 IAM Roles Anywhere 的更多信息,请访问 Extend AWS IAM roles to workloads outside of AWS with IAM Roles Anywhere
内部属性
内部属性用于特殊用例,因此不会在对话框中公开。只有在 Qlik 支持部门的指示下,您才应该使用它们。
使用字段右侧的 和
按钮可以根据需要添加或删除特性。
名称
连接的显示名称。
先决条件
所需的权限
授予 Redshift 数据库上的以下权限:
- 授予 COPY
- 授予 INSERT
- 授予 UPDATE
- 授予 DELETE
- 授予 SELECT
- 创建模式(仅当模式不存在并且您希望 Qlik Talend Data Integration 创建它们时才需要)
- 授予 CREATE TABLE
- 授予 ALTER TABLE
- 授予 DROP TABLE
驱动程序设置
只有通过 数据移动网关 访问数据库时才需要驱动程序。在这种情况下,您需要在 数据移动网关 计算机上安装驱动程序。
您可以使用驱动程序安装实用程序(推荐)安装 driver 或手动安装。只有在您遇到驱动程序安装实用程序发生问题的少见情况下,才应尝试手动安装。
使用驱动程序安装实用程序安装驱动程序
本部分介绍如何安装所需的 driver。这个过程包括运行一个脚本,该脚本将自动下载、安装和配置所需的 driver。您还可以根据需要运行脚本来更新和卸载 driver。
准备安装
-
请确保在 数据移动 网关服务器上安装了 Python 3.6 或更高版本。
Python 预装在大多数 Linux 发行版上。您可以通过运行以下命令来检查系统上安装了哪个 Python 版本。
python3 --version
安装 driver
下载并安装 driver :
-
停止 数据移动网关 服务:
sudo systemctl stop repagent
-
可选择确认服务已停止:
sudo systemctl status repagent
状态应如下所示:
Active: inactive (dead) since <timestamp> ago
-
在 数据移动 网关计算机上,将工作目录更改为:
opt/qlik/gateway/movement/drivers/bin
-
然后运行以下命令:
语法:
./install redshift
如果无法下载 driver(由于访问限制或技术问题),将显示一条消息,为您指示在 数据移动 网关机器上下载 driver 的位置和复制驱动程序的位置。完成此操作后,请再次运行 install redshift 命令。
否则,将显示 driver 的 EULA。
-
执行以下操作之一:
- 重复按 [Enter] 可在 EULA 中缓慢滚动。
- 重复按空格键可快速滚动 EULA。
- 按 q 退出许可证文本并显示 EULA 接受选项。
-
执行以下操作之一:
- 键入 "y" 并按 [Enter] 接受 EULA 并开始安装。
- 键入 "n" 并按 [Enter] 拒绝 EULA 并退出安装。
-
键入“v”并按 [Enter] 以再次查看 EULA。
-
等待安装完成(以“完成!”指示),然后启动 数据移动网关 服务:
sudo systemctl start repagent
-
可选择确认服务已启动:
sudo systemctl status repagent
状态应如下所示:
Active: active (running) since <timestamp> ago
将会安装 driver。
更新 driver
如果要在安装提供的 driver 之前卸载以前版本的 driver,请运行 update 命令。
下载并更新 driver:
-
停止 数据移动网关 服务:
sudo systemctl stop repagent
-
可选择确认服务已停止:
sudo systemctl status repagent
状态应如下所示:
Active: inactive (dead) since <timestamp> ago
-
在 数据移动 网关计算机上,将工作目录更改为:
opt/qlik/gateway/movement/drivers/bin
-
然后运行以下命令:
语法:
./update redshift
如果无法下载 driver(由于访问限制或技术问题),将显示一条消息,为您指示在 数据移动 网关机器上下载 driver 的位置和复制驱动程序的位置。完成此操作后,请再次运行 update redshift 命令。
否则,将显示 driver 的 EULA。
-
执行以下操作之一:
- 重复按 [Enter] 可在 EULA 中缓慢滚动。
- 重复按空格键可快速滚动 EULA。
- 按 q 退出许可证文本并显示 EULA 接受选项。
-
执行以下操作之一:
- 键入 "y" 并按 [Enter] 接受 EULA 并开始安装。
- 键入 "n" 并按 [Enter] 拒绝 EULA 并退出安装。
- 键入“v”并按 [Enter] 可从头开始查看 EULA。
-
等待安装完成(以“完成!”指示),然后启动 数据移动网关 服务:
sudo systemctl start repagent
-
可选择确认服务已启动:
sudo systemctl status repagent
状态应如下所示:
Active: active (running) since <timestamp> ago
将卸载旧的 driver,并安装新的 driver。
卸载 driver
如果要卸载 driver,请运行 uninstall 命令。
卸载 driver:
-
停止所有配置为使用此连接器的任务。
-
在 数据移动 网关计算机上,将工作目录更改为:
opt/qlik/gateway/movement/drivers/bin
-
然后运行以下命令:
语法:
./uninstall redshift
将卸载 driver。
手动安装驱动程序
只有在自动驱动程序安装未成功完成的情况下,才应尝试手动安装 driver。
-
停止 数据移动网关 服务:
sudo systemctl stop repagent
-
可选择确认服务已停止:
sudo systemctl status repagent
-
下载并安装连接到 Amazon Redshift 集群所需的 LinuxSQL 客户端工具。Qlik 数据网关 - 数据移动 仅需要 Amazon Redshift ODBC Driver (x64) 1.4.34.1000。
下载驱动程序的位置:
安装 ODBC 驱动程序后,按如下方式编辑 /etc/odbcinst.ini 文件:
[ODBC Drivers]Amazon Redshift (x64)=Installed以及:
[Amazon Redshift (x64)]Description=Amazon Redshift ODBC Driver (64-bit)Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so -
启动 数据移动网关 服务:
sudo systemctl start repagent
-
可选择确认服务已启动:
sudo systemctl status repagent
状态应如下所示:
Active: active (running) since <timestamp> ago
状态应如下所示:
Active: inactive (dead) since <timestamp> ago
有关 Amazon Redshift 支持的驱动程序列表,请参阅 http://docs.aws.amazon.com/redshift/latest/mgmt/configure-odbc-connection.html。
端口
Port 5439(Amazon Redshift 集群)需要打开以进行出站通信。
CA 证书
数据移动网关 使用 SSL 连接至 AWS。这需要适当的 CA 证书才能驻留在 数据移动网关 计算机上;否则,连接将失败。CA 证书的目的是验证 AWS 服务器证书的所有权。
确保所需的 CA 证书存在于 Linux 计算机上的以下位置:
/etc/pki/tls/certs/ca-bundle.crt
如果它不存在,最简单的解决方案是从另一台 Linux 机器复制证书包。
一般先决条件和考虑事项
-
如果数据源有 4 个字节的表情符号字符,请使用转换将数据类型从 WSTRING(n ) 转换为 WSTRING ( n*2 )。
-
确保 数据移动网关 计算机上的时间和时区设置准确。这是为了确保:
- 正确同步满负载和 CDC 任务
- 交易日志时间与实际时间的相互关系
-
您无法从由 Qlik Talend Data Integration 在 Amazon Redshift 目标中创建的数据集中,将实时视图和历史记录视图读取到 Qlik Cloud 分析服务 中。
限制和考虑事项
-
Amazon Redshift 连接器仅支持标准身份验证(用户名和密码)。
数据类型
下表显示了使用 Qlik Cloud 时支持的 Amazon Redshift 数据类型以及自 Qlik Cloud 数据类型的默认映射。
本机数据类型信息将被保留,并显示在数据集视图的本机数据类型列中。如果列不可见,则需要打开数据集视图的列选择器,然后选择本机数据类型列。
| Qlik Cloud 数据类型 | Amazon Redshift 数据类型 |
|---|---|
|
BOOLEAN |
BOOLEAN |
|
BYTES |
VARBINARY(length) |
|
DATE |
DATE |
|
TIME |
VARCHAR (20) |
|
DATETIME |
如果刻度 => 0 且 =< 6,那么: TIMESTAMP 如果刻度 => 7 且 =< 12,那么: VARCHAR (37) |
|
INT1 |
INT2 |
|
INT2 |
INT2 |
|
INT4 |
INT4 |
|
INT8 |
INT8 |
|
NUMERIC |
如果刻度 => 0 且 =< 37,那么: NUMERIC(精确度、刻度) 如果刻度 => 38 且 =< 127,那么: VARCHAR(长度) |
|
REAL4 |
FLOAT4 |
|
REAL8 |
FLOAT8 |
|
STRING |
如果长度 => 1 且 =< 65535,则为: VARCHAR(以字节计算的长度) 如果长度 => 65535 且 =< 2147483647,那么: varchar(65535) |
|
UINT1 |
INT2 |
|
UINT2 |
INT4 |
|
UINT4 |
INT8 |
|
UINT8 |
NUMERIC (20,0) |
|
WSTRING |
如果长度 => 1 且 =< 21845,那么: NVARCHAR(以字节计算的长度) 如果长度 => 21846 且 =< 2147483647,那么: NVARCHAR (65535) |
|
BLOB |
变长字节 (16777216) |
|
NCLOB |
varchar(65535) |
|
CLOB |
varchar(65535) |
| JSON | SUPER |
不支持以下 SQL Server 数据类型。将不会读取数据。
-
HLLSKETCH
以下数据类型转换为 VARCHAR (65535):
-
GEOGRAPHY
-
GEOMETRY