我想知道Apache Drill是否支持存储过程和函数。如果是,请举一些例子。
答案 0 :(得分:5)
您可以使用内置功能:
Math and Trig:
像ABS(x)
这样的函数,
CEIL(x)
,
CEILING(x)
,
DEGREES(x)
,
EXP(x)
,
FLOOR(x)
,
LOG(x)
&还有很多。检查docs。
示例:
SELECT ABS(`integer`) FROM dfs.`/Users/drill/input2.json`;
数据类型转换:
像CAST
这样的功能
CONVERT_TO
和CONVERT_FROM
等。检查docs。
示例:
SELECT CAST('1' as DECIMAL(28, 2)) FROM (VALUES(1));
日期/时间函数和算术:
CURRENT_TIME TIME
,CURRENT_TIMESTAMP
,DATE_ADD
等功能。检查docs。
示例:
SELECT DATE_ADD(date '2015-05-15', 2) FROM (VALUES(1));
字符串操作:
CONCAT
,ILIKE
,INITCAP
,LENGTH
等功能。检查docs。
示例:
SELECT CHAR_LENGTH('Drill rocks') FROM (VALUES(1));
汇总和汇总统计:
AVG(expression)
,MAX(expression)
,COUNT(*)
等功能。检查docs。
示例:
SELECT AVG(ALL salary) FROM cp.`employee.json` WHERE employee_id IN (1139, 1140, 1141);
处理空值的功能
COALESCE
& NULLIF
。检查docs。
示例:
SELECT NULLIF(d9, d18) FROM alltypes limit 1;
SQL窗口函数也受支持。检查Details。
嵌套数据函数适用于FLATTEN,查找重复计数等。检查Details。
查询目录功能,例如MAXDIR
,MINDIR
。检查Details。
除此之外,你可以开发自己的功能。 检查Tutorials。