外部表

Hive 内部表和外部表的区别

眉间皱痕 提交于 2020-03-19 19:11:57
3 月,跳不动了?>>> 内部表和外部表区别 未被 external 修饰的表是内部表(managed table ),被 external 修改的是外部表(external table ); 内部表的数据由Hive自身管理,外部表由HDFS管理; 内部表的数据存储位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己指定(如果没有 LOCATION),Hive将在HDFS上的 /user/hive/warehouse/文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里); 删除内部表会直接删除元数据(metadata)及存储数据,删除外部表仅仅会删除元数据,HDFS上的文件并不会删除,Hive默认创建的是内部表。 对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则修改修复。 MSCK REPAIR TABLE table_name 创建内部表 create table test.t1( id int ,name string ,hobby array<string> ,add map<string,string> ) row format delimited fields terminated by ',' collection items

postgresql9.5 物化视图测试

喜你入骨 提交于 2020-03-08 14:29:18
copyright http://cupegraf.com/ 视图是指数据库只存储定义该视图的查询语句(内容是查询时产生),而物化视图是一个其查询语句查询后的内容并存储的视图(内容是创建物化视图刷新视图时产生,数据可修改。独立)。因为物化视图是视图的一个物化表结构,但是里面的数据是创建时刷新查询到额数据,当原数据更新修改时如果物化视图的表没有更新会造成数据的不一致。从9.4开始增加增量刷新,9.5的版本中支持物化视图也支持索引,修改表空间,指定用户访问权限 postgresql9.5物化视图测试: search package: sudo apt-cache search dtrace-* dtrac && readline install :sudo apt-get install systemtap-sdt-dev libssl-dev libpam-dev libxml2-dev libxslt-dev libtcl8.4 libperl-dev python-dev ./configure --prefix=/home/pg5/pgsql9.5-devel --with-port=5433 --with-perl --without-tcl --with-python --with-openssl --with-pam --without-ldap --with

MySQL查询语句中的IN 和Exists 对比分析

