在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;
相关推荐
returnthem9 小时前
K8S笔记
kubernetes·云计算·paas
亚马逊云开发者12 小时前
OpenClaw 接入 Amazon Bedrock 模型选择完全指南:Nova/Claude/Llama 三大模型家族怎么选不花冤枉钱
aws·亚马逊云科技·amazon bedrock·模型选择·openclaw
风曦Kisaki15 小时前
云计算基础Day07:计划任务、软件包管理、本地YUM仓库
云计算
智慧化智能化数字化方案15 小时前
数字化进阶——解读场景化、图谱化推进重点行业数字化转型的参考指引(2025版)
大数据·人工智能·云计算·行业数字化转型的参考指引
光锥智能16 小时前
AI风越大,云计算越贵
人工智能·云计算
观测云16 小时前
阿里云 Tair 集群版可观测最佳实践
阿里云·云计算·观测云
亚马逊云开发者1 天前
给 AI 助手装个"记忆芯片"🧠:OpenClaw + S3 Vectors 搞定个人知识库
aws
可观测性用观测云1 天前
阿里云 Tair 集群版可观测最佳实践
云计算·监控
许国栋_2 天前
B2B企业如何建设价值管理办公室(VMO)?实践与落地解析
人工智能·安全·云计算·产品经理
亚马逊云开发者2 天前
写了个 Skill 让 OpenClaw 自动查 AWS 账单,从此告别手动翻控制台
aws