跳到主要内容 跳到补充内容

Amazon Redshift

您可以使用 Amazon Redshift 作为数据平台来登陆 Qlik Cloud 数据集成 和在其中存储数据集。

有关连接到 Amazon Redshift 的信息,请参阅创建 Amazon Redshift 连接 (仅提供英文版本)

配置到 Amazon Redshift 的连接还需要您设置到 AmazonS3 云暂存区域的连接,在应用和存储数据和更改之前,该区域将暂存数据和更改。有关更多信息,请参阅 Amazon S3 (仅提供英文版本)

考虑事项和限制

  • Amazon Redshift 连接器不允许使用“禁用”SSL 模式。

  • Amazon Redshift 连接器仅支持标准身份验证(用户名和密码)。

Qlik 数据网关 - 数据移动 先决条件

您需要在数据移动网关计算机上满足以下先决条件。

驱动程序设置

您可以使用驱动程序安装实用程序(推荐)安装 driver 或手动安装。只有在您遇到驱动程序安装实用程序发生问题的少见情况下,才应尝试手动安装。

使用驱动程序安装实用程序安装驱动程序

本部分介绍如何安装所需的 driver。这个过程包括运行一个脚本,该脚本将自动下载、安装和配置所需的 driver。您还可以根据需要运行脚本来更新和卸载 driver

  • 请确保在 数据移动 网关服务器上安装了 Python 3.6 或更高版本。

    Python 预装在大多数 Linux 发行版上。您可以通过运行以下命令来检查系统上安装了哪个 Python 版本。

    python --version

下载并安装 driver

  1. 数据移动 网关计算机上,将工作目录更改为:

    opt/qlik/gateway/movement/drivers/bin

  2. 然后运行以下命令:

    语法:

    ./install redshift

    如果无法下载 driver(由于访问限制或技术问题),将显示一条消息,为您指示在 数据移动 网关机器上下载 driver 的位置和复制驱动程序的位置。完成此操作后,请再次运行 install redshift 命令。

    否则,将显示 driver 的 EULA。

  3. 执行以下选项之一:

    • 重复按 [Enter] 可在 EULA 中缓慢滚动。
    • 重复按空格键可快速滚动 EULA。
    • 按 q 退出许可证文本并显示 EULA 接受选项。
  4. 执行以下操作之一:

    • 键入 "y" 并按 [Enter] 接受 EULA 并开始安装。
    • 键入 "n" 并按 [Enter] 拒绝 EULA 并退出安装。
    • 键入“v”并按 [Enter] 以再次查看 EULA。

  5. 将会安装 driver

如果要在安装提供的 driver 之前卸载以前版本的 driver,请运行 update 命令。

下载并更新 driver

  1. 数据移动 网关计算机上,将工作目录更改为:

    opt/qlik/gateway/movement/drivers/bin

  2. 然后运行以下命令:

    语法:

    ./update redshift

    如果无法下载 driver(由于访问限制或技术问题),将显示一条消息,为您指示在 数据移动 网关机器上下载 driver 的位置和复制驱动程序的位置。完成此操作后,请再次运行 install redshift 命令。

    否则,将显示 driver 的 EULA。

  3. 执行以下选项之一:

    • 重复按 [Enter] 可在 EULA 中缓慢滚动。
    • 重复按空格键可快速滚动 EULA。
    • 按 q 退出许可证文本并显示 EULA 接受选项。
  4. 执行以下操作之一:

    • 键入 "y" 并按 [Enter] 接受 EULA 并开始安装。
    • 键入 "n" 并按 [Enter] 拒绝 EULA 并退出安装。
    • 键入“v”并按 [Enter] 可从头开始查看 EULA。
  5. 将卸载旧的 driver,并安装新的 driver

如果要卸载 driver,请运行 uninstall 命令。

卸载 driver

  1. 如果 数据移动 网关用于登陆数据,请停止所有登陆陆任务。如果使用不同的 数据移动 网关对目标执行 ELT 过程,请停止所有相关任务(数据注册、存储、转换和数据集市)。如果单个 数据移动 网关用于登陆数据并在目标上执行 ELT 任务,则停止所有上述任务。

  2. 数据移动 网关计算机上,将工作目录更改为:

    opt/qlik/gateway/movement/drivers/bin

  3. 然后运行以下命令:

    语法:

    ./uninstall redshift

    将卸载 driver

手动安装驱动程序

