跳到主要内容
版本:4.x

Snowflake

适用版本 Cloud 功能TapData Cloud 为您提供了云端服务,适合需要快速部署、低前期投资场景,帮助您更好地专注于业务发展而非基础设施管理,注册账号即可领取免费的 Agent 实例,欢迎试用。 企业版功能TapData Enterprise 可部署在您的本地数据中心,适合对数据敏感性或网络隔离有严格要求的场景,可服务于构建实时数仓,实现实时数据交换,数据迁移等场景。 社区版功能TapData Community 是一个开源的数据集成平台,提供基础的数据同步和转换功能,可通过 Docker 一键部署,帮助您快速探索和实施数据集成项目。随着项目或企业发展,您可以平滑升级至 TapData Cloud 或 TapData Enterprise,以获得更多高级功能或服务支持。

Snowflake 是一款完全托管的云原生数据仓库,提供弹性伸缩的计算与存储能力。Tapdata 当前提供 Snowflake 连接器,支持将其作为源或目标节点使用,帮助您快速实现多源数据汇聚上云,为构建企业级云端数仓、数据共享及敏捷数据分析提供实时的数据流转支撑。

支持数据类型

类别数据类型
数值NUMBER、FLOAT
字符串TEXT
二进制BINARY、FILE
布尔BOOLEAN
日期/时间DATE、TIME、TIMESTAMP_NTZ、TIMESTAMP_TZ
复杂类型OBJECT、ARRAY

支持同步的操作

INSERT、UPDATE、DELETE

提示
  • 作为源库时,增量数据同步需通过字段轮询的方式实现,且不支持采集 DDL 操作,详见变更数据捕获(CDC)
  • 作为目标库时,您还可以通过任务节点的高级配置,选择 DML 写入策略:插入冲突场景下是否转为更新。

准备工作

  1. 确保 TapData 所属服务端可访问 Snowflake 服务,即可访问域名:snowflakecomputing.com

  2. 登录 Snowflake 数据库,执行下述格式的命令,创建用于数据同步的账号与角色。

    -- 请将 role_name、username、password、warehouse_name、database_name、schema_name 替换为实际值
    CREATE ROLE IF NOT EXISTS <role_name>;

    CREATE USER <username>
    PASSWORD = '<password>'
    DEFAULT_ROLE = <role_name>
    DEFAULT_WAREHOUSE = <warehouse_name>
    DEFAULT_NAMESPACE = <database_name>.<schema_name>
    MUST_CHANGE_PASSWORD = FALSE;

    GRANT ROLE <role_name> TO USER <username>;
  3. 为刚创建的账号授予权限,您也可以基于业务需求设置更精细化的权限控制。

    -- 请根据下述提示替换 warehouse_name、database_name、schema_name、role_name

    -- 授予计算资源、数据库及 Schema 的访问权限
    GRANT USAGE ON WAREHOUSE <warehouse_name> TO ROLE <role_name>;
    GRANT USAGE ON DATABASE <database_name> TO ROLE <role_name>;
    GRANT USAGE ON SCHEMA <database_name>.<schema_name> TO ROLE <role_name>;

    -- 授予对 Schema 下现有表及未来新增表的查询权限
    GRANT SELECT ON ALL TABLES IN SCHEMA <database_name>.<schema_name> TO ROLE <role_name>;
    GRANT SELECT ON FUTURE TABLES IN SCHEMA <database_name>.<schema_name> TO ROLE <role_name>;

连接 Snowflake

  1. 登录 TapData 平台

  2. 在左侧导航栏,单击连接管理

  3. 单击页面右侧的创建

  4. 在弹出的对话框中,搜索并选择 Snowflake

  5. 在跳转到的页面,根据下述说明填写 Snowflake 的连接信息。

    连接 Snowflake

    • 基本设置

      • 连接名称:填写具有业务意义的独有名称。
      • 连接类型:支持将 Snowflake 作为源或目标节点。
      • 账户:Snowflake 账户标识,获取方式,请参考Snowflake 官网文档
      • 用户名:拥有连接权限的 Snowflake 用户名。
      • 密码:用户名对应的密码。
      • 仓库:指定连接使用的计算仓库名称。
      • 数据库:要连接的数据库(Database)名称。
      • 模式:数据库中的模式(Schema)名称,默认为 PUBLIC,如需使用其他模式请手动修改。
      • 角色:可选项,未填写时默认使用用户在 Snowflake 中配置的默认角色。
      • 时区:默认为 0 时区,如果更改为其他时区,不带时区的字段会受到影响。
    • 高级设置

      • 包含表:默认为全部,您也可以选择自定义并填写包含的表,多个表之间用英文逗号(,)分隔。
      • 排除表:打开该开关后,可以设定要排除的表,多个表之间用英文逗号(,)分隔。
      • Agent 设置:默认为平台自动分配,您也可以手动指定 Agent。
      • 模型加载时间:如果数据源中的模型数量少于10000个,则每小时更新一次模型信息。但如果模型数量超过10,000个,则刷新将在您指定的时间每天进行。
  6. 单击页面下方的连接测试,提示通过后单击保存

    提示

    如提示连接测试失败,请根据页面提示进行修复。