Snowflake cloud data platform 依赖于雪花的雪管

Snowflake cloud data platform 依赖于雪花的雪管,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,在Snowflake中,有一个名为Snowpipe的概念,它将自动从不同的数据源将数据加载到已配置的表中 我们正在尝试在通过雪管加载到雪花中时进行规范化 Table A: Id & EmployerName Table B: Id, Employeename & EmployerID 文件中的值 Name, EmployerName Raj, Google Kumar, Microsoft 我们无法在同一管道中填充表A和表B,因为该管道只有一个copy语句 是否有任何概念

在Snowflake中,有一个名为Snowpipe的概念,它将自动从不同的数据源将数据加载到已配置的表中

我们正在尝试在通过雪管加载到雪花中时进行规范化

Table A: 
Id & EmployerName

Table B:
Id, Employeename & EmployerID
文件中的值

Name, EmployerName
Raj, Google
Kumar, Microsoft
我们无法在同一管道中填充表A和表B,因为该管道只有一个copy语句

是否有任何概念,如依赖管道和其他方法,可以首先加载查找表并从示例文件加载主表

注意:

  • 如果有两个管道,则无法指定依赖项

我有一个关于多表复制的想法:

  • 您可以创建一个存储过程,通过参数化表名将数据从源位置复制到目标表
  • 使用snowflake中的task定期计划存储过程

这将在给定的时间间隔内填充目标表中的数据。使用此选项,不会立即从源位置复制文件。必须选中TASK hoe上的选项,才能在每次运行时收到通知。

只要源数据在云提供商的blob存储位置可用,就应该使用Snowpipe将数据加载到表中。您不能在雪管之间设置依赖关系,这将在管道中增加延迟

最好的办法是在数据到达blob存储时设置两个雪花管来加载这两个表,然后使用雪花来处理相关性和业务逻辑。

以下是一些想法:

  • 设置一个雪管,将其加载到单个永久暂存区(PSA)表中

  • 使用哈希代码作为两个分离表的代理键 (如果必须使用代理密钥)。 这样,您就不必查找代理键值。 您的表将如下所示: 表A-员工姓名、员工姓名; 表B——员工哈希、员工姓名、员工哈希

  • 然后使用存储过程创建一个任务,该任务将发出多表插入,以便使用同一源查询同时加载到两个表中。 ()

  • 如果实际的表结构和处理更复杂,那么可以尝试使用基于PSA表的雪花流和任务。 有关详细示例,请参见此处:
  • 嗯,, 加博