查询 Flex 视图
Flex 表通过应用查询重写提供动态架构的功能。使用 Flex 视图支持对 Flex 表的受限访问。与 Flex 表一样,您每次在内部对 Flex 表视图使用 select
查询,Vertica 均可调用 maplookup()
函数以返回有关所有虚拟列的信息。包含 __raw__
列的任何 Flex 表或列式表均可发生这种查询行为。
以下示例演示了如何查询 Flex 视图:
-
创建 Flex 表。
=> CREATE FLEX TABLE twitter();
-
使用
fjsonparser
将 JSON 数据加载到 Flex 表中。=> COPY twitter FROM '/home/dbadmin/data/flex/tweets_10000.json' PARSER fjsonparser(); Rows Loaded ------------- 10000 (1 row)
-
在 Flex 表
twitter
之上创建一个 Flex 视图,约束为retweet_count>0
。=> CREATE VIEW flex_view AS SELECT __raw__ FROM twitter WHERE retweet_count::int > 0; CREATE VIEW
-
查询该视图。显示前 5 行。
=> SELECT retweeted,retweet_count,source FROM (select __raw__ from flex_view) t1 limit 5; retweeted | retweet_count | source -----------+---------------+-------------------------------------------------------------------------------------- F | 1 | <a href="http://blackberry.com/twitter" rel="nofollow">Twitter for BlackBerry®</a> F | 1 | web F | 1 | <a href="http://twitter.com/download/iphone" rel="nofollow">Twitter for iPhone</a> F | 23 | <a href="http://twitter.com/download/android" rel="nofollow">Twitter for Android</a> F | 7 | <a href="http://twitter.com/download/iphone" rel="nofollow">Twitter for iPhone</a> (5 rows)