Snowflake
您可以使用 Snowflake 作为数据管道或复制任务中的目标数据平台。在数据管道中,可以在目标平台上执行各种 ELT 操作,包括存储数据、转换数据、创建数据集市和注册数据。另一方面,复制任务涉及将数据直接从源系统复制到具有基本转换功能的目标系统,但不支持 ELT 操作。
将 Snowflake 设定为目标涉及以下方面:
设置连接属性
要配置连接器,请执行以下操作:
-
在连接中单击创建连接。
-
选择 Snowflake 目标连接器,然后提供以下设置:
数据移动网关
数据网关
只有当目标数据库无法从 Qlik Cloud 访问时(例如,如果它位于或虚拟专用云中),才需要 数据移动网关,并且只能使用私有链接访问。如果是这种情况,请选择要通过其访问目标数据库的 数据移动网关。
根据您的使用情况,这将和从数据源移动数据时部署的 数据移动网关 相同,或者与之不同。
有关 数据移动网关 用例的信息,请参阅 什么时候需要 数据移动网关? 和 常见用例。
如果可以从 Qlik Cloud 直接访问目标数据库,请选择无。
连接属性
-
服务器:您用于访问 Snowflake 的 URL。例如,myaccount.snowflakecomputing.com。
-
端口:您要用来访问 Snowflake 数据库的端口。默认值为 443。
身份验证
有不同的方法可以验证连接:
-
用户名和密码
-
密钥对
您的 Snowflake 数据库必须配置为使用密钥对验证。Snowflake 文档中描述了这一过程:
信息注释如果使用 数据移动网关,则需要版本 2024.514 或更高版本才能使用密钥对身份验证。
帐户属性
用户名和密码
用户名称和密码:经授权可访问 Snowflake 数据库的用户的用户名和密码。
密钥对
帐户属性 | 描述 |
---|---|
用户 | Snowflake 用户。 |
私钥文件 | 点击浏览选择您的私钥文件。 |
私钥文件密码 | 如果私钥已加密,则为解密私钥的密码。 |
数据库属性
- 默认仓库:Snowflake 仓库的名称。您可以在项目设置中覆盖此设置。
-
数据库名称:有两种方法可以用于指定数据库:
-
方法 1 - 从列表中选择:单击加载数据库,然后选择一个数据库。
信息注释若使用密钥对身份验证,则此方法不可用。 - 方法 2 - 手动:选择手动输入数据库名称,然后输入数据库名称。
-
内部属性
内部属性用于特殊用例,因此不会在对话框中公开。只有在 Qlik 支持部门的指示下,您才应该使用它们。
使用字段右侧的 和 按钮可以根据需要添加或删除特性。
名称
连接的显示名称。
先决条件
所需的权限
需要以下权限:
如果希望自动创建不存在的模式,则需要权限
- USAGE ON DATABASE
- CREATE SCHEMA ON DATABASE
如果模式已经存在时需要的权限
- USAGE ON DATABASE
- USAGE ON SCHEMA
- CREATE FILE FORMAT ON SCHEMA
- CREATE STAGE ON SCHEMA
- CREATE TABLE ON SCHEMA
驱动程序设置
只有通过 数据移动网关 访问数据库时才需要驱动程序。
您可以使用驱动程序安装实用程序(推荐)安装 driver 或手动安装。只有在您遇到驱动程序安装实用程序发生问题的少见情况下,才应尝试手动安装。
使用驱动程序安装实用程序安装驱动程序
本部分介绍如何安装所需的 driver。这个过程包括下载 driver,将其复制到所需的文件夹(见下文),并运行一个脚本来自动安装和配置它。您还可以根据需要运行脚本来更新和卸载 driver。
准备安装
-
请确保在 数据移动 网关服务器上安装了 Python 3.6 或更高版本。
Python 预装在大多数 Linux 发行版上。您可以通过运行以下命令来检查系统上安装了哪个 Python 版本。
python3 --version
-
下载 Snowflake ODBC 驱动程序 "snowflake-odbc-<版本>.x86_64.rpm"。您可以在此路径下面找到受支持版本的直接下载链接:binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/snowflake.yaml。下载完成后,将文件复制到:
/opt/qlik/gateway/movement/drivers/snowflake
安装 driver
安装 driver :
-
停止 数据移动网关 服务:
sudo systemctl stop repagent
-
可选择确认服务已停止:
sudo systemctl status repagent
状态应如下所示:
Active: inactive (dead) since <timestamp> ago
-
在 数据移动 网关计算机上,将工作目录更改为:
opt/qlik/gateway/movement/drivers/bin
-
然后运行以下命令:
语法:
./install snowflake
否则,将显示 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 snowflake
否则,将显示 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 snowflake
将卸载 driver。
手动安装驱动程序
只有在自动驱动程序安装未成功完成的情况下,才应尝试手动安装 driver。
您需要同时安装 ODBC 驱动程序和 JDBC 驱动程序。
安装 ODBC 驱动程序
- 安装 数据移动网关 后,下载 /opt/qlik/gateway/movement/drivers/manifests/snowflake.yaml 中 binary-artifacts 下列出的 snowflake-odbc-<version>x86_64.rpm 驱动程序文件,并将其复制到 数据移动网关 计算机上。
- 在 数据移动网关 计算机上安装驱动程序。
安装 JDBC 驱动程序
-
下载 /opt/qlik/gateway/movement/drivers/manifests/snowflake.yaml 中 binary-artifacts 下列出的 snowflake-jdbc-<version>.jar 文件,并将其复制到 数据移动网关 计算机上的以下文件夹中:
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
重新启动 数据移动网关 服务,并通过运行 数据移动网关 服务命令 中所述的命令检查服务是否已启动
端口
需要为出站通信打开防火墙端口 443。
性能和云服务使用优化
有关使用 Snowflake 云服务时产生的费用的信息,请参阅 Snowflake:额外计费(云服务层)影响
限制和考虑事项
将数据移动到 Snowflake 目标时,以下限制适用:
- 不支持复制名称中带有反斜杠的表(例如 SPECIAL\\TABLE\N)。
数据类型
下表显示了使用 Qlik Cloud 时支持的 Snowflake 数据类型以及自 Qlik Cloud 数据类型的默认映射。
本机数据类型信息将被保留,并显示在数据集视图的本机数据类型列中。如果列不可见,则需要打开数据集视图的列选择器,然后选择本机数据类型列。
Qlik Cloud 数据类型 | Snowflake 数据类型 |
---|---|
BOOLEAN |
BOOLEAN |
BYTES |
BINARY(以字节计算的长度) |
DATE |
DATE |
TIME |
TIME(精确度) |
DATETIME |
TIMESTAMP_NTZ(精确度) |
INT1 |
BYTEINT |
INT2 |
SMALLINT |
INT4 |
INTEGER |
INT8 |
BIGINT |
NUMERIC |
NUMBER(精确度、刻度) |
REAL4 |
FLOAT4 |
REAL8 |
FLOAT8 |
UINT1 |
BYTEINT |
UINT2 |
INTEGER |
UINT4 |
INTEGER |
UINT8 |
BIGINT |
STRING |
VARCHAR(以字节计算的长度) |
WSTRING |
NVARCHAR(以字节计算的长度) |
BLOB |
BINARY (8388608) |
NCLOB |
NVARCHAR (8388608) |
CLOB |
VARCHAR (8388608) |