1. 概述
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.2.5.1 | - |
1.2 应用场景
Snowflake 是海外 top 级的云数仓,许多外企的母公司已经选型了 Snowflake,在国内的分公司构建数仓,或做报表时,期望能够对接 Snowflake 做数据开发。
1.3 功能说明
FineDataLink 支持连接 Snowflake,进行定时任务读写、管道任务写入、实时任务写入、数据服务读取。
本文介绍如何连接 Snowflake 。
2. 使用限制
Snowflake 里 BINARY 和 VARBINARY 字段类型可以存储二进制数据,最大为 8MB,超出 8MB 大小的二进制数据,写入数据时会报错。
3. 配置数据连接
3.1 前提条件
详情请参见:前提条件
3.2 版本和驱动
驱动包下载 | 驱动 |
---|---|
用户可自行下载驱动 | net.snowflake.client.jdbc.SnowflakeDriver |
3.3 收集连接信息
在连接数据库之前,请收集以下信息:
数据库主机、仓库名称。
数据库的用户名和密码。
需要连接的数据库模式。
3.4 具体连接步骤
需注意:
配置数据连接时,驱动需要切换为「自定义」,换为本文 3.2 节的驱动。
1)在管理系统>数据连接>数据连接管理下,新建数据连接,如下图所示:
2)输入相关的数据库连接信息,如下图所示:
配置项 | 说明 |
---|---|
驱动 | 选择 3.2 节在驱动管理上传的驱动 |
数据库名称 | 数据库名 |
主机 | 账户标识符 填写格式:<account_identifier>.snowflakecomputing.com 填写示例:
参考文档:账户标识符 |Snowflake 文档 |
用户名 | 用户名 下图中的user ![]() |
密码 | 密码 |
编码 | 编码 |
模式 | 连接数据库后以读取模式 |
仓库名称 | warehouse是Snowflake的专属设计,是Snowflake中用于执行查询和处理数据的计算资源集合; Warehouse(虚拟仓库)与Database(数据库)之间的关系并不是简单的包含关系; 一个Warehouse可以支持多个Database的查询和处理任务,而一个Database则可以根据需要关联到多个Warehouse以执行不同的查询任务。 |
3)点击测试连接,测试连接成功后即可保存数据连接,如下图所示:
4. 数据源特性说明
4.1 通用限制
Snowflake 有多种表类型(表、视图),支持对所有类型的表进行读取,当前仅支持对普通表进行写入,不支持其它类型表的写入。
类型 | 读取 | 写入 |
---|---|---|
普通表(Standard tables) | 支持 | 支持 |
混合表(Hybrid tables) | 支持 | 不支持 |
动态表(Dynamic table) | 支持 | 不支持 |
事件表(Event table) | 支持 | 不支持 |
外部表(External table) | 支持 | 不支持 |
Apache Iceberg表(Apache Iceberg table) | 支持 | 不支持 |
视图(View) | 支持 | 不支持 |
物化视图(Materialized view) | 支持 | 不支持 |
4.2 数据开发-定时任务
数据来源
不支持存储过程。
数据去向
在写入普通表时,由于普通表的特性,不支持「主键相同,记录为脏数据」。
提供两种装载方式:普通装载、COPY 装载,默认为 COPY 装载,如下图所示:
写入方式为基于标识字段增删改时,COPY 装载暂不支持。
4.3 数据管道和实时任务
数据去向
不支持无主键同步。
装载方式:提供两种:普通装载、COPY 装载,默认为 COPY 装载;管道任务写入时,全量阶段可以支持 COPY 装载,增量阶段仅支持 JDBC 方式。