一、Impala组件插入数据
1、连接:
impala-shell -i "10.7.67.103:21000" -u edq -q "CREATE DATABASE IF NOT EXISTS SHDATA"
## 插入单条数据
INSERT OVERWRITE TABLE TABLEINFO.TD_IMPALA_TYPE VALUES(CAST("BIGINT" AS VARCHAR(20)),
CAST("BIGINT" AS VARCHAR(20)));
## 插入多条数据,使用逗号分开
INSERT OVERWRITE TABLE TABLEINFO.TD_IMPALA_TYPE VALUES(CAST("BIGINT" AS VARCHAR(20)),
CAST("BIGINT" AS VARCHAR(20))),(CAST("BIGINT" AS VARCHAR(20)), CAST("BIGINT" AS VARCHAR(20)));
2、静态插入指定分区
INSERT OVERWRITE TABLE TDSHDATA.IDA_CD_INDIV_TXN_AMT_STAS
PARTITION(TXN_DT = CAST('2017-01-01' AS ARCHAR(50)))
SELECT AGMT_BELONG_ORG_NUM,BRIF_INFO_CD,BRIF_INFO_DESC,TXN_NET_AMT
FROM DSDATA.IDA_CD_INDIV_TXN_AMT_STAS;
3、添加分区
ALTER TABLE TDSHDATA.IDA_CD_INDIV_TXN_AMT_STAS
ADD IF NOT EXISTS PARTITION(TXN_DT = CAST('2017-01-01' AS VARCHAR(50)));
4、动态分区插入数据
INSERT OVERWRITE TABLE TDSHDATA.IDA_CD_INDIV_TXN_AMT_STAS PARTITION(TXN_DT)
SLECT AGMT_BELONG_ORG_NUM,BRIF_INFO_CD,BRIF_INFO_DESC,TXN_NET_AMT,TXN_DT
FROM TDSDATA.IDA_CD_INDIV_TXN_AMT_STAS;
5、清空表数据
TRUNCATE TABLE IF EXISTS TABLENAME;
6、refresh刷新分区信息 – 注:分区规范必须包含所有分区键列。
创建分区表:
CREATE TABLE IF NOT EXISTS TDSHDATA.T03_AGREEMENT (`AGMT_NUM` CHAR(40) COMMENT '协议号'
,`AGMT_MODIFIER_NUM` CHAR(8) COMMENT '协议修饰符'
,`AGMT_CATEG_CD` CHAR(2) COMMENT '协议类别代码'
,`ETL_PROC_DT` TIMESTAMP COMMENT 'ETL首次插入日期')
-- COMMENT '协议表' (Hive的写法,写在这里声明表的中文名)
PARTITIONED BY(`AGMT_SRC_SYS_ID` CHAR(4) COMMENT '协议来源系统编号')
-- COMMENT '协议表' (Impala的写法,写在这里声明表的中文名)
STORED AS parquet;
刷新表信息:
REFRESH TABLENAME PARTITION (PARTITION_COLUMN_NAME = CAST('VALUES' AS TYPE));
7、可以设置同一张表的不同分区的文件格式
CREATE TABLE TEST(NAME STRING) PARTITIONED BY(YEAR SMALLINT);
ALTER TABLE TEST ADD PARTITION(YEAR=2012); --- Text Format;
ALTER TABLE TEST ADD PARTITION(YEAR=2013);
ALTER TABLE TEST PARTITION(YEAR=2013) SET FILE

最低0.47元/天 解锁文章
2662

被折叠的 条评论
为什么被折叠?



