1

Snowflake 用户/客户是否可以允许外部业务合作伙伴(例如来自不同公司的 IT 团队)创建表格并将他们想要发送给您的数据插入其中,反之亦然,您可以为他们提供数据表格?

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

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

本质上,我在问是否可以在我们管理的一个主雪花帐户上进行两种方式的数据交换。

4

1 回答 1

2

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

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

数据库 X

  • 表 E1、E2

数据库 A(针对客户 A)

  • 表 I1、I2(供客户写入)
  • 安全视图 V1、V2(提供来自 X.E1 和 X.E2 的相关列,过滤给客户 A)

数据库 B(针对客户 B)

  • 表 I1、I2(供客户写入)
  • 安全视图 V1、V2(提供来自 X.E1 和 X.E2 的相关列,过滤给客户 B)

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

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

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

于 2021-09-23T18:14:24.680 回答