查询 Flex 视图

Flex 表通过应用查询重写提供动态架构的功能。使用 Flex 视图支持对 Flex 表的受限访问。与 Flex 表一样,您每次在内部对 Flex 表视图使用 select 查询,Vertica 均可调用 maplookup() 函数以返回有关所有虚拟列的信息。包含 __raw__ 列的任何 Flex 表或列式表均可发生这种查询行为。

以下示例演示了如何查询 Flex 视图:

  1. 创建 Flex 表。

    => CREATE FLEX TABLE twitter();
    
  2. 使用 fjsonparser 将 JSON 数据加载到 Flex 表中。

    => COPY twitter FROM '/home/dbadmin/data/flex/tweets_10000.json' PARSER fjsonparser();
    Rows Loaded
    -------------
    10000
    (1 row)
    
  3. 在 Flex 表 twitter 之上创建一个 Flex 视图,约束为 retweet_count>0

    => CREATE VIEW flex_view AS SELECT __raw__ FROM twitter WHERE retweet_count::int > 0;
    CREATE VIEW
    
  4. 查询该视图。显示前 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)