Apache Drill中的按位运算符

时间:2016-06-05 17:26:58

标签: bitwise-operators apache-drill

我正在考虑使用Apache Drill作为现有系统的查询引擎。该表的一些列表示编码为Int的多个值,其允许例如 SELECT COUNT(*) FROM options WHERE opt_a & 2 > 0。似乎Drill没有实现按位运算符。关于此功能的任何消息都将在不久的将来添加或任何想法如何扩展钻孔以简单的方式来支持这个?

1 个答案:

答案 0 :(得分:2)

看起来这些函数应该可用,它们只是没有提供java / c语法。提供这个可能涉及修改解析器,虽然我不确定这是否符合SQL规范。

https://issues.apache.org/jira/browse/DRILL-923

如果缺少您需要的东西,在Drill中开发函数非常简单。 UDF接口有一些特性。以下是文档中的一些dos和don的信息列表:

要利用Java的即时(JIT)编译器以获得最大速度,您需要遵守一些基本规则。

  • 不要使用进口商品。相反,请使用Apache Drill中打包的Google Guava API所需的完全限定类名,如"步骤3:声明输入参数"。
  • 通过调用辅助方法(如getStringFromVarCharHolder和toStringFromUTF8)来操作ValueHolders类,例如VarCharHolder和IntHolder,如#34;步骤5:实现eval()函数"。
  • 不要调用toString等方法,因为这会导致严重的问题。

  • 使用maven-source-plugin编译源和类JAR文件。

这是一个涵盖编写简单函数的文档页面: https://drill.apache.org/docs/develop-custom-functions-introduction/

如果您有任何问题,请随时点击开发者或用户邮件列表。人们通常比Stackoverflow更敏感。