Как написать интеграционные тесты в зависимости от друида? - PullRequest
0 голосов
/ 31 мая 2018

Я кодирую приложение, которое генерирует отчеты из базы данных Друида.Мои интеграционные тесты должны читать данные из этой базы данных.

Мой текущий подход заключается в создании синтетических данных для каждого из тестов.Однако я не могу удалить данные, созданные из базы данных (будь то путем удаления записей или полного удаления схемы).Пробовал это , но все еще возвращал данные после отключения сегмента и запуска задачи уничтожения.

Я думаю, что либо я совершенно не прав с моим подходом, либо есть способ удалить информацию избазу данных, которую я не смог найти.

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

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

Не очень элегантно, поскольку теперь один вредоносный тест может (потенциально) связываться с результатамидругого теста.

0 голосов
/ 01 июня 2018

Вы можете сделать это, используя следующие 2 подхода

Подход 1:

  • Отключить сегмент (б = 0)
  • Пожарзадача уничтожения для этого сегмента
  • Имеют правила загрузки и отбрасывания

См .: http://druid.io/docs/latest/ingestion/tasks.html (ищите уничтожающие сегменты)

Подход 2: (предпочтительнее для выполнения интеграционных тестов перед настройкой производства):

  • остановка узла-координатора и удаление всех записей в таблице druid_segments в хранилище метаданных
  • stopисторический узел и удалите все в каталоге, указанном druid.segmentCache.locations в историческом узле
  • запустите координатор и исторические узлы

Помните, что это удалит все из кластера друидов.

...