一、外部表
在插入的数据较大时,可以通过外部表的方式,快速将数据'入库'
在分布式系统中,通过指定的分布键将数据分布式存储
建立父表,子表继承,数据插入到子表。查询所有时,只查询父表即可;查询子表,则可以减轻压力
在插入的数据较大时,可以通过外部表的方式,快速将数据'入库'
CREATE EXTERNAL TABLE EXT_LOG_INFO ( -- 外部表关键字 EXTERNAL
date integer, timestamp bigint, userid bigint, action integer, note character varying(255)
)
LOCATION( -- 通过 LOCATION 指定文件的路径
'gpfdist://192.168.59.1:8020/log_info_20141224.csv'
)
FORMAT 'TEXT' (DELIMITER '|'); -- 通过 DELIMITER 指定文件的字段的分隔符
DROP EXTERNAL TABLE EXT_LOG_INFO; -- 删除需要通过 EXTERNAL 关键字,查询不需要
二、分布键在分布式系统中,通过指定的分布键将数据分布式存储
CREATE TABLE LOG_INFO (
date integer, timestamp bigint, userid bigint, action integer, note character varying(255)
)
DISTRIBUTED BY (date, action); -- 通过 DISTRIBUTED BY (FIELD) 设置分布式键
三、父子表建立父表,子表继承,数据插入到子表。查询所有时,只查询父表即可;查询子表,则可以减轻压力
-- 创建父表
CREATE TABLE LOG_INFO(
date integer, timestamp bigint, userid bigint, action integer, note character varying(255)
)
DISTRIBUTED BY (date, action);
-- 创建子表
CREATE TABLE LOG_INFO_20141224() -- 子表自动继承父表的所有字段
INHERITS (LOG_INFO) -- 通过 INHERITS 指定继承的表
DISTRIBUTED BY (date, action);