美文网首页
Snowflake Sharing

Snowflake Sharing

作者: 阿猫阿狗Hakuna | 来源:发表于2023-05-31 15:01 被阅读0次

    Why Share Data with Snowflake

    当你使用Snowflake作为数据提供商分享数据时,你可以管理谁可以访问你的数据,并避免在不同的人员和团队之间同步数据的挑战。
    作为数据消费者,你可以减少需要执行的data transformations,因为数据保留在Snowflake中,这使得与你分享的数据集和你自己的数据进行连接变得容易。
    如果你使用Listing共享数据,你可以在数据共享中包含元数据,例如标题和描述,以及使用示例,以帮助消费者快速使用数据。
    除了提供给数据消费者的好处,作为提供商,你可以获得使用数据的权限,自动将数据复制到其他地区,并且甚至可以决定对访问你的数据收费,或者在Snowflake Marketplace上公开提供某些数据集。

    Options for Sharing

    你可以使用以下选项之一在Snowflake中共享数据:

    1. 列表(Listing):通过列表,你可以将share和附加的元数据作为数据产品提供给一个或多个账户。
    2. 直接共享(Direct Share):通过直接共享,你可以将特定数据库对象(一个share)直接共享给你所在地区的另一个账户。
    3. 数据交换(Data Exchange):通过数据交换,你可以设置和管理一组账户,并向该组提供一个share。


      image.png

    Secure Data Sharing

    安全数据共享(Secure Data Sharing)允许你将你账户中数据库中的选定对象与其他Snowflake账户共享。你可以分享以下Snowflake数据库对象:

    • Tables
    • External tables
    • Secure views
    • Secure materialized views
    • Secure UDFs

    Snowflake通过共享(shares)来实现数据库的共享,共享由数据提供者创建,并由数据消费者进行“导入”。
    所有在账户之间共享的数据库对象都是read-only的(即这些对象无法被修改或删除,包括添加或修改表数据)。

    通过安全数据共享(Secure Data Sharing),不会在账户之间复制或传输实际数据。所有的共享都使用Snowflake的service layer和metadata store。
    共享的数据不占据消费者账户中的存储空间,因此不会增加消费者的每月数据存储费用。对于消费者而言,唯一需要付费的是用于查询共享数据的计算资源(即virtual warehouse)。

    由于没有数据被复制或交换,安全数据共享的设置对于数据提供者来说是快速且简单的,而对于消费者来说,访问共享数据几乎是即时的:

    • 数据提供者在其账户中创建数据库的共享,并授予对数据库中特定对象的访问权限。数据提供者还可以分享来自多个数据库的数据,只要这些数据库属于同一个账户。然后将一个或多个账户添加到共享中,其中可以包括你自己的账户(如果你拥有多个Snowflake账户)。
    • 在消费者方面,从共享中创建一个只读数据库。对该数据库的访问可使用与Snowflake为系统中的所有对象提供的标准基于角色的访问控制进行配置。

    通过这种架构,Snowflake实现了一个提供者网络,可以与多个消费者(包括在其自己的组织内)共享数据,并且消费者可以从多个提供者访问共享数据。


    image.png

    What is a Share?

    共享(Shares)是Snowflake中的命名对象,它封装了共享数据库所需的所有信息。
    数据提供者可以通过以下两种选项之一或两种选项同时使用,将Snowflake object(databases, schemas, tables, secure views等)添加到share中:
    选项1:通过数据库角色向共享授予对象的权限。
    选项2:直接向共享授予对象的权限。

    Share是安全的,可配置的,并且完全由提供者账户控制:

    • 向Share添加的新对象立即对所有消费者可用,提供实时访问共享数据的能力。
    • 可以随时撤销对Share(或Share中的任何对象)的访问权限。


      image.png

    Reader Accounts for Third-party Access

    数据共享仅支持在Snowflake账户之间进行。作为数据提供者,你可能希望与尚未拥有Snowflake账户或尚未准备成为Snowflake授权客户的消费者共享数据。
    为了方便与这些消费者共享数据,你可以创建Reader Account。Reader Account(以前称为“只读账户”)提供了一种快速、简便和经济高效的方式,可以共享数据,而不需要消费者成为Snowflake客户。
    每个Reader Account属于创建它的提供者账户。作为提供者,你使用共享将数据库共享给Reader Account;但是,Reader Account只能从创建它的提供者账户中获取数据。请参考下面的图示:

    Reader Account中的用户可以查询与该Reader Account共享的数据,但不能执行完整账户中允许的任何DML任务,例如数据加载、插入、更新和类似的数据操作。

    Types of Listings

    • Marketplace Listings
    • Private Listings
    • Free Listings
    • Paid Listings
    • Personalized Listings

    相关文章

      网友评论

          本文标题:Snowflake Sharing

          本文链接:https://www.haomeiwen.com/subject/lchyedtx.html