在AWS Redshift 中使用数据共享 Data sharing

目录

    • [1️⃣ 前言](#1️⃣ 前言)
    • [2️⃣ 分享者集群操作](#2️⃣ 分享者集群操作)
      • [2.1 连接数据库](#2.1 连接数据库)
      • [2.2 创建Datashare](#2.2 创建Datashare)
    • [3️⃣ 使用者集群操作](#3️⃣ 使用者集群操作)
      • [3.1 创建数据库](#3.1 创建数据库)
      • [3.2 使用共享数据](#3.2 使用共享数据)

1️⃣ 前言

使用 Amazon Redshift 数据共享,您可以在 Amazon Redshift 集群、工作组、AWS 账户和 AWS 区域之间安全地共享对实时数据的访问权限,而无需手动移动或复制数据。由于数据是实时的,只要进行了更新,所有用户就都可以在 Amazon Redshift 中看到最新、最一致的信息。

  • 性能:对共享数据的查询性能取决于使用者集群的计算容量,即用共享数据时并不会使用分享者集群的资源。

利用AWS Redshift数据分享,我们可以实现数据实时接入(zero-etl)和跑批任务分离,互不影响,而且使用Serverless版本时可以降低成本。

  • 分享者集群:本文中指源集群,即提供分享数据的集群。
  • 使用者集群:本文中指使用分享数据的集群。

2️⃣ 分享者集群操作

2.1 连接数据库

在Redshift Namespace下找到Datashares,点击连接数据库,填写分享者集群。

需要先在AWS Secrets Manager创建好

2.2 创建Datashare

可以在页面创建,也可以使用SQL创建

创建测试表

sql 复制代码
SELECT * FROM sales_test;
CREATE TABLE IF NOT EXISTS sales_test (
    sale_id INT PRIMARY KEY,          
    sale_date DATE NOT NULL,          
    product_id VARCHAR(50) NOT NULL,  
    amount DECIMAL(10,2) NOT NULL,    
    region VARCHAR(20),               
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO sales_test (sale_id, sale_date, product_id, amount, region)
VALUES
    (1, '2026-01-01', 'P001', 199.99, 'west'),
    (2, '2026-01-01', 'P002', 299.50, 'west'),
    (3, '2026-01-02', 'P001', 199.99, 'west'),
    (4, '2026-01-03', 'P003', 499.00, 'west'),
    (5, '2026-01-03', 'P002', 299.50, 'west');

创建数据分享

sql 复制代码
-- 注意在要数据分享的数据库创建
CREATE DATASHARE dev_share set PUBLICACCESSIBLE TRUE;
ALTER DATASHARE dev_share ADD SCHEMA public;
-- ALTER DATASHARE dev_share OWNER TO "IAM:max"; 
ALTER DATASHARE dev_share ADD ALL TABLES IN SCHEMA public;
GRANT USAGE ON DATASHARE dev_share TO NAMESPACE '填使用者集群Namespace ID'; 
-- GRANT SELECT ON ALL TABLES IN SCHEMA public TO DATASHARE dev_share;

如果有新增表,需要加进去

sql 复制代码
ALTER DATASHARE dev_share ADD ALL TABLES IN SCHEMA public;

3️⃣ 使用者集群操作

3.1 创建数据库

sql 复制代码
SHOW DATASHARES LIKE '%share';
-- CREATE DATABASE dev_share WITH PERMISSIONS FROM DATASHARE dev_share OF NAMESPACE '填分享者集群Namespace ID'; 配置更细粒度权限
CREATE DATABASE dev_share FROM DATASHARE dev_share OF NAMESPACE '填分享者集群Namespace ID';
GRANT USAGE ON DATABASE dev_share TO xx_user;
GRANT USAGE ON DATABASE dev_share TO group xx_group;

3.2 使用共享数据

sql 复制代码
select * from dev_share.public.sales_test;
相关推荐
SaaS_Product3 天前
从实用性与体验角度出发,OneDrive有什么替代品
云计算·saas·onedrive
小扎仙森3 天前
关于阿里云实时语音翻译-Gummy推送WebSocket
websocket·阿里云·云计算
Elastic 中国社区官方博客3 天前
Elastic 公共 roadmap 在此
大数据·elasticsearch·ai·云原生·serverless·全文检索·aws
Shacoray3 天前
OpenClaw 接入阿里云百炼 Coding Plan 指南
阿里云·ai·云计算·qwen3·openclaw·coding plan
TG_yunshuguoji3 天前
阿里云代理商:2026 年阿里云国际站上云接入指南
服务器·阿里云·云计算
阿里云云原生3 天前
阿里云可观测 2026 年 1 月产品动态
阿里云·云计算
TG_yunshuguoji4 天前
亚马逊云代理商:AWS 国际站缺卡新用户创建邮箱怎么选择?
安全·云计算·aws
峰顶听歌的鲸鱼4 天前
Zabbix监控系统
linux·运维·笔记·安全·云计算·zabbix·学习方法
TG_yunshuguoji4 天前
亚马逊云代理商:如何监控AWS RDS使用率并设置报警?
运维·云计算·aws
菜鸟别浪4 天前
内存管理-第1章-Linux 内核内存管理概述
linux·运维·云计算·虚拟化·内存管理