Снежинка: СЧИТЫВАТЕЛЬНЫЙ СЧЕТ, 1 БД, 2 СХЕМЫ - PullRequest
0 голосов
/ 15 октября 2019

Я сталкиваюсь со странным поведением при попытке поделиться двумя схемами из одной базы данных с учетной записью SNOWFLAKE READER.

При условии, что обе схемы в базе данных производителя совместно используют команды для создания базы данных и разделяют их наУЧЕТНАЯ ЗАПИСЬ будет выглядеть примерно так:

CREATE DATABASE myDB_A from share producerAccount.Producer_SHARE_Schema_A;
CREATE DATABASE myDB_B from share producerAccount.Producer_SHARE_Schema_B;

Где

  • Producer_SHARE_Schema_A - это ресурс, который выглядит как myDB.Schema_A, а
  • Producer_SHARE_Schema_B - это ресурс, который выглядиткак myDB.Schema_B

Похоже, что myDB_A будет иметь Schema_A, и когда вторая команда будет запущена, myDB_A также подхватит Schema_B.

В идеале нам нужна команда, котораяпозволяет нам добавить вторую схему в базу данных, используя подход ALTER:

CREATE DATABASE myDB_A from share producerAccount.Producer_SHARE_Schema_A;
**ALTER DATABASE myDB_B ADD share producerAccount.Producer_SHARE_Schema_B**;

Последний вопрос ... Существует ли стандартизированный метод для добавления дополнительных схем в общую базу данных в целевой учетной записи READER?

Спасибо!

1 Ответ

1 голос
/ 15 октября 2019

Я думаю, что могу ответить на свой вопрос ... Вместо того, чтобы пытаться добавить вторую схему к общему ресурсу, который создается на стороне потребителя (READER ACCOUNT), лучше всего создать общий ресурс на стороне производителя, чтобы включитьобе схемы:

grant usage on database myDB to share myShare;
grant usage on schema myDB.Schema_A to share myShare;
grant usage on schema myDB.Schema_B to share myShare;

Тогда для потребителя нам нужно беспокоиться только об одном общем ресурсе для создания базы данных:

CREATE DATABASE myDB from share producerAccount.myshare;

Это решило проблему. Оглядываясь назад, это очевидно. Сложите все кусочки вместе на стороне производителя и сделайте все очень просто с помощью СЧЕТА READER.

Дух ... ... 1009 *

...