烂漫一生 提交于 2020-03-08 00:54:48
背景介绍 最近在写SQL语句时,对选择IN 还是Exists 犹豫不决,于是把两种方法的SQL都写出来对比一下执行效率,发现IN的查询效率比Exists高了很多,于是想当然的认为IN的效率比Exists好,但本着寻根究底的原则,我想知道这个结论是否适用所有场景,以及为什么会出现这个结果。 网上查了一下相关资料,大体可以归纳为:外部表小,内部表大时,适用Exists;外部表大,内部表小时,适用IN。那我就困惑了,因为我的SQL语句里面,外表只有1W级别的数据,内表有30W级别的数据,按网上的说法应该是Exists的效率会比IN高的,但我的结果刚好相反!! “没有调查就没有发言权”!于是我开始研究IN 和Exists的实际执行过程,从实践的角度出发,在根本上去寻找原因,于是有了这篇博文分享。 实验数据 我的实验数据包括两张表:t_author表 和 t_poetry表。 对应表的数据量: t_author表,13355条记录; t_poetry表,289917条记录。 对应的表结构如下: CREATE TABLE t_poetry ( id bigint(20) NOT NULL AUTO_INCREMENT, poetry_id bigint(20) NOT NULL COMMENT '诗词id', poetry_name varchar(200) NOT NULL COMMENT

hive sql遇到的问题

a 夏天 提交于 2020-03-06 00:52:46
记录下工作中,使用hive sql遇到的问题,和大家共享。 某个字段条件过多,查询条件失效 select * from login where dt='20130101' and (ver !='3.1' or ver !='3.2' or ver != '4.0' or ver != '5.2'); 备注:感谢 杨庆荣 的指导,这里笔误,其实修改为如下的sql,功能可以实现,该bug纯属作者的错误: select * from login where dt='20130101' and (ver !='3.1' and ver !='3.2' and ver != '4.0' and ver != '5.2'); 这个语句的目的是从一个用户登陆表中,查询20130101当天,版本不是3.1,3.2,4.0,5.2的登陆用户记录。但是,在hive0.90执行,最后返回的是20130101当天全部的登陆用户记录,后面的查询条件看起来是被忽略了。这里看起来同一个字段做这种多个!=或者=的条件查询,过多会失效。 于是修改了语句,如下: select * from login where dt=20130101 and !array_contains(split('3.1,3.2,4.0,5.2',','),ver); 语句如预期返回查询结果。 字查询中有多于一个where语句

Hive基本操作

99封情书 提交于 2020-03-01 21:16:44
一、概述 Hive是建立在HDFS之上的数据仓库,所以Hive的数据全部存储在HDFS上。 Hive的数据分为两部分,一部分是存在HDFS上的具体数据,一部分是描述这些具体数据的元数据信息, 一般Hive的元数据存在MySQL上 。 Hive是类SQL语法的数据查询、计算、分析工具,执行引擎默认的是MapReduce,可以设置为Spark、Tez。 Hive分内部表和外部表,外部表在建表的同时指定一个指向实际数据的路径(LOCATION),Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数 据会被一起删除,而外部表只删除元数据,不删除数据。 二、基本操作 hive命令行:$HIVE_HOME/bin./hive 2.1创建数据库 hive> create database IF NOT EXISTS test COMMENT ‘数据库注释’ LOCATION ‘/hivedata’ WITH DBPROPERTIES (‘creater’=‘k’,‘date’=‘20190229’); IF NOT EXISTS:如果不存在则创建 COMMENT:添加注释 LOCATION:指定hdfs存放路径 WITH DBPROPERTIES:添加自定义属性 2.2查询、删除数据库 hive

greenplum--数据导入和导出

拜拜、爱过 提交于 2020-02-28 04:53:51
insert 使用insert语句只适合加载少量的数据。 insert into tablename values ( val1 , val2 , . . . ) ; 或 insert into ( . . . ) select . . . from tabname copy copy命令可以将文件导入和导出,在gp中数据需要通过master节点,无法实现各个segment节点并行高效数据导入和导出。 使用copy命令的语法如下: --\h command :可以获取命令的语法 postgres = # \h copy Command: COPY Description: copy data between a file and a table Syntax: --将文件数据导入表,数据是追加到表中的 COPY table [ ( column [ , . . . ] ) ] FROM { 'file' | STDIN} [ [ WITH ] [ OIDS ] [ HEADER ] [ DELIMITER [ AS ] 'delimiter' ] [ NULL [ AS ] 'null string' ] [ ESCAPE [ AS ] 'escape' | 'OFF' ] [ NEWLINE [ AS ] 'LF' | 'CR' | 'CRLF' ] [ CSV [ QUOTE

command设计模式添加withData方法

断了今生、忘了曾经 提交于 2020-02-28 02:15:46
Spark SQL 在删除外部表时,本不能删除外部表的数据的。本篇文章主要介绍如何修改Spark SQL 源码实现在删除外部表的时候,可以带额外选项来删除外部表的数据。 本文的环境是我一直使用的 spark 2.4.3 版本。 1. 修改ANTLR4 语法文件 修改 SqlBase.g4文件中drop Table 相关语句,添加(WITH DATA)?, 修改完之后如下: DROP TABLE (IF EXISTS)? tableIdentifier (WITH DATA)? PURGE? #dropTable 因为,删除external表也不是必须的,所以添加WITH DATA 为可选项,跟 IF EXISTS类似。 2. 修改相关方法 2.1 修改SparkSqlParser.scala文件 /** * Create a [[DropTableCommand]] command. */ override def visitDropTable(ctx: DropTableContext): LogicalPlan = withOrigin(ctx) { DropTableCommand( visitTableIdentifier(ctx.tableIdentifier), ctx.EXISTS != null, ctx.VIEW != null, ctx.PURGE !=

如何将Hive与HBase整合联用

谁都会走 提交于 2020-02-27 09:32:21
版本说明: HDP:3.0.1.0 Hive:3.1.0 HBase:2.0.0 一、前言 之前学习 HBase 就有疑惑,HBase 虽然可以存储数亿或数十亿行数据,但是对于数据分析来说,不太友好,只提供了简单的基于 Key 值的快速查询能力,没法进行大量的条件查询。 不过,Hive 与 HBase 的整合可以实现我们的这个目标。不仅如此,还能通过 Hive 将数据批量地导入到 HBase 中。 <!--more--> Hive 与 HBase 整合的实现是利用两者本身对外的 API 接口互相通信来完成的,其具体工作交由 Hive 的 lib 目录中的 hive-hbase-handler-xxx.jar 工具类来实现对 HBase 数据的读取。 二、适用场景 Hive 与 HBase 整合的适用场景: **1、**通过 Hive 与 HBase 整合,可以将 HBase 的数据通过 Hive 来分析,让 HBase 支持 JOIN、GROUP 等 SQL 查询语法。 **2、**实现将批量数据导入到 HBase 表中。 三、依赖条件 需要有以下依赖,ambari 已经为我们做好了这一切: 已有 HDFS、MapReduce、Hive、Zookeeper、HBase 环境。 确保 Hive 的 lib 目录下有 hive-hbase-handler-xxx.jar

oracle体系-16.1-数据仓库

吃可爱长大的小学妹 提交于 2020-02-18 22:16:02
数据仓库 数据仓库以OLAP类型操作为主,这有别于OLTP类型的操作。 OLTP体现的实时的事务处理,OLAP可以看成是OLTP的历史数据“仓库” OLAP操作上主要体现为: 1)select查询汇总为主,对事务性要求较少 2)对数据快速复制、移动的需求 3)分布式查询的需求。 数据移动 概念 1)数据移动源于数据仓库,它是逻辑对象层面的数据复制, 数据移动有两种引擎: ①ORACLE_LOADER(Sqlload引擎) ②ORACLE_DATAPUMP(数据泵引擎) 两个引擎的区别是:ORACLE_DATAPUMP只能读取由它导出的文件,而ORACLE_LOADER可以读取任何它能解析的第三方文件格式。 ##一般ORACLE_LOADER引擎主要针对txt文件,ORACLE_DATAPUMP主要针对dmp文件 2)数据移动主要包含两个方面内容 ⑴创建外部表的方法,两种引擎都可以生成外部表数据。但用途和方法是不同的。 ①Sqlload引擎生成的外部表是文本格式的,支持跨平台的不同数据库间的数据移动。 ②Data pump引擎生成的外部表是二进制格式的。适用于Oracle 平台的数据库之间快速数据移动。 ⑵数据泵技术(expdp/impdp) 作为替代传统逻辑备份的导入导出,实现数据在逻辑层面的快速复制与恢复 Directory(目录)

大数据学习笔记35:Hive - 内部表与外部表

自古美人都是妖i 提交于 2020-02-04 07:02:35
文章目录 一、内部表 1、什么是内部表 2、创建与操作内部表 (1)创建park数据库 (2)在park数据库里创建student表 (3)在student表插入一条记录 (4)通过HDFS Explorer查看创建的数据库与表 二、外部表 1、什么是外部表 2、创建与操作外部表 (1)在本地创建user.txt文件 (2)将文件user.txt上传到HDFS的/data目录 (3)创建外部表data管理/data目录的数据文件 (3)查询外部表data的记录 来源: CSDN 作者: howard2005 链接: https://blog.csdn.net/howard2005/article/details/104152117