导航:首页 > 数据分析 > 外部表数据放在哪里

外部表数据放在哪里

发布时间:2023-01-20 18:22:06

㈠ hive外部表分区

内部表:
数据由hive自身管理 存储在hive指定的hdfs目录中 删除会删除数据本身
外部表(external):
数据存储在用户使用location关键字指定的hdfs目录中 hive中仅存储一份元数据 删除操作不会影响到hdfs中原本的数据文件

将hdfs中文件存储在不同的目录下 hive查询时仅查询指定目录下的数据 避免扫描全部文件 可以极大的加速查询 hive支持静态分区和动态分区
静态分区由用户指定分区所在的目录 而动态分区由表中的某一个字段来决定每条数据所在的分区

创建了一个bill表其中包含三个业务字段
partitioned by (day int) 指定了day为分区标志 在查询时使用 where day = 20201010 来指定分区

为bill表添加一个分区目录20201010 当指定day = 20201010时 将在这个分区查询数据
随日期增加 需要手动将对应日期的目录作为分区添加到bill中 可以使用crontab 每天自动执行一次添加分区的操作

㈡ hive中创建外部分区表使用location是指定数据存放位置还是指数据来源

指定数据存放位置,如果没有指定,就会在hdfs的默认位置建立表文件。

Hive 没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织 Hive 中的表,只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。

Hive 中所有的数据都存储在 HDFS 中,Hive 中包含以下数据模型:表(Table),外部表(External Table),分区(Partition),桶(Bucket)。

(2)外部表数据放在哪里扩展阅读:

Hive中的表和数据库中的表在概念上相似。 每个表在Hive中都有一个对应的目录来存储数据。

例如,一个表pvs,其在HDFS中的路径为:/ wh / pvs,其中wh是在 hive-site.xml 中由 ${hive.metastore.warehouse.dir} 指定的数据仓库的目录,所有表数据( 不包括外部表)存储在此目录中。

Partition对应于数据库中的 Partition 列的密集索引,但是Hive中的Partition的组织方式与数据库中的完全不同。 在Hive中,表中的Partition与表下的目录相对应,所有Partition的数据都存储在相应的目录中。

㈢ 外部表的外部表的特性

(1) 位于文件系统之中,按一定格式分割,如文本文件或者其他类型的表可以作为外部表。
(2) 对外部表的访问可以通过SQL语句来完成,而不需要先将外部表中的数据装载进数据库中。
(3) 外部数据表都是只读的,因此在外部表不能够执行DML操作,也不能创建索引。
(4) ANALYZE语句不支持采集外部表的统计数据,应该使用DMBS_STATS包来采集外部表的统计数据。
(5) 可以查询操作和连接。可以并行操作。
(6) 数据在数据库的外部组织,是操作系统文件。
(7) 操作系统文件在数据库中的标志是通过一个逻辑目录来映射的。

㈣ 生产环境中为什么建议使用外部表

因为外部表不会加载数据到hive,减少数据传输、数据还能共享。hive不会修改数据,所以无需担心数据的损坏,删除表时只删除表结构、不删除数据。

生产环境是正式提供对外服务的,一般会关掉错误报告,打开错误日志,是最重要的环境。部署分支一般为master分支。

(4)外部表数据放在哪里扩展阅读:

注意事项:

位于文件系统之中,按一定格式分割,如文本文件或者其他类型的表可以作为外部表。对外部表的访问可以通过SQL语句来完成,而不需要先将外部表中的数据装载进数据库中。

外部数据表都是只读的,因此在外部表不能够执行DML操作,也不能创建索引。ANALYZE语句不支持采集外部表的统计数据,应该使用DMBS_STATS包来采集外部表的统计数据。

在创建外部表的时候,并没有在数据库中创建表,也不会为外部表分配任何的存储空间。创建外部表只是在数据字典中创建了外部表的元数据,以便对应访问外部表中的数据,而不在数据库中存储外部表的数据。简单地说,数据库存储的只是与外部文件的一种对应关系,如字段与字段的对应关系。

㈤ 数据库中的数据到底是放在哪了

access有文件
oracle,sql的话,也有个数据文件和日志文件
还有其他的都有文件
fox是一个个的文件

