其他函数


系统管理相关

  • version()

    • 查看 Hive 版本相关信息

    • select version();
      
  • current_database()

    • 查看当前使用的数据库

      • 如果之前使用了 use <库名> ,则会显示当前使用的库名
      • 否则显示缺省使用的库名:default
    • select current_database();
      
  • current_user()

    • 从配置好的 authenticator manager 返回当前使用的用户名

    • select current_user();
      
  • logged_in_user()

    • 从会话状态返回当前用户名

    • select logged_in_user();
      

    055


通过反射调用 JAVA 函数

  • reflect(class, method[, arg1[, arg2..]])java_method(class, method[, arg1[, arg2..]])

    • SELECT
          reflect("java.lang.String", "valueOf", 1),
          reflect("java.lang.String", "isEmpty"),
          reflect("java.lang.String", "endsWith", 'test'),
          reflect("java.lang.Math", "max", 2, 3),
          reflect("java.lang.Math", "min", 2, 3),
          reflect("java.lang.Math", "round", cast(2.5 as float)),
          reflect("java.lang.Math", "exp", cast(1.0 as double)),
          reflect("java.lang.Math", "floor", cast(1.9 as double));
      
  • reflect2(arg0,method[,arg1[,arg2..]])

    • SELECT
          reflect2("Hello World!","length"),
          reflect2("Hello World!", "isEmpty"),
          reflect2("Hello World!", "compareTo", "Hello"),
          reflect2("Hello World!", "compareTo", "Hello World!"),
          reflect2("Hello World!", "endsWith", "World!"),
          reflect2("Hello World!", "indexOf", "W"),
          reflect2("Hello World!", "matches", "^.{0,}llo.{0,}$");
      
    • 056


其他函数

  • uuid() 函数

    • 生成一个 UUID

    • select uuid();
      
  • surrogate_key([write_id_bits, task_id_bits]) 函数

    • 代理键,为插入表中的每一行记录生成唯一、自增的 ID ,类似主键
      • 目前 Hive 的主键没有约束功能,只有优化统计之类的功能,参考
      • 代理键能优化联表查询性能(使用生成的键进行联接比使用字符串进行联接要快),参考1参考2
    • 官方文档中有这个函数,但没说明哪个版本开始支持
    • 测试环境(2.3.9)没找到这个函数

    057