getUserTableAccessRecords

语法

getUserTableAccessRecords([from=0], [to])

参数

from 整型或时间类型,表示查询的起始时间点。默认值为0,表示查询从1970.01.01零点开始的记录。

to 整型或时间类型,表示查询的结束时间点。默认为空,表示查询到目前时间点为止的记录。

from 必须小于等于 to

详情

从已保存记录了分布式表查询信息的日志中,提取指定时间段内的查询日志。返回一个表。含以下字段:

  • timestamp:NANOTIMESTAMP 类型的时间戳。如果 type 是 sql,则这里记录开始执行 SQL 的时间戳;如果 type 是 rowCount 或 memUsage,则这里记录的是读出数据的时间戳。

  • rootQueryId:SQL 查询任务的 ID,是分布式 SQL 查询任务的唯一标识符。一个分布式查询会按分区拆分为多个 SQL 子查询。该 ID 为分布式查询及其拆分出的子查询的根 ID。

  • userid:用户名。

  • database:数据库名。

  • table:表名。

  • type:记录的信息类型,包括3类:sql, rowCount, memUsage。

  • value:

    • 当类型为 sql 时,为 SQL 查询任务的执行次数。该值总是为1。

    • 当类型为 rowCount 时,为 SQL 执行时存储引擎返回的表的行数。

    • 当类型为 memUsage 时,为查询结果占用的内存大小。单位是字节。

  • script:当类型为 sql 时,记录 SQL 脚本,其他类型则为空字符串。

该函数仅限管理员在数据节点上调用。

例子

getUserTableAccessRecords(2023.12.30T09:18:35.894150296,2023.12.30T09:18:35.894538439)
# output
timestamp	                    rootQueryId	                         userId       database	    table     type	value    script
2023.12.30T09:18:35.894150296	e892855b-7843-1492-0140-a85810662006	admin	dfs://rangedb	pt	sql	1	select count(x) as count_x from pt
2023.12.30T09:18:35.894497304	e892855b-7843-1492-0140-a85810662006	admin	dfs://rangedb	pt	rowCount   43	
2023.12.30T09:18:35.894501600	e892855b-7843-1492-0140-a85810662006	admin	dfs://rangedb	pt	memUsage   516