hive里的视图

  Hive视图是一种无关底层存储的逻辑对象。视图中的数据是SELECT查询返回的结果。在视图选定后才会开始执行SELECT查询。

需要注意的是,视图是只读的,不能向视图中插入或是加载数据。

  下面是一个创建并使用视图的例子:

create view group_by_year_vw
as
select year,count(*) as video_ct from videos group by year;
select * from group_by_year_vw;

  视图通常被用作将数据发布给外部客户端的抽象层。视图可以使用稳定的公开的列名和数据类型来创建。

  视图可以允许在不影响下游数据消费者的情况下修改内部的表结构。

  一定要理解,创建视图,是基于表来创建得到视图的。

步骤一:创建一个测试表

create table test(id int,name string);
desc test;
结果是
id int
name string

步骤二:基于表 test 创建一个 test_view 视图

CREATE VIEW test_view(
id,
name_length
)
AS SELECT id,length(name) FROM test;

步骤三:查看 test_view 视图属性

DESC test_view;

步骤四:查看视图结果

SELECT * FROM test_view;

时间: 2024-08-05 19:30:14

hive里的视图的相关文章

hive里的优化和高级功能

在一些特定的业务场景下,使用hive默认的配置对数据进行分析,虽然默认的配置能够实现业务需求,但是分析效率可能会很低. Hive有针对性地对不同的查询进行了优化.在Hive里可以通过修改配置的方式进行优化. 以下,几种方式调优的属性. 1.列裁剪 在通过Hive读取数据的时候,并不是所有的需求都要获取表内的所有的数据.有些只需要读取所有列中的几列,而忽略其他列的的数据. 例如,表Table1包含5个列Column1.Column2.Column3.Column4.Column5.下面的语句只会在

hive里的分区

为了对表进行合理的管理以及提高查询效率,Hive可以将表组织成"分区". 分区是一种根据"分区列"(partition column)的值对表进行粗略划分的机制.Hive中的每个分区对应数据库中相应分区列的一个索引,每个分区对应着表下的一个目录,在HDFS上的表现形式与表在HDFS上的表现形式相同,都是以子目录的形式存在. 一个表可以在多个维度上进行分区,并且分区可以嵌套使用.建分区需要在创建表时通过PARTITIONED BY子句指定,例如: CREATE TAB

hive里的扩展接口

hive里的扩展接口,主要包括CLI(控制命令行接口).Beeline和JDBC等方式访问Hive. CLI和Beeline都是交互式用户接口,并且功能相似,但是语法和实现不同. JDBC是一种类似于编程访问关系型数据库的编程接口. 1.CLI 在UNIX shell环境下输入hive命令可以启用Hive CLI.在CLI下,所有的Hive语句都以分号结束. 在CLI下可以对一些属性做出设置,像是设置底层MapReduce任务中Reducer的实例数.这些信息都详细地记录在在线Hive语言手册中

在Code first中使用数据库里的视图

如果想在Code first中使用数据库里的视图 (不管你出于什么原因),目前的方法有2种. 一.使用Database.SqlQuery<T>("查询语句"),如: var query = db.Database.SqlQuery<ReplyStatusViewModel>("SELECT * FROM dbo.vReplyStatus") 然后在vReplyStatus视图的基础上进行各种查询: var qqo = query.Where(

查找hive创建的视图

目前版本的hive 一般都支持视图操作,但是只是支持逻辑视图,不支持物理视图,所以在hive shell下创建的视图在hive的数据仓库目录中没有,但是可以在Mysql的元数据库中看到. 比如下hive 创建一个视图 :name_classnum 如何查找: 1 首先确定hive使用mysql存储元数据(参考hive,mysql安装的博客) 2 链接mysql 3. 使用hive  use hive; 4 显示tbls的详细信息 5. 查找视图: 至此 视图查找到了. 根据上图,可以看到TBLS

Hive里的分区和分桶再谈

 分桶是细粒度的,分桶是不同的文件. 分区是粗粒度的,即相当于,表下建立文件夹.分区是不同的文件夹. 桶在对指定列进行哈希计算时,会根据哈希值切分数据,使每个桶对应一个文件. 里面的id是哈希值,分过来的. 分桶,一般用作数据倾斜和数据抽样方面.由此,可看出是细粒度. Hive 中创建分区表没有什么复杂的分区类型(范围分区.列表分区.hash 分区,混合分区等).分区列也不是表中的一个实际的字段,而是一个或者多个伪列.意思是说,在表的数据文件中实际并不保存分区列的信息与数据. 注意:普通表(外部

iOS开发&gt;学无止境 - Cell 里的视图控制器

在每个 iOS 开发者的生涯中,总有一些时候想把一个视图控制器放到一个 tableView 的 cell 中.因为这是一个有用的工具去处理我在视图控制器中的各种复杂视图及繁琐操作,而且很容易想象的一种情况是你想要将一些视图堆在另一些视图上面.另一个常见的应用场景是将 collectionView 放在 cell 里.理想情况下里面的 collectionView 拥有它自己的控制器,这样外面的 tableView 控制器不会受到关联视图和每个 collection view cell 数据的影响

yii框架里DetailView视图和GridView的区别

1,首先从语义上分析 DetailView是数据视图,用于显示一条记录的数据,相当于网页中的详情页 GridView是网格视图,用于显示数据表里的所有记录,相当于网页里的列表页 2.用法上的区别 首先,DetailView用于详情页,GridView用于列表页 其次,GridView中自定义属性的列可以用方法,即可以这样写: 可以直接引入方法,用来显示数据,但是DetailView是不行的,DetailView如果直接写方法,会报错,变通的办法是,在同一页面写一个方法,然后去调用,即可以这样来写

为什么Hive里,要用mysql?

想说的是,hive只是个工具,包括它的数据分析,依赖于mapreduce,它的数据管理,依赖于外部系统. metastore_db,是在哪目录下运行,在哪里产生数据. 由此可见,你在哪路径下,执行hive指令,就在哪路径下生成metastore_db.建一套数据库文件,这样是极其不合适的,公司里每个人若不一样,则会显得非常混杂.导致员工之间无法公用交流. 为此,需公用的,mysql. 这也是为什么,在安装hive时,也需要配置mysql了.