目錄
一、什麼是gp 可寫外部表?
創建可寫外部表時需要聲明WRITABLE。數據可以寫入到gpfdist或者可執行程序,不支持寫入本地文件。
- execute類型的外部數據URL格式是:EXECUTE ‘/var/load_scripts/get_log_data.sh’
- 其中execute指明瞭數據讀寫協議,/var/load_scripts/get_log_data.sh指定可執行程序。
- execute類型不僅支持讀取外部數據,同時也支持寫入外部數據。
- Greenplum外部表通過執行定義的外部執行程序:例如get_log_data.sh,和管道實現execute類型數據的讀寫。讀外部數據:將程序的標準輸出的作爲數據來源;向外部寫數據:將外部程序的標準輸入作爲數據表中的數據
二、實例
2.1 創建一個外部表,查看每個Segment上執行命令時所有的環境變量。創建外部表如下
=# create external web table exec_example(id int, name varchar(100), value text) EXECUTE 'env|xargs -I {} echo $GP_SEGMENT_ID={}' format 'TEXT' (DELIMITER '=') LOG ERRORS SEGMENT REJECT LIMIT 10 ROWS;
=# select * from exec_example limit 10;
id | name | value
----+-----------------------+--------------------------------------------
3 | GP_USER | gpadmin
3 | GP_HADOOP_CONN_JARDIR | lib//hadoop
3 | LC_MONETARY | C
3 | GP_CID | 0
3 | GPERA | 09877cd46d8003f1_201030102232
3 | GP_SEG_PG_CONF | /datap4/gpseg3/postgresql.conf
3 | SHELL | /bin/bash
3 | GPPERFMONHOME | /usr/local/greenplum-cc-web-2.0.0-build-32
3 | SSH_CLIENT | 10.5***3 28799 22
3 | LC_NUMERIC | C