验证Data Sharing效果

本节我们将在bi-redshift-cluster上查询另一个集群分享的数据

连接到bi-redshift-cluster后,将看到tpc数据库以及其中分享过来的表和视图:

image-20230820192449245

使用以下语句查询数据:

SELECT c_mktsegment, o_orderpriority, sum(o_totalprice)
FROM tpc.public.customer_view c
JOIN tpc.public.orders o on c_custkey = o_custkey
GROUP BY c_mktsegment, o_orderpriority;

查询结果:

image-20230820192634610

为Datashare创建外部schema

上面执行查询的时候,使用了three-part notation,即databasename.schemaname.objectname(如tpc.public.customer_view)。将这种方式简化的方式是使用创建一个外部schema,将共享过来的schema映射成为本地的schema:

CREATE EXTERNAL SCHEMA tpcschema
FROM REDSHIFT DATABASE 'tpc' SCHEMA 'public';

查询的时候就不用使用three part notation, 而是使用本地的schema:

SELECT c_mktsegment, o_orderpriority, sum(o_totalprice)
FROM tpcschema.customer_view c
JOIN tpcschema.orders o on c_custkey = o_custkey
GROUP BY c_mktsegment, o_orderpriority;

image-20230820192917663

Workload隔离

因为Data sharing只在RA3(或serverless)上生效,而RA3节点是计算和存储分离的,所以在生产集群关机后,消费集群依然能访问到数据。

将生产集群进行pause:

image-20230820192942947

Pause过程会持续一会,在此期间,消费集群不能查询数据。如果查询会报如下错误:

image-20230820193057533

在Pause操作完成后,生产集群状态变成Paused,此时再在消费集群上查询数据,可以查询到结果。


测试完成后重新启动生产集群,以进行后面的实验:

image-20230820193153321