外部表

ORACLE外部表总结

有些话、适合烂在心里 提交于 2020-04-07 20:13:12
ORACLE外部表总结 https://www.cnblogs.com/kerrycode/p/3894260.html 外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件。因此,建立外部表时不会产生段、区、数据块等存储结构,只有与表相关的定义放在数据字典中。外部表,顾名思义,存储在数据库外面的表。当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不能对外部表的内容进行修改(INSERT、UPDATE、DELETE操作)。不能对外部表建立索引。因为创建索引就意味着要存在对应的索引记录。而外部表其实在没有存储在数据库中。故在外部是无法建立索引的。如果硬要建立的话,则系统会提示“操作在外部组织表上不受支持”的错误提示。 Notice: 外部表是ORACLE 9i后引入的。 外部表特征 (1) 位于文件系统之中(一定要在数据库服务器中,而不是其它网络路径),按一定格式分割, 例如@#$等,文本文件或者其他类型的文件可以作为外部表。   (2) 对外部表的访问可以通过SQL语句来完成,而不需要先将外部表中的数据装载进数据库中。   (3) 外部数据表都是只读的,因此在外部表不能够执行DML操作,也不能创建索引。   (4) ANALYZE语句不支持采集外部表的统计数据,应该使用DMBS

Hive外部表\\内部表关联数据

自古美人都是妖i 提交于 2020-04-06 12:44:24
CREATE TABLE page_view( viewTime INT, userid BIGINT, page_url STRING, referrer_url STRING, ip STRING COMMENT 'IP Address of the User') COMMENT 'This is the page view table' PARTITIONED BY(dt STRING, country STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' COLLECTION ITEMS TERMINATED BY '\002' MAP KEYS TERMINATED BY '\003' STORED AS TEXTFILE; 这里创建了表page_view,有表的注释,一个字段ip的注释,分区有两列,分别是dt和country。 [ROW FORMAT DELIMITED]关键字,是用来设置创建的表在加载数据的时候,支持的列分隔符。 不同列之间用一个'\001'分割, 集合(例如array,map)的元素之间以'\002'隔开, map中key和value用'\003'分割。 [STORED AS file_format]关键字是用来设置加载数据的数据类型,默认是TEXTFILE,如果文件数据是纯文本,就是使用

hive内部表、外部表

强颜欢笑 提交于 2020-04-06 12:44:03
hive内部表、外部表区别自不用说,可实际用的时候还是要小心。 Hive的数据分为表数据和元数据,表数据是Hive中表格(table)具有的数据;而元数据是用来 存储 表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。下面分别来介绍。    一、Hive的数据存储   在 让你真正明白什么是hive 博文中我们提到Hive是基于Hadoop分布式文件系统的,它的数据存储在Hadoop分布式文件系统中。Hive本身是没有专门的数据存储格式,也没有为数据建立索引,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据。所以往Hive表里面导入数据只是简单的将数据移动到表所在的目录中(如果数据是在HDFS上;但如果数据是在本地文件系统中,那么是将数据复制到表所在的目录中)。   Hive中主要包含以下几种数据模型:Table(表),External Table(外部表),Partition(分区),Bucket(桶)(本博客会专门写几篇博文来介绍分区和桶)。   1、表:Hive中的表和关系型 数据库 中的表在概念上很类似,每个表在HDFS中都有相应的目录用来存储表的数据,这个目录可以通过${HIVE_HOME}/conf/hive-site.xml配置文件中的hive.metastore.warehouse.dir属性来配置

hive内部表&外部表介绍

泪湿孤枕 提交于 2020-04-06 12:43:40
未被external修饰的是内部表(managed table),被external修饰的为外部表(external table); 区别: 内部表数据由Hive自身管理,外部表数据由HDFS管理; 内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定; 删除内部表会直接删除元数据(metadata)及存储数据;删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除; 对内部表的修改会将修改直接同步给元数据,而对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;) 如下,进行试验进行理解 试验理解 创建内部表t1 create table t1( id int ,name string ,hobby array<string> ,add map<String,string> ) row format delimited fields terminated by ',' collection items terminated by '-' map keys terminated by ':' ; 2. 查看表的描述:desc t1; 装载数据(t1) 注:一般很少用insert (不是insert overwrite)语句

hive表与外部表的区别

