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

Microsoft SQL Server

本主题介绍如何使用 Microsoft SQL Server 目标连接器配置与 Microsoft SQL Server 目标的连接。Microsoft SQL Server 目标既可以用于复制任务,也可以用于 作为数据管道中的目标数据平台。在数据管道中,可以在目标平台上执行各种操作,包括登陆数据、存储数据、转换数据、创建数据集市和注册数据。 在连接到 Microsoft SQL Server 目标之前,您需要在数据库上配置 用户先决条件。如果您通过 数据移动网关 连接到 Microsoft SQL Server,还需要安装驱动程序,如 驱动程序设置 中所述。

有关使用 Microsoft SQL Server Target 连接器时的限制和注意事项的信息,请参见限制和考虑事项

设置连接属性

本节介绍可用的连接属性。除非另有说明,否则所有属性都是必需的。

数据移动网关

Microsoft SQL Server 目标既可以用于数据管道,也可以用于复制任务。虽然访问管道中的 Microsoft SQL Server 目标可能需要数据移动网关(取决于是否可以直接从 Qlik Cloud 访问数据库),但在复制任务中使用 Microsoft SQL Server 对象时,始终需要该网关。

信息注释通过 数据移动网关 访问目标数据库时,还需要在 数据移动网关 计算机上安装相应的驱动程序。有关详细信息,请参见下文的驱动程序设置

在数据管道中使用 Microsoft SQL Server 目标

数据网关只有当目标数据库无法从 Qlik Cloud 访问时(例如,如果它位于防火墙后面的内部部署或虚拟专用云中),才需要 数据移动网关,并且只能使用私有链接访问。如果是这种情况,请选择要通过其访问目标数据库的 数据移动网关

根据您的使用情况,这将是从数据源部署到陆地数据的相同 数据移动网关,或者是与之不同的。有关可能的 数据移动网关 部署可能性的信息,请参阅常见用例

信息注释需要 数据移动网关 2022.11.70 或更高版本。

如果可以从 Qlik Cloud 直接访问目标数据库,请选择

在复制任务中使用 Microsoft SQL Server 目标

数据网关选择将用于测试与 Microsoft SQL Server 目标的连接的 数据移动网关。这应该是用于访问数据源的同一网关。

信息注释

需要 数据移动网关 2023.5.10 或更高版本。

数据目标

  • 云提供商:根据情况选择以下选项之一:

    • 无(针对内部)
    • Amazon RDS
    • Google Cloud
    • Microsoft Azure(同时支持 Microsoft Azure 托管实例和 Microsoft Azure 数据库)
  • 服务器:安装 Microsoft SQL Server 数据库的计算机的主机名或 IP 地址。

    信息注释

      要覆盖默认端口,请将端口添加到服务器名称中,并用逗号分隔。例如,如果服务器名称为 myserver.company.local,端口为 3333,则服务器名称应为:

      myserver.company.local,3333

帐户属性

用户名密码:经授权可访问 Microsoft SQL Server 数据库的用户的用户名和密码。

数据库属性

  • 数据库名称:有两种方法可以用于指定数据库:

    • 方法 1 - 从列表中选择:此方法要求在主数据库上创建用户。单击加载数据库,然后选择一个数据库。
    • 方法 2 - 手动:选择手动输入数据库名称,然后输入数据库名称。
  • 加密(信任服务器证书):选择以加密 Qlik Cloud 和数据库服务器之间的通信。选中后,服务器证书将自动受信任。
    • 证书中的主机名:若要仅在服务器证书的主机名与此字段中指定的值匹配时信任服务器证书,请输入服务器证书的主机名。

内部属性

内部属性用于特殊用例,因此不会在对话框中公开。只有在 Qlik 支持部门的指示下,您才应该使用它们。

使用字段右侧的 新建取消 按钮可以根据需要添加或删除特性。

名称

连接的显示名称。

先决条件

用户先决条件

  • 连接器设置中指定的用户必须至少具有目标 Microsoft SQL Server 数据库上的 db_owner 用户角色。
  • 为了能够选择数据库(通过单击连接器对话框中的加载数据库),需要在主数据库上创建连接器设置中指定的用户。

驱动程序设置

只有通过 数据移动网关 访问数据库时才需要驱动程序。请参阅以上数据移动网关,以获取有关需要数据移动网关时的用例的更多信息。

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

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

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

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

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

    python3 --version

下载并安装 driver

  1. 停止 数据移动网关 服务:

    sudo systemctl stop repagent

  2. 可选择确认服务已停止:

    sudo systemctl status repagent

    状态应如下所示:

    Active: inactive (dead) since <timestamp> ago

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

    opt/qlik/gateway/movement/drivers/bin

  4. 然后运行以下命令:

    语法:

    ./install sqlserver

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

    否则,将显示 driver 的 EULA。

  5. 执行以下选项之一:

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

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

  7. 将会安装 driver

  8. 等待安装完成(以“完成!”指示),然后启动 数据移动网关 服务:

    sudo systemctl start repagent

  9. 可选择确认服务已启动:

    sudo systemctl status repagent

    状态应如下所示:

    Active: active (running) since <timestamp> ago

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

下载并更新 driver

  1. 停止 数据移动网关 服务:

    sudo systemctl stop repagent

  2. 可选择确认服务已停止:

    sudo systemctl status repagent

    状态应如下所示:

    Active: inactive (dead) since <timestamp> ago

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

    opt/qlik/gateway/movement/drivers/bin

  4. 然后运行以下命令:

    语法:

    ./update sqlserver

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

    否则,将显示 driver 的 EULA。

  5. 执行以下选项之一:

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

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

  8. 等待安装完成(以“完成!”指示),然后启动 数据移动网关 服务:

    sudo systemctl start repagent

  9. 可选择确认服务已启动:

    sudo systemctl status repagent

    状态应如下所示:

    Active: active (running) since <timestamp> ago

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

