MAPKEYS

返回任何 VMap 数据中存在的虚拟列(和值)。此转换函数需要 OVER(PARTITION BEST) 子句。

语法

MAPKEYS (VMap-data)

参数

VMap-data

任何 Vmap 数据。Vmap 的存在形式可以是:

  • Flex 表的 __raw__

  • 从映射函数返回的数据(示例) MAPLOOKUP

  • 其他数据库内容

max_key_length
__raw__ 列中,指定函数可以返回的键的最大长度。长度超过 max_key_length 的键会导致查询失败。默认为 VMap 列长度和 65K 中较小的值。

示例

确定映射数据的虚拟列数

本例显示如何创建查询,使用 over(PARTITION BEST) 子句和 flex 表、 darkdata ,查找映射数据的虚拟列数。使用 JSON tweet 数据填充表。

=> SELECT COUNT(keys) FROM (SELECT MAPKEYS(darkdata.__raw__) OVER(PARTITION BEST) FROM darkdata) AS a;
 count
-------
   550
(1 row)

查询映射中所有虚拟列的有序列表

本例显示您查询映射中所有虚拟列的有序列表时,返回数据的片段。

=> SELECT * FROM (SELECT MAPKEYS(darkdata.__raw__) OVER(PARTITION BEST) FROM darkdata) AS a;
    keys
-------------------------------------
 contributors
 coordinates
 created_ at
 delete.status.id
 delete.status.id_str
 delete.status.user_id
 delete.status.user_id_str
 entities.hashtags
 entities.media
 entities.urls
 entities.user_mentions
 favorited
 geo
 id
.
.
.
 user.statuses_count
 user.time_zone
 user.url
 user.utc_offset
 user.verified
(125 rows)

指定 MAPKEYS 可以返回的键的最大长度

=> SELECT MAPKEYS(__raw__ USING PARAMETERS max_key_length=100000) OVER() FROM mapper;
    keys
-------------
 five_Map
 four
 one
 six
 three_Array
 two
(6 rows)

另请参阅