数据类型
读写模式
数据库加载数据分为读模式和写模式,hive属于读模式。
读模式:加载数据时不对数据合法性进行检验,查询时不合法的数据显示为null,优点是加载数据速度快适合大数据。
写模式:加载数据时对数据合法性进行检验。优点是不必担心数据库中的数据不合法,传统的数据库如mysql,oracle就是此种模式。
例1,创建一个hive表t1并导入数据
创建一张表
创建一个文件
导入数据并显示
将文件t1的数据导入hive中的表t1,实际上文件中的每一行数据都只导入到了t1表的id字段中,而name和online字段并未导入数据这是因为数据不合法没有指定分隔符,但是hive在加载数据时为读模式所以它并未检验合法性,而显示时用null来填充name和online字段。
分隔符
之前在上一节中介绍hive在创建表时必须指定行列分隔符,不指定则使用默认的分隔符,默认的行分隔符为’\n’,列分隔符为’\001’这是一个不可见字符。
例2:创建一个hive表t2并指定分隔符然后导入数据
创建一个文件包含创建语句然后在hive中执行
[root@shb01 data]# more t2_hql.hql
create table t2(
id string,
name string,
online boolean)
row format delimited
fields terminated by '\t'
lines terminated by '\n';
hive> source /usr/local/data/t2_hql.hql;
OK
Time taken: 0.116 seconds
创建一个数据文件
[root@shb01 data]# more t2_data