卸载 driver

  1. 停止所有配置为使用此连接器的任务。

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

    opt/qlik/gateway/movement/drivers/bin

  3. 然后运行以下命令:

    语法:

    ./uninstall sqlserver

    将卸载 driver

手动安装驱动程序

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

当使用 Microsoft SQL Server 作为数据管道中的目标时,需要同时安装 ODBC 驱动程序和 JDBC 驱动程序。在复制任务中将 Microsoft SQL Server 用作目标时,只需要安装 ODBC 驱动程序。

在安装 数据移动网关 后,下载 msodbcsql<版本>.x86_64.rpm 驱动程序。您可以在此路径下面找到受支持版本的直接下载链接:binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/sqlserver.yaml。下载完成后,将 RPM 复制到 数据移动网关 机器上。

Data Movement gateway 服务器上,打开 shell 提示符并执行以下操作:

  1. 停止 Data Movement gateway 服务:

    sudo systemctl stop repagent

  2. 可选择确认服务已停止:

    sudo systemctl status repagent

  3. 状态应如下所示:

    Active: inactive (dead) since <timestamp> ago

  4. 安装驱动程序 (RPM)。

  5. 将工作目录更改为 <product_dir>/bin

  6. 如下将驱动程序位置复制到 site_arep_login.sh 文件:

    echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/opt/microsoft/msodbcsql<version>/lib64/" >> site_arep_login.sh

    这将把驱动程序添加到 "LD_LIBRARY_PATH" 并更新驱动程序位置于 site_arep_login.sh 文件。

  7. 可选择确认已将驱动程序位置复制:

    cat site_arep_login.sh
  8. 启动 Data Movement gateway 服务:

    sudo systemctl start repagent

  9. 可选择确认服务已启动:

    sudo systemctl status repagent

    状态应如下所示:

    Active: active (running) since <timestamp> ago

  10. Data Movement gateway 需要以下 ODBC 库:msodbcsql-18.1.so.1.1

    要检查当前安装的库版本,请发出以下命令:

    ls /opt/microsoft/msodbcsql<version>/lib64/

    如果现有库有不同的版本号码(例如 libmsodbcsql-18.0.so.1.1),则需要在现有库和所需库之间创建符号链接。

    为此,请发出以下命令:

    cd /opt/microsoft/msodbcsql<version>/lib64/
    ln -s existing_library_name msodbcsql-18.1.so.1.1

    此处 existing_library_name 是当前安装的库的名称(例如 libmsodbcsql-18.0.so.1.1)。

信息注释在复制任务中将 Microsoft SQL Server 用作目标时,不需要安装 JDBC 驱动程序。
  1. 下载 mssql-jdbc-<version>.jar 文件。您可以在此路径下面找到受支持版本的直接下载链接:binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/sqlserver.yaml。下载完成后,将 JAR 文件复制到 数据移动网关 计算机上的以下文件夹。

    /opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib

  2. 通过运行重新启动服务中所述的命令重新启动 数据移动网关 服务

限制和考虑事项

在数据管道中使用时的限制和注意事项

  • 在数据管道中将数据登陆到 Microsoft SQL Server 时,不支持实时视图。有关实时视图的更多信息,请参阅存储数据集

所有数据任务的限制和注意事项

如果以下大型对象类型在源数据库中为空(0 字节),则它们在满负载后不会为空:

  • BLOB 将作为 0x0000(2 个字节)写入
  • TEXT (VARCHAR(max)) 将作为 0X00(1 个字节)写入
  • NTEXT (NVARCHAR(max)) 将作为 0x0000(2 个字节)写入

信息注释如果这些类型在更改处理过程中为空,则它们将以空(0 字节)的形式正确写入目标。

仅复制任务的限制和注意事项

  • 批量优化应用模式不支持完整大小的 LOB 列。您可以通过在任务设置中限制 LOB 列的大小或切换到事务应用模式来绕过此限制。
  • 如果同时启用批量优化应用和复制受限 LOB 列(KB) 选项,则目标上的 BLOB 和 CLOB 列将被截断为“将 LOB 大小限制为”字段中指定大小的四分之一。
  • 如果需要复制 4 字节表情符号,请使用转换将数据类型从 STRING(n ) 转换为 WSTRING ( n*2 )。

数据类型

本机数据类型信息将被保留,并显示在数据集视图的本机数据类型列中。如果列不可见,则需要打开数据集视图的列选择器,然后选择本机数据类型列。

支持的目标数据类型
Qlik Cloud 数据类型 Microsoft SQL Server 数据类型

BOOLEAN

TINYINT

BYTES

VARBINARY(length)

DATE

DATE

TIME

TIME(0)

DATETIME

DATETIME2(scale)

INT1

SMALLINT

INT2

SMALLINT

INT4

INT

INT8

BIGINT

NUMERIC

NUMERIC(p,s)

REAL4

REAL

REAL8

FLOAT

STRING

如果列是日期或时间,则:

DATETIME2

如果该列是日期或时间:

VARCHAR(length)

UINT1

INT2

UINT2

INT4

UINT4

INT8

UINT8

NUMERIC(20)

WSTRING

NVARCHAR(length)

BLOB

VARBINARY(max)

图片

CLOB

VARCHAR(max)

TEXT

NCLOB

NVARCHAR(max)

NTEXT

不支持以下 SQL Server 数据类型。将不会读取数据。

  • CURSOR

  • SQL_VARIANT

  • TABLE

以下数据类型转换为 VARCHAR (MAX):

  • 数据截断,

  • GEOGRAPHY

  • GEOMETRY

本页面有帮助吗?

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