ECL — запрос Roxie для тестирования HPCC
Я пытаюсь написать запрос Рокси, используя язык ECL. Есть ли способ написать и протестировать код без постоянной публикации запроса?
1 ответ
Я предполагаю, что вы просто пытаетесь избежать дополнительных шагов, ориентированных на пользовательский интерфейс, при публикации запроса (например, переключение между ECL Watch и вашей средой разработки). Вы можете сделать тестирование на roxie относительно безболезненным с помощью некоторых сценариев сборки и вызовов REST.
В HPCC roxie и hthor похожи с точки зрения выполнения и среды выполнения. Их тактические стратегии выполнения различны (roxie обрабатывает запросы в потоках ОС, hthor обрабатывает их, разветвляя дочерние процессы), но эмпирическое правило заключается в том, что если вы можете заставить код работать хорошо в hthor, то он, вероятно, будет хорошо работать и в roxie.
Вы можете использовать это сходство во время разработки. Вместо того, чтобы публиковать запрос в roxie, тестировать, удалять запрос и повторять все это, вы можете просто отправить задание в hthor (так же, как вы сделали бы для задания thor). Вам придется жестко закодировать некоторые тестовые значения, которые обычно являются параметрами для запроса roxie, но это достаточно просто.
Дополнительным преимуществом использования hthor является то, что это единственный движок, поддерживающий любую пошаговую отладку. Однако это может быть случайным предложением, в зависимости от версии HPCC, с которой вы работаете, и вы не упомянули об этом. Даже если вы не используете отладчик, графики выполнения hthor, по крайней мере, показывают подробные сведения о потоках данных конкретного запроса, такие как количество записей на каждом шаге (roxie показывает график, но нет подробной информации по отдельным запросам).