只有在自动驱动程序安装未成功完成的情况下,才应尝试手动安装 driver

  1. 停止 Data Movement gateway 服务:

    sudo service repagent stop
  2. 可选择确认服务已停止:

    sudo service repagent status

    输出应如下:

    not running: /opt/qlik/gateway/movement/bin/agentctl -d /opt/qlik/gateway/movement/data service host

  3. 下载并安装连接到 Amazon Redshift 集群所需的 LinuxSQL 客户端工具。Qlik 数据网关 - 数据移动 仅需要 Amazon Redshift ODBC Driver (x64) 1.4.34.1000。

    下载驱动程序的位置:

    https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-64-bit-1.4.65.1000-1.x86_64.rpm

    安装 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

  4. 启动 Data Movement gateway 服务:

    sudo service repagent start
  5. 可选择确认服务已启动:

    sudo service repagent status

    输出应如下:

    running: /opt/qlik/gateway/movement/bin/agentctl -d /opt/qlik/gateway/movement/data service host

有关 Amazon Redshift 支持的驱动程序列表,请参阅 http://docs.aws.amazon.com/redshift/latest/mgmt/configure-odbc-connection.html

端口:

Port 5439(Amazon Redshift 集群)需要打开以进行出站通信。

CA 证书

Data Movement gateway 使用 SSL 连接至 AWS。这需要适当的 CA 证书才能驻留在 Data Movement gateway 计算机上;否则,连接将失败。CA 证书的目的是验证 AWS 服务器证书的所有权。

确保所需的 CA 证书存在于 Linux 计算机上的以下位置:

/etc/pki/tls/certs/ca-bundle.crt

如果它不存在,最简单的解决方案是从另一台 Linux 机器复制证书包。

所需的权限

将数据登陆到 Amazon S3 所需的权限

  • 您必须有一个可从 Data Movement gateway 计算机访问的 Amazon S3 存储段。

    有关注册 Amazon S3 的信息,请参阅 http://aws.amazon.com/s3/

  • 存储段访问凭据:记下存储段名称、区域、访问密钥和秘密访问密钥-您需要在 Amazon S3 connector 设置中提供它们。
  • 存储段访问权限:需要以下存储段访问权限:

     
    { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1497347821000", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::YOUR_BUCKET_NAME" ] }, { "Sid": "Stmt1497344984000", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::YOUR_BUCKET_NAME/target_path", "arn:aws:s3:::YOUR_BUCKET_NAME/target_path/*" ] } ] } 

此处 YOUR_BUCKET_NAME 是存储段的名称,而 target_path 是目标文件在存储段中的预期位置。

信息注释

如果目标路径是存储段根,只需用空字串指定 “/target_path”

Redshift 数据库上所需的权限

授予 Redshift 数据库上的以下权限:

  • 授予 COPY
  • 授予 INSERT
  • 授予 UPDATE
  • 授予 DELETE
  • 授予 SELECT
  • 创建模式(仅当模式不存在并且您希望 Replicate 创建它们时才需要)
  • 授予 CREATE TABLE
  • 授予 ALTER TABLE
  • 授予 DROP TABLE

一般先决条件和考虑事项

  • 如果数据源有 4 个字节的表情符号字符,请使用转换将数据类型从 WSTRING(n ) 转换为 WSTRING ( n*2 )。

  • 确保 Data Movement gateway 计算机上的时间和时区设置准确。这是为了确保:

    • 正确同步满负载和 CDC 任务
    • 交易日志时间与实际时间的相互关系

数据类型

下表显示了使用 Qlik Cloud 时支持的 Amazon Redshift 数据类型以及自 Qlik Cloud 数据类型的默认映射。

信息注释Qlik Cloud中,字符串长度以字符为单位,而在 Redshift 中,varchar 长度以字节为单位。每个字符的字节数可能因实际字符和编码而异。Qlik Cloud 假设长度为每个字符 3 个字节。这意味着,当您定义 wstring(10) 时,在实践中将表创建为 varchar(30)。
支持的数据类型
Qlik Cloud 数据类型 Amazon Redshift 数据类型

BOOLEAN

VARCHAR (1)

BYTES

如果长度 => 1 且 =< 32767,那么:

VARCHAR(以字节计算的长度)

如果长度 => 32768 且 =< 2147483647,那么:

varchar(65535)

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

UINT1

INT2

UINT2

INT4

UINT4

INT8

UINT8

NUMERIC (20,0)

WSTRING

如果长度 => 1 且 =< 21845,那么:

NVARCHAR(以字节计算的长度)

如果长度 => 21846 且 =< 2147483647,那么:

NVARCHAR (65535)

BLOB

VARCHAR(最大 LOB 大小 * 2)

NCLOB

VARCHAR(最大 LOB 大小)

CLOB

VARCHAR(最大 LOB 大小)

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!