在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;
相关推荐
精益数智小屋7 小时前
项目管理看板如何拆解任务进度?项目管理看板解决跨部门协作难题
大数据·人工智能·数据分析·云计算·软件工程
tiancaijiben11 小时前
阿里云服务器部署WordPress全程指南(2026最新)
云计算
tiancaijiben13 小时前
阿里云Dataphin(智能数据建设与治理)对接配置流程
云计算
tiancaijiben13 小时前
阿里云云防火墙配置全流程指南:从开通到精细化防护
云计算
BAGAE14 小时前
星链卫星数据获取:从太空安全到实时通信的技术革命
网络·数据结构·数据库·算法·云计算·hbase
tiancaijiben15 小时前
K8s集群高可用:阿里云ACK节点池管理与自动伸缩组件HPA/VPA配置
云计算
yyuuuzz16 小时前
云服务器软件部署的几个常见问题
运维·服务器·开发语言·网络·云计算·php·apache
tiancaijiben16 小时前
阿里云容器计算服务ACS深度对接与实践指南
云计算
tiancaijiben17 小时前
云非编系统:阿里云智能媒体生产的云端渲染加速与协同编辑工作流
云计算
weixin_3077791318 小时前
在 Azure 上构建数据库路由与异构整合层:原理、方案与最佳实践
数据库·人工智能·后端·云计算·azure