Inceptor命令01-表介绍
• 表的划分-不同维度
1. 按 Inceptor的所有权 分类可分为:外部表(或简称为外表)和托管表(内表)。
2. 按 表的存储格式 分类可分为:TEXT表、ORC表、CSV表和Holodesk表。
3. 按表 是否分区 可分为:分区表和非分区表。
4. 按表 是否分桶 可分为:分桶表和非分桶表。
• 表的划分-所有权
• 托管表
CREATE TABLE 默认创建托管表。Inceptor对托管表有所有权——用 DROP 删除托管表时,Inceptor会将表中数据全部删除。
• 外表
外表用 CREATE EXTERNAL TABLE 创建,外表中的数据可以保存在HDFS的一个指定路径上(和LOCATION <hdfs_path> 合用)。Inceptor对外表没有所有权。用DROP 删除外部表时,Inceptor删除表在metastore中的元数据而不删除表中数据,也就是说 DROP 仅仅解除Inceptor对外表操作的权利。
• 存储格式
Ø TEXT表、ORC表、CSV表和Holodesk表
v TEXT表
文本格式的表,统计和查询性能都比较低,也不支持事务处理,所以通常用于将文本文件中的原始数据导入Inceptor中。针对不同的使用场景,用户可以将其中的数据放入ORC表或Holodesk表中。
Inceptor提供两种方式将文本文件中的数据导入TEXT表中:
1. 建外部TEXT表,让该表指向HDFS上的一个目录,Inceptor会将目录下文件中的数据都导入该表。(推荐)
2. 建TEXT表(外表内表皆可)后将本地或者HDFS上的一个文件或者一个目录下的数据 LOAD 进该表。这
种方式在安全模式下需要多重认证设置,极易出错,星环科技 不推荐 使用这个方式导数据。
v CSV表
CSV表的数据来源为CSV格式(Comma-Separated Values)的文件。文件以纯文本形式存储表格数据(数
字和文本),CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间
的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。
和TEXT表相似,CSV表常用于向Inceptor中导入原始数据,然后针对不同场景,用户可以将其中的数据放入ORC表或Holodesk表中
星环科技 不建议在任何计算场景中使用CSV表
v ORC表
ORC表即ORC格式的表。在Inceptor中,ORC表还分为ORC事务表和非事务表。
a. ORC事务表支持事务处理和更多增删改语法(INSERT VALUES/UPDATE/DELETE/MERGE),所
以如果您需要对表进行事务处理,应该选择使用ORC事务表。
b. ORC非事务表则主要用来做统计分析。
v Holodesk表
Holodesk表存储在内存或者SSD中(可以根据您的需要设置),同时,星环科技为其提供了一系列优化工
具,使得在Holodesk表上进行大批量复杂查询能达到极高的性能。所以,如果您的数据量特别大,查询
非常复杂,您应该选择使用Holodesk表。
Ø Inceptor与Oracle的数据类型对应表
Oracle Inceptor
CHAR Char
VARCHAR Varchar2
NCHAR Char
Varchar2 Varchar2
NVarchar2 Varchar2
Number(p,s) Number(p,s)
Number Number
Number(p) Number(p)
Decimal Decimal
Bit Boolean
Boolean Boolean
SmallInt Decimal(38,0)
Integer Decimal(38,0)
Long Binary
Long Raw Binary
Raw Binary
Float N/A,可用Decimal(p,s)代替
BinaryFloat Float
Double N/A,可用Decimal(p,s)代替
BinaryDouble Double
CLOB CLOB
NCLOB CLOB
BLOB BLOB
BFile N/A. 可以用Binary代替使用
Date Date
Timestamp Timestamp
Timestamp With Timezone N/A
Timestamp with Local Timezone N/A
Interval Year To Month Interval Year To Month
Interval Day To Second Interval Day To Second
Struct Struct
Array Array
RowId N/A
URowId N/A