以下の内容はhttps://yohei-a.hatenablog.jp/entry/20260209/1770594902より取得しました。


Redshift で多段でデータシェアリングした Late Binding View にアクセスすると "ERROR: Remote object depends on external shared object." が発生する

Redshift で多段でデータシェアリングした Late Binding View にアクセスすると "ERROR: Remote object depends on external shared object." が発生する

3クラスターでの多段データシェアリングした場合 "ERROR: Remote object depends on external shared object"

  • 以下の依存関係のテーブルを作成する。

ads クラスターの表 "ads_tbl"-(Datasharing)-> central クラスターのLBV "cnt_lbv"-(Datasharing)-> commerceクラスターのLBV "cmr_lbv"

$ psql -h  redshift-cluster-poc-commerce.********.ap-northeast-1.redshift.amazonaws.com -p 5439 -d dev -U awsuser
select * dev.public.cmr_lbv_from_cnt;

ERROR: Remote object depends on external shared object.
準備作業
$ psql -h  redshift-cluster-poc-ads.********.ap-northeast-1.redshift.amazonaws.com -p 5439 -d dev -U awsuser
create table dev.public.ads_tbl (id int);
insert into dev.public.ads_tbl values (1),(2),(3);
select * from dev.public.ads_tbl; 
 id
----
  1
  2
  3
(3 rows)
$ psql -h  redshift-cluster-poc-central.********.ap-northeast-1.redshift.amazonaws.com -p 5439 -d dev -U awsuser
create or replace  view dev.public.cnt_lbv_from_ads as select * from ads_datashare_db.public.ads_tbl WITH NO SCHEMA BINDING;
$ psql -h  redshift-cluster-poc-commerce.********.ap-northeast-1.redshift.amazonaws.com -p 5439 -d dev -U awsuser
create or replace view dev.public.cmr_lbv_from_cnt as select * from cnt_datashare_db.public.cnt_lbv_from_ads WITH NO SCHEMA BINDING;

2クラスターでの循環データシェアリングした場合 ""ERROR: cross-database reference to xx found while analyzing an LBV on producer."

  • 以下の依存関係のテーブルを作成する。

central クラスターの表 "cnt_tbl"-(Datasharing)-> commerceクラスターのLBV "cmr_lbv"-(Datasharing)-> centralクラスターのLBV "cnt_lbv"

$ psql -h  redshift-cluster-poc-central.********.ap-northeast-1.redshift.amazonaws.com -p 5439 -d dev -U awsuser
select * dev.public.cnt_lbv;

ERROR: Remote object depends on external shared object.
準備
$ psql -h  redshift-cluster-poc-central.********.ap-northeast-1.redshift.amazonaws.com -p 5439 -d dev -U awsuser
create table dev.public.cnt_tbl (id int);
insert into dev.public.cnt_tbl values (1),(2),(3);
select * from dev.public.cnt_tbl; 
 id
----
  1
  2
  3
(3 rows)
$ psql -h  redshift-cluster-poc-commerce.********.ap-northeast-1.redshift.amazonaws.com -p 5439 -d dev -U awsuser
create view dev.public.cmr_lbv as select * from cnt_datashare_db.public.cnt_tbl WITH NO SCHEMA BINDING;
$ psql -h  redshift-cluster-poc-central.********.ap-northeast-1.redshift.amazonaws.com -p 5439 -d dev -U awsuser
create view dev.public.cnt_lbv as select * from cmr_datashare_db.public.cmr_lbv WITH NO SCHEMA BINDING;

原因

  • Redshift で多段のデータシェアリングを行っているため。



以上の内容はhttps://yohei-a.hatenablog.jp/entry/20260209/1770594902より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14