Данные HAWQ для репликации между кластерами

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

Как переместить ежедневную дельту в кластер QA из Production.

Ценю твою помощь

Спасибо Вееру

2 ответа

Бесстыдное самостоятельное подключение - взгляните на следующий открытый PR для использования Apache Falcon для организации пакетного задания DR и посмотрите, соответствует ли оно вашим потребностям.

https://github.com/apache/incubator-hawq/pull/940

Вот краткий обзор процесса:

  1. Бежать hawqsync-extract записывать известные хорошие размеры файлов HDFS (защищает от несоответствия HDFS / каталога при сбое во время синхронизации)
  2. Запустить пакет ETL (если есть)
  3. Бежать hawqsync-falcon, который выполняет следующие шаги:
    1. Остановите оба мастера HAWQ (источник и цель)
    2. Архивный источник MASTER_DATA_DIRECTORY (MDD) тарбол к HDFS
    3. Перезапустите источник HAWQ master
    4. Включить безопасный режим HDFS и принудительно установить контрольную точку источника
    5. Отключить исходный и удаленный HDFS безопасный режим
    6. Выполнить процесс синхронизации distcp на основе Apache Falcon
    7. Включить безопасный режим HDFS и принудительно установить удаленную контрольную точку

Также есть JIRA с описанием дизайна:

https://issues.apache.org/jira/browse/HAWQ-1078

Для этого нет встроенного инструмента, поэтому вам придется написать некоторый код. Это не должно быть слишком сложно, чтобы написать, потому что HAWQ не поддерживает UPDATE или DELETE. Вам нужно только добавить новые данные в QA.

  • Создайте записываемые внешние таблицы в Production для каждой таблицы, которая помещает данные в HDFS. Вы будете использовать формат PXF для записи данных.
  • Создайте читаемые внешние таблицы в QA для каждой таблицы, которая читает эти данные.
  • День 1, вы пишете все в HDFS, а затем читаете все из HDFS.
  • День 2+, вы найдете максимум (id) из QA. Удалите файлы из HDFS для таблицы. Вставьте в доступную для записи внешнюю таблицу, но отфильтруйте запрос, чтобы получить из QA только те записи, которые больше максимального (id). Наконец, выполните вставку в QA, выбрав все данные из внешней таблицы.
Другие вопросы по тегам