Возможно ли выполнить объединенный запрос между базами данных в redshift?

#amazon-web-services #amazon-redshift #cross-database #federated-queries

#amazon-web-services #amazon-redshift #кросс-база данных #федеративные запросы

Вопрос:

хотя запросы к базам данных между базами данных (в кластерах на основе узлов ra3) и объединенные запросы по отдельности, похоже, работают, вместе кажется, что они не будут работать. Я, скорее всего, что-то упускаю, отсюда и вопрос. Ниже приведены подробности:

  • В RDS Aurora MySQL есть база данных, скажем, DB1
  • Кластер Redshift, скажем, c1 имеет базы данных, например, RSDB1 и RSDB2
  • Я могу настроить DB1 как внешнюю схему в RSDB1, скажем, ext_mdb, и также могу запрашивать, например: как показано ниже

выберите count(1) из ext_mdb.Table2;

выберите count(1) из RSDB1.ext_mdb.Table2; # это также работает

  • Я также могу использовать схему запросов между базами данных RSDB1.public.Таблица1, пока я подключен к RSDB2.
  • Когда я пытаюсь запросить RSDB1.ext_mdb.Table2 из RSDB2, происходит сбой с ошибкой ниже

выберите count(1) из RSDB1.ext_mdb.Table2; # это не из RSDB2

ОШИБКА: таблица отношений 2 не существует в базе данных.

Ответ №1:

На данный момент это похоже на ограничение для запросов между базами данных в redshift из того, что я понял, прочитав это: https://docs.aws.amazon.com/redshift/latest/dg/cross-database_limitation.html

где говорится

Amazon Redshift не поддерживает объекты каталога запросов в AWS Glue или объединенных базах данных. Чтобы запросить эти объекты, сначала создайте внешние схемы, которые ссылаются на эти внешние источники данных в каждой базе данных.