是否可以在来自不同公司的多个团队之间的一个 Snowflake 帐户中提供双向数据?

Is Two Way data providing possible in one Snowflake Account between multiple teams from different companies?

Snowflake users/customers 是否有可能允许外部业务合作伙伴,比如来自不同公司的 IT 团队,能够创建表格并将他们想要发送给您的数据插入其中,反之亦然,您向他们提供数据表?

目前,我们与其他公司交换了无数原始数据文件。他们向我们提供原始数据,我们对其进行处理并向他们提供增强的数据。这是双向数据交换,但我想知道他们是否需要设置自己的 Snowflake 帐户。理想情况下,我会在我的平台上管理他们的用户。

目前文件是通过 ftp 服务器或电子邮件来回交换的,所以我想知道一个 Snowflake 帐户上的多个组织是否可行,或者以前是否尝试过。

本质上我是在问是否可以在我们管理的一个主 Snowflake 帐户上进行双向数据交换。

从纯技术的角度来看,在我看来,您可以在您的 Snowflake 帐户中为每个客户创建一个用户并正确设置他们的权限,以便他们可以写入一个或多个表并从一个或多个表中读取更多表或视图。

例如,假设您的主数据库是 X,它包含表 E1 和 E2,每个表都有针对所有客户的增强数据。同时,您希望用户能够将数据传送到表 I1 和 I2。为客户 A 和 B 执行此操作的一种方法是:

数据库 X

  • 表 E1、E2

数据库A(客户A)

  • 表 I1、I2(供客户写入)
  • Secure Views V1、V2(提供来自 X.E1 和 X.E2 的相关列,过滤到客户 A)

数据库 B(客户 B)

  • 表 I1、I2(供客户写入)
  • Secure Views V1、V2(提供来自 X.E1 和 X.E2 的相关列,过滤到客户 B)

您甚至可以为所有 I 表打开流,然后设置任务以从中获取数据、增强数据并将其添加到数据库 X 中的 E 表中。

显然,您需要确保用户只能看到他们被允许看到的数据,包括看不到其他人写入入站表的数据 (I),这就是我建议设置的原因每个客户一个单独的数据库。您可以改用模式来完成,或者如果您真的想要,可以在一个模式中完成所有操作,但在我看来,如果您至少将客户放在单独的模式中,安全性会更容易。这样,您可以拥有一个脚本,在给定客户名称的情况下,可以一次性创建新的模式、表、视图、流、任务和角色。

当然,与您的客户团队交谈可能是值得的,但如果 Snowflake 坚持让您的客户成为这个特定用例的 Snowflake 客户,我会感到惊讶。