㈥ Hive内部表、外部表、分区表、桶表概述

  Hive是基于Hadoop的一个数据仓库,可以将结构化的数据文件映射为一张表,并提供类sql查询功能,Hive底层将sql语句转化为maprece任务运行。Hive是一个数据仓库,不支持行级插入、更新以及删除操作。Hive共有四种表,分别是内部表、外部表、分区表和桶表。

 1. 内部表

  内部表有时也被称为管理表。这种表会控制着数据的生命周期,Hive默认情况下会将这些表的数据存储在由配置项hive.metastore.warehouse.dir所定义的目录的子目录下。当我们删除内部表时,同时会删除这个表中的数据。内部表不方便与其他工具共享数据。

  创建一个内部表可以用如下语句:

 2. 外部表

  外部表指向特定目录的一份数据,Hive并不对该数据具有所有权。当删除表时,不会删除该目录下的数据,数据可以被多个工具共享。即外部表只是对数据进行逻辑管理,创建一个外部表需要用external关键字:

 3. 分区表

   分区表是一种内部表。分区表通过指定一个或多个partition key,决定数据存放方式,进而优化数据的查询。每个表可以指定多个partition key,每个partition在hive中以文件夹的形式存在。如下所示是对数据的年份进行分区,每个年份对应一个文件夹,年份相同的数据会放到同一个文件夹下:

  创建分区表时要注意开启允许动态分区设置,必要的时候还需要设置允许创建的最大分区数。

  创建分区表可以用以下语句:

 4. 桶表

  桶表也是内部表,桶表是对某一列的数据进行哈希取值以将数据打散,然后放到不用文件中存储。在Hive分区表中,分区中的数据量过于庞大时,建议使用桶。在分桶时,对指定字段的值进行hash运算得到hash值,并使用hash值除以桶的个数取余进行分桶。分桶后的查 询效率比分区后的查询效率更高。下图是按照年份分区,再按id进行分桶后的结构:

  建表语句:

  end!

㈦ 有个疑问,比如Mysql数据库,他存的数据到底放在哪

mysql数据库会在硬盘上建立相应的各种数据文件,然后会把数据分文别类的放到各个数据文件上。至于文件的位置,当然是在你安装的硬盘上。
主要分为几类文件

(1)存放表结构的frm文件:文件名与表名相同,每个表对应一个同名frm文件
(2)根据数据库管理方式的不同(myisam和innodb两种方式)设置不同的文件
myiasm:
MYD文件:表数据文件
.MYI文件:索引文件
.log文件:日志文件
innodb:
InnoDB数据库文件(即InnoDB文件集):
ibdata1、ibdata2等:系统表空间文件,存储InnoDB系统信息和用户数据库表数据和索引,所有表共用
ibd文件:单表表空间文件,每个表使用一个表空间文件(file per table),存放用户数据库表数据和索引
日志文件: ib_logfile1、ib_logfile2
浙西文件都存在具体的存储器中,这个存储器就是硬盘(就算在云上,其实也是在网络存储上)。
具体位置跟你安装的数据库的位置有关。

阅读全文

与外部表数据放在哪里相关的资料

热点内容
激情戏大电影 浏览:175
女主遭受妇刑小说 浏览:413
成龙哪部电影jj露出来了 浏览:691
武汉城市职业学院工业网络技术 浏览:310
韩围爱情动漫电影推荐 浏览:536
国产跟狗有关的电影 浏览:991
香港鬼片女警照镜子被附身 浏览:974
韩国电影儿子喜欢风尘女 浏览:555
arcgisjs移动 浏览:467
香港三点全漏电影 浏览:470
神偷奶爸1中英文字幕 浏览:139
可以搜文件也可以读的软件 浏览:860
韩国电影一个男的当鸭的叫什么 浏览:580
appconfig配置文件连接数据库 浏览:732
正宗三级武侠电影 浏览:313
宅男看片在线 浏览:240
有没有直接可以看的网址 浏览:857
主角穿越搞共产革命的小说 浏览:973
linuxcd到根目录 浏览:816
一个女人和两个男人诈骗胖男孩的韩国电影 浏览:259

友情链接