使用数据共享 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用数据共享

您可以创建数据共享,以便其他集群上的用户可以查询数据。包含您要共享的数据的集群称为创建者集群。您可以在创建者集群上为要共享的数据库对象创建数据共享。您可以共享 Schema、表、视图和 SQL 用户定义的函数 (UDF)。您要与其共享数据的集群称为使用者集群。在使用者集群上,您可以利用数据共享创建数据库。然后,使用者集群上的用户可以查询数据。有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的数据共享入门

创建数据共享

您可以在要用作创建者集群的集群上创建数据共享。要详细了解数据共享的注意事项,请参阅中的《Amazon Redshift 数据库开发人员指南》中的 Amazon Redshift 中的数据共享注意事项

  1. 选择要使用的创建者集群上的数据库。

  2. 创建数据共享。例如:

    create datashare mysource;
  3. 设置数据共享的权限。例如:

    grant alter, share on datashare mysource to admin;
  4. 设置要共享的数据库对象的权限。例如:

    alter datashare mysource add schema public;
    alter datashare mysource add table public.event;
  5. 设置使用者集群命名空间的权限以访问数据共享。例如:

    grant usage on datashare mysource to namespace '2b12345-1234-5678-9012-bb1234567890';

显示数据共享

您可以显示您在创建者集群上创建的数据共享。

  1. 选择创建者集群。

  2. 显示数据共享。例如:

    show datashares;
    share_name share_owner source_database consumer_database share_type createdate is_publicaccessible share_acl producer_account producer_namespace test_datashare 100 db_producer NULL OUTBOUND 2/15/2022 FALSE admin 123456789012 p1234567-8765-4321-p10987654321

创建使用者数据库

在使用者集群上,您可以利用数据共享创建数据库。这些步骤描述了如何在同一个账户中的两个集群之间共享数据。有关跨 Amazon 账户共享数据的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的跨 Amazon 账户共享数据

您可以使用 SQL 命令或查询编辑器 v2 树状视图面板来创建数据库。

使用 SQL
  1. 利用数据共享为您的账户和创建者集群的命名空间创建一个数据库。例如:

    create database share_db from datashare mysource of account '123456789012' namespace 'p1234567-8765-4321-p10987654321';
  2. 设置权限,以便用户可以访问数据库和 Schema。例如:

    grant usage on database share_db to usernames;
    grant usage on schema public to usernames;
使用查询编辑器 v2 树状视图面板
  1. 选择
                        Create创建,然后选择数据库

  2. 输入数据库名称

  3. (可选)选择用户和组,然后选择数据库用户

  4. 选择使用数据共享创建

  5. 选择数据共享。

  6. 选择创建数据库

    新的 
                        datashare数据共享数据库将在查询编辑器 v2 树状视图面板中显示。

  7. 设置权限,以便用户可以访问数据库和 Schema。例如:

    grant usage on database share_db to usernames;
    grant usage on schema public to usernames;

查询数据共享对象

在使用者集群上,您可以使用以三部分表示法表示的完全限定对象名来查询数据共享对象:数据库、架构和对象的名称。

  1. 在查询编辑器 v2 树状视图面板中,选择该 Schema。

  2. 请选择一个表来查看表定义。

    此时系统将显示表列和数据类型。

  3. 要查询表,请选择表并使用上下文菜单(右键单击)选择选择表

  4. 使用 SELECT 命令查询表。例如:

    select top 10 * from test_db.public.event;