HIVE VIEW 视图

Views to Reduce Query Complexity -- 视图减少复杂查询


FROM (
  SELECT * FROM people JOIN cart
    ON (cart.people_id=people.id) WHERE firstname='john'
) a SELECT a.lastname WHERE a.id=3;

CREATE VIEW shorter_join AS
SELECT * FROM people JOIN cart
ON (cart.people_id=people.id) WHERE firstname='john';

SELECT lastname FROM shorter_join WHERE id=3;

View Odds and Ends


CREATE VIEW IF NOT EXISTS shipments(time, part
COMMENT 'Time and parts for shipments.'
TBLPROPERTIES ('creator' = 'me')
AS SELECT ...;

ALTER VIEW shipments SET TBLPROPERTIES ('created_at' = 'some_timestamp');


### 如何在Apache Hive创建视图 在Apache Hive中,视图是一种虚拟表,其内容由查询定义。视图不存储数据;相反,在访问视图时执行定义它的查询语句[^1]。 #### 创建简单视图创建一个简单的视图,可以使用`CREATE VIEW`命令。下面是一个基本的例子: ```sql CREATE VIEW IF NOT EXISTS my_view AS SELECT column_name(s) FROM table_name; ``` 此命令会基于指定的列和表创建名为`my_view`的新视图。如果同名视图已存在,则不会覆盖它,因为指定了`IF NOT EXISTS`选项。 #### 带条件过滤器的复杂视图 当需要更复杂的逻辑来构建视图时,可以在`CREATE VIEW`语句内加入更多筛选条件或连接多个表格。例如: ```sql CREATE VIEW filtered_page_views AS SELECT * FROM page_views WHERE date >= '2008-03-01' AND date <= '2008-03-31' AND referrer_url LIKE '%xyz.com%'; ``` 这段SQL代码将创建一个新的视图`filtered_page_views`,该视图仅包含来自特定域名(`xyz.com`)且日期范围限定于2008年三月的数据记录[^2]。 #### 使用LATERAL VIEW扩展功能 对于某些高级场景,比如解析URL字符串中的组件,可以通过结合`LATERAL VIEW`子句实现更加灵活的操作: ```sql CREATE VIEW url_components AS SELECT t.*, b.host, b.path, b.query, b.query_id FROM src t LATERAL VIEW parse_url_tuple(t.fullurl,'HOST','PATH','QUERY','QUERY:id') b AS host, path, query, query_id; ``` 这里展示了如何通过调用UDF函数`parse_url_tuple()`并将其结果作为额外字段附加到原始行上来构造新的视图表结构[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值