Citus: сделать существующую базу данных рабочим узлом citus - PullRequest
0 голосов
/ 27 марта 2019

У меня уже есть база данных на одном из моих серверов, используемая веб-приложением.Допустим, D1

Я хочу создать новое веб-приложение с новой базой данных D2 на другом сервере с некоторыми отношениями с D1 .

Я хочу создать сервер данных citus и добавить D1 и D2 в качестве таблицы сегментов, а их рабочий узел - в качестве соответствующего сервера.

В документах citus я обнаружил, что таблицы баз данных сегментов создаются на сервере citus и автоматически распределяются по доступным рабочим узлам.

Как использоватьсуществующая база данных в качестве рабочего узла и таблицы сегментов с новым сервером citus .

1 Ответ

1 голос
/ 01 апреля 2019

Вопрос немного расплывчатый, я не совсем понял, о чем идет речь.

У нас есть 2 сервера S1 и S2, содержащие 2 базы данных D1 и D2. Мы хотели бы создать распределенную базу данных, содержащую как D1, так и D2, у нас будет третий сервер S0, который мы хотели бы использовать в качестве координатора citus.

Использование S1 (D1) и S2 (D2) в качестве рабочего не является проблемой. Citus создает основные таблицы на узле координатора. У рабочих создаются соответствующие осколки. Если предположить, что произойдет столкновение имен, таблицы сегментов могут сосуществовать со старыми таблицами.

Однако вы не можете слепо использовать существующие данные в D1 и D2 как есть и ожидать, что они будут таблицами сегментов. Данные должны быть повторно отправлены.

Steps

  1. прочитать документацию Citus о том, как настроить кластеры, выбрать ключи распределения, загрузить данные

  2. установить / настроить расширение citus на S1, S2 и S0 (координатор)

  3. добавить S1 и S2 в качестве рабочих узлов в S0

  4. Определите распределение таблиц. Некоторые таблицы должны быть на всех узлах (справочные таблицы), некоторые из них защищены в соответствии с каким-либо ключом.

  5. создавать таблицы на узле координатора, распределяя их, используя функцию create_distributed_table / create_reference_table

  6. загрузить данные, это может быть проблемой. Самый простой способ - экспортировать (копировать) существующие данные во внешний файл и импортировать (копировать) из этого файла в кластер citus. Вам нужно будет использовать узел координатора (S0) при импорте данных.

  7. протестируйте ваше приложение, используя новый кластер, перед переключением.

...