Я рассматриваю возможность использования Apache Drill в качестве механизма запросов для существующей системы. Некоторые столбцы таблицы представляют собой несколько значений, кодируемых как Int, что позволяет делать, например, SELECT COUNT(*) FROM options WHERE opt_a & 2 > 0
. Похоже, что у Drill нет побитовых операторов. Любое слово в этой функции, которое будет добавлено в ближайшем будущем, или какие-либо идеи о том, как расширить Drill в простой способ поддержать это?Побитовый оператор в бурении Apache
ответ
Похоже, эти функции должны быть доступны, они просто не снабжены синтаксисом java/c. Предоставление этого, вероятно, связано с модификацией парсера, хотя я не уверен, что это будет соответствовать спецификации SQL.
https://issues.apache.org/jira/browse/DRILL-923
Если что-то вам нужно не хватает, разработке функций в Drill довольно проста. Есть несколько особенностей интерфейса UDF. Ниже приведен список некоторых доз и донтов из документов:
Чтобы использовать компилятор Java в режиме реального времени (JIT) для максимальной скорости, вам необходимо придерживаться некоторых основных правил.
- Не использовать импорт. Вместо этого используйте полное имя класса, как того требует API Google Guava, упакованный в Apache Drill, и как показано в «Шаг 3: Объявить входные параметры».
- Манипулируйте классы ValueHolders, например VarCharHolder и IntHolder, как структуры, вызывая вспомогательные методы, такие как getStringFromVarCharHolder и toStringFromUTF8, как показано в «Шаг 5: Реализация функции eval()».
Не вызывайте такие методы, как toString, потому что это вызывает серьезные проблемы.
Используйте maven-source-plugin для компиляции источников и классов JAR-файлов.
Вот страница из документации, которая охватывает пишущую простую функцию: https://drill.apache.org/docs/develop-custom-functions-introduction/
Если у вас есть какие-либо вопросы, не стесняйтесь ударяете Дев или пользовательские списки рассылки. Люди, как правило, более отзывчивы, чем на Stackoverflow.
- 1. Побитовый оператор в apache derby
- 2. Ограничение на веб-консоль в бурении Apache
- 3. C++ '>' побитовый оператор
- 4. Побитовый и оператор
- 5. Побитовый оператор булевых вычислений
- 6. Побитовый & оператор возвращает 255
- 7. Побитовый и (&) оператор
- 8. C побитовый оператор '&' использует
- 9. Как работает побитовый оператор
- 10. Побитовый оператор «&» на uint
- 11. Когда используется побитовый оператор?
- 12. Побитовый оператор в js противоречив?
- 13. Побитовый оператор в объекте C
- 14. Побитовый оператор в выражении if
- 15. Google Closure Template Побитовый оператор
- 16. Когда следует использовать побитовый оператор?
- 17. Как работает побитовый оператор XOR ('^')?
- 18. Почему мы используем побитовый оператор?
- 19. Что побитовый оператор & делает в этом примере?
- 20. Что такое побитовый оператор NOT в Rust?
- 21. Первичный ключ или указатель для запроса куста в бурении Apache
- 22. Плагин хранения для Oracle DB в бурении Apache
- 23. Не удалось создать плагин для хранения улья в бурении Apache
- 24. Побитовый оператор AND с varbinary column
- 25. Побитовый оператор C# против побитового оператора Javascript
- 26. NOT (~) побитовый оператор по номеру подписанного типа
- 27. Использует ли побитовый оператор большой объем ресурсов?
- 28. Определение количества битов, которые изменились (побитовый оператор)
- 29. Применить побитовый оператор к значениям массива
- 30. Понимание PHP & (амперсанд, побитовый и) оператор
Спасибо. Было бы так же просто, как создать простую функцию (следующую документацию), которая вернет true/false и будет использоваться в предложении WHERE? –