联 系 我 们
售前咨询
售后咨询
微信关注:星环科技服务号
更多联系方式 >
8.13.16 Context 函数 <a id="context-function"></a>
更新时间:11/15/2023, 11:13:44 AM

您可以在 Inceptor 中查看当前 Session 的上下文(context)信息,本文介绍各 context 函数的用法。

current_database
函数语法 返回类型 描述

current_database()

STRING

返回用户当前所在数据库。

使用示例:

SELECT  current_database() AS result FROM
system.dual LIMIT 1;
复制

返回示例:

+----------+
|  result  |
+----------+
| demodata |
+----------+
复制
current_date
函数语法 返回类型 描述

current_date()

STRING

返回当前系统日期和时间,格式为 YYYY-MM-DD HH:mm:ss。

使用示例:

SELECT current_date() AS result FROM
system.dual LIMIT 1;
复制

返回示例:

+----------------------+
|        result        |
+----------------------+
| 2023-06-19 17:38:14  |
+----------------------+
复制
current_session_id
函数语法 返回类型 描述

current_session_id()

String

返回当前会话的唯一标识符(session ID)。

使用示例:

查询当前会话的会话 ID。

SELECT current_session_id() AS result
复制

返回示例:

+---------------------------------------+
|                result                 |
+---------------------------------------+
| 1a682dc4-4515-4c62-b68e-ec41a84a8184  |
+---------------------------------------+
复制
current_time
函数语法 返回类型 描述

current_time()

STRING

返回当前系统时间,与 systime 作用相同,格式为 HH:mm:ss。

使用示例:

SELECT  current_time() AS result FROM
system.dual LIMIT 1;
复制

返回示例:

+-----------+
|  result   |
+-----------+
| 17:33:36  |
+-----------+
复制
current_timestamp
函数语法 返回类型 描述

current_timestamp()

STRING

返回当前系统时间戳信息,格式为 YYYY-MM-DD HH:mm:ss.mmm。

使用示例:

SELECT current_timestamp AS result
FROM system.dual LIMIT 1;
复制

返回示例:

+--------------------------+
|          result          |
+--------------------------+
| 2023-06-19 17:49:06.156  |
+--------------------------+
复制
current_user
函数语法 返回类型 描述

current_user()

STRING

查看当前 Session 中用户的名称。

使用示例:

SELECT current_user() AS result
FROM system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| admin   |
+---------+
复制
has_role
函数语法 返回类型 描述

has_role(expr)

BOOLEAN

查看用户在当前 Session 中是否拥有某个角色。

参数说明

  • expr:指定要查看的角色名称,不区分大小写,即 Accounting 和 accounting 是同一角色。

使用示例:

查看用户在当前 Session 中是否具备 admin 角色:

SELECT has_role("admin") AS result FROM
system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| true    |
+---------+
复制
logged_in_user
函数语法 返回类型 描述

logged_in_user()

STRING

查看当前登录的用户名。

使用示例:

SELECT logged_in_user() AS result FROM
system.dual LIMIT 1;
复制

返回示例:

+---------+
| result  |
+---------+
| admin   |
+---------+
复制
profile
函数语法 返回类型 描述

profile()

String

返回会话的当前配置文件,如果没有,则返回 NULL。

使用示例:

SELECT profile() AS result;
复制

返回示例:

为便于信息阅读和展示,下述信息的展示方式为垂直显示,即通过 Beeline 连接数据库时,添加了参数 --outputformat=vertical

result  Configuration: core-default.xml, core-site.xml, mapred-default.xml, mapred-site.xml, yarn-default.xml, yarn-site.xml, hdfs-default.xml, hdfs-site.xml, org.apache.hadoop.hive.conf.LoopingByteArrayInputStream@716a7124, file:/etc/quark1/conf/hive-site.xml, file:/etc/quark1/conf/hive-site.xml, file:/etc/quark1/conf/hive-site.xml
复制
table_size
函数语法 返回类型 描述
table_size(
  database_name,
  table_name,
  table_location,
  input_format
)
复制

Double

计算表的总大小,包括数据和元数据在内,单位为字节。

参数说明

  • database_name:数据库名。

  • table_name:要计算大小的表名,暂不支持查询 holodesk 表和外表(如 CSV)的表大小。

  • table_location:表在 HDFS 上的存储位置。

  • input_format:输入格式。

您可以通过 SELECT table_location,input_format from system.tables_v WHERE table_name='tablename 语句来查询表的存储位置和输入格式信息。

使用示例:

计算 test 表的总大小。

SELECT
  table_size(
    'demodata',
    'test',
    'hdfs://nameservice1/quark1/user/hive/warehouse/demodata.db/hive/test',
    'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
  ) AS result;
复制

返回示例:

+---------+
| result  |
+---------+
| 621 B   |
+---------+
复制