HADOOP表操作
1、hadoop简单说明
hadoop 数据库中的数据是以文件方式存存储。
一个数据表即是一个数据文件。
hadoop目前仅在LINUX 的环境下面运行。
使用hadoop数据库的语法即hive语法。
(可百度hive语法学习)
通过s_crt连接到主机。
使用SCRT连接到主机,输入hive命令,进行hadoop数据库操作。
2、使用hive 进行HADOOP数据库操作
3、hadoop数据库几个基本命令
show datebases; 查看数据库内容; 注意:hadoop用的hive语法用“;”结束,代表一个命令输入完成。
usezb_dim;
show tables;
4、在hadoop数据库上面建表;
a1: 了解hadoop的数据类型
int 整型; bigint 整型,与int 的区别是长度在于int;
int,bigint 相当于oralce的number型,但是不带小数点。
doubble 相当于oracle的numbe型,可带小数点;
string 相当于oralce的varchar2(),但是不用带长度;
a2: 建表,由于hadoop的数据是以文件有形式存放,所以需要指定分隔符。
create table zb_dim.dim_bi_test_yu3(id bigint,test1 string,test2 string)
row format delimited fields terminated by '\t' stored as textfile; --这里指定'\t'为分隔符
a2.1 查看建表结构: describe
A2.2 往表里面插入数据。
由于hadoop的数据是以文件存在,所以插入数据要先生成一个数据文件,然后使用SFTP将数据文件导入表中。
数据文件的生成,第一步,在EXECLE中按表的顺序依次放入要需要的数据,然后复制到UE编码器中生成文件,保存格式为TXT。
注意:文件中的分隔符必须与建表时指定的分隔一致。
保存文件时生成的格式。
A2.2.1: 通过4A打开SFTP 导入文件。
A2.2.2: 将数据文件写入表内。
load data local inpath'/home/mapr/yu_dim_test.txt' overwrite into table zb_dim.dim_bi_test_yu3;
A2.2.3查看导入的内容。
注意:由于hadoop是库的数据是以文件存的,与oarlce中的追加一条记录,删除一条记录不一样,只能再覆盖文件。
A2.2.4 : 将一个表的数据导入另一个表。
例:将zb_dim.dim_bi_test_yu3 表中的数据导入
zb_dim.dim_bi_yu_test_yu;
注意:源表必须有数据才能使用insert overwrite table 将源表的数据写入目标表。
insert overwrite table zb_dwa.dwa_s_m_acc_al_charge_"$v_prov"
partition(month_id='"$v_month"') SELECT
ER_ID, T.SERVICE_TYPE, '', '', SUM(T.BEF_FEE), 0, 0, SUM(T.FEE), '"$v_prov"' FROM
ZB_DWD.DWD_M_ACC_AL_CHARGE_"$v_prov" T WHERE T.MONTH_ID = '"$v_month"' GROUP BY ER_ID, T.SERVICE_TYPE(有分区)
insert overwrite table zb_dim. dim_bi_yu_test_yu SELECT id,test1,test2 FROM zb_dim.dim_bi_test_yu3
查看写入的内容:
A2.3: DROP 表。