╄→гoц情女王★ 提交于 2020-04-06 12:42:54
相信很多用户都用过关系型数据库,我们可以在关系型数据库里面创建表(create table),这里要讨论的表和关系型数据库中的表在概念上很类似。我们可以用下面的语句在Hive里面创建一个表: hive> create table wyp(id int, > name string, > age int, > tele string) > ROW FORMAT DELIMITED > FIELDS TERMINATED BY '\t' > STORED AS TEXTFILE; OK Time taken: 0.759 seconds 复制代码 这样我们就在Hive里面创建了一张普通的表,现在我们给这个表导入数据: hive> load data local inpath '/home/wyp/data/wyp.txt' into table wyp; Copying data from file:/home/wyp/data/wyp.txt Copying file: file:/home/hdfs/wyp.txt Loading data to table default.wyp Table default.wyp stats: [num_partitions: 0, num_files: 1, num_rows: 0, total_size: 67, raw_data_size

hive内部表与外部表区别

时光毁灭记忆、已成空白 提交于 2020-04-06 12:42:37
1.创建内部表与外部表的区别是什么? 2.external关键字的作用是什么? 3.外部表与内部表的区别是什么? 4.删除表的时候,内部表与外部表有什么区别? 5.load data local inpath '/home/wyp/data/wyp.txt' into table wyp;的过程是什么样子的? 6.磁盘,hdfs,hive表他们之间的过程是什么样子的?   相信很多用户都用过关系型数据库,我们可以在关系型数据库里面创建表(create table),这里要讨论的表和关系型数据库中的表在概念上很类似。我们可以用下面的语句在Hive里面创建一个表: hive> create table wyp(id int, > name string, > age int, > tele string) > ROW FORMAT DELIMITED > FIELDS TERMINATED BY '\t' > STORED AS TEXTFILE; OK Time taken: 0.759 seconds 复制代码 这样我们就在Hive里面创建了一张普通的表,现在我们给这个表导入数据: hive> load data local inpath '/home/wyp/data/wyp.txt' into table wyp; Copying data from file:/home

hive内部表、外部表、分区

房东的猫 提交于 2020-04-06 12:41:44
hive内部表、外部表、分区 内部表(managed table) 默认创建的是内部表(managed table),存储位置在 hive.metastore.warehouse.dir 设置,默认位置是 /user/hive/warehouse 。 导入数据的时候是将文件剪切(移动)到指定位置,即原有路径下文件不再存在 删除表的时候,数据和元数据都将被删除 默认创建的就是内部表 create table xxx (xx xxx) 外部表(external table) 外部表文件可以在外部系统上,只要有访问权限就可以 外部表导入文件时不移动文件,仅仅是添加一个metadata 删除外部表时原数据不会被删除 分辨外部表内部表可以使用 DESCRIBE FORMATTED table_name 命令查看 创建外部表命令添加一个external即可,即 create external table xxx (xxx) 外部表指向的数据发生变化的时候会自动更新,不用特殊处理 表分区(Partitioned table) 有些时候数据是有组织的,比方按日期/类型等分类,而查询数据的时候也经常只关心部分数据,比方说我只想查2017年8月8号,此时可以创建分区 使用 partioned by (xxx) 来创建表的分区,比方说 create table table_name ( id int,

Amazon Redshift数据迁移到MaxCompute

我是研究僧i 提交于 2020-03-30 12:12:49
Amazon Redshift数据迁移到MaxCompute Amazon Redshift 中的数据迁移到MaxCompute中经常需要先卸载到S3中,再到阿里云对象存储OSS中,大数据计算服务MaxCompute然后再通过外部表的方式直接读取OSS中的数据。 如下示意图: 前提条件 本文以SQL Workbench/J工具来连接Reshift进行案例演示,其中用了Reshift官方的Query editor发现经常报一些奇怪的错误。建议使用SQL Workbench/J。 下载Amazon Redshift JDBC驱动程序,推荐4.2 https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/1.2.16.1027/RedshiftJDBC42-1.2.16.1027.jar 在SQL Workbench/J中新建Drivers,选择下载的驱动程序jar,并填写Classname为 com.amazon.redshift.jdbc42.Driver。 配置新连接,选择新建的Driver,并复制JDBC url地址、数据库用户名和密码并勾选Autocommit。 如果在配置过程中发现一只connection time out,需要在ecs的vpc安全组中配置安全策略。具体详见: https://docs.aws

外部表External table

有些话、适合烂在心里 提交于 2020-03-23 04:27:02
外部表External table 把一个普通的文本格式的OS文件看作是Oracle数据库的外部表,Oracle可以象普通表一样进行select 操作,可以建视图,可以与其他进行连接等,但不能对其进行DML操作,即该表是只读的!(10g里可借此导出数据至平面dmp文件)。 External table和正规的表很相似,以下的几点需要注意: l 数据在数据库的外部组织,是操作系统文件。  l 操作系统文件在数据库中的标志是通过一个逻辑目录来映射的。     l 数据是只读的。(外部表相当于一个只读的虚表)  l 不可以在上面运行任何DML操作,不可以创建索引。   l 可以查询操作和连接,可以并行操作。 假设如下的两个平面文件     1.dat: 7301,SMITH,CLERK,7902,17-DEC-80,100,0,20 7402,ALLEN,SALESMAN,7698,20-FEB-81,250,0,30 7503,WARD,SALESMAN,7698,22-FEB-81,450,0,30 7504,JONES,MANAGER,7839,02-APR-81,1150,0,20  2.dat: 7611,MARTIN,SALESMAN,7698,28-SEP-81,1250,0,30 7612,BLAKE,MANAGER,7839,01-MAY-81,1550,0,30

外部表External table

妖精的绣舞 提交于 2020-03-23 04:26:48
把一个普通的文本格式的OS文件看作是Oracle数据库的外部表,Oracle可以象普通表一样进行select 操作,可以建视图,可以与其他进行连接等,但不能对其进行DML操作,即该表是只读的!(10g里可借此导出数据至平面dmp文件)。 External table和正规的表很相似,以下的几点需要注意: l 数据在数据库的外部组织,是操作系统文件。  l 操作系统文件在数据库中的标志是通过一个逻辑目录来映射的。     l 数据是只读的。(外部表相当于一个只读的虚表)  l 不可以在上面运行任何DML操作,不可以创建索引。   l 可以查询操作和连接,可以并行操作。 假设如下的两个平面文件     1.dat: 7301,SMITH,CLERK,7902,17-DEC-80,100,0,20 7402,ALLEN,SALESMAN,7698,20-FEB-81,250,0,30 7503,WARD,SALESMAN,7698,22-FEB-81,450,0,30 7504,JONES,MANAGER,7839,02-APR-81,1150,0,20  2.dat: 7611,MARTIN,SALESMAN,7698,28-SEP-81,1250,0,30 7612,BLAKE,MANAGER,7839,01-MAY-81,1550,0,30 7913,MILLER,CLERK