PostgreSQL - 外部表、分佈鍵、父子表

襲冷發表於2015-01-11
一、外部表
    在插入的資料較大時,可以通過外部表的方式,快速將資料'入庫' 

    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);




相關文章