杭州公司網(wǎng)站設(shè)計網(wǎng)絡(luò)營銷的特點是什么?
外部表錯誤數(shù)據(jù)
?創(chuàng)建外部Web表?
????????外部Web表允許數(shù)據(jù)庫像處理常規(guī)數(shù)據(jù)表一樣處理動態(tài)數(shù)據(jù)源。由于Web表數(shù)據(jù)可以在查詢運行時更改,因此數(shù)據(jù)無法重新掃描。CREATE EXTERNAL WEB TABLE建立一個外部表的定義。你可以定義基于命令或基于URL的外部Web表。定義形式是不同的: 不能將基于命令的和基于URL的定義混在一起。
基于命令外部Web表
????????一個shell命令或者腳本的輸出可定義基于命令的Web表數(shù)據(jù)。將命令放在CREATE EXTERNAL WEB TABLE的EXECUTE子句里。數(shù)據(jù)是命令運行時的最新數(shù)據(jù)。語句EXECUTE在指定的master或實例節(jié)點上運行shell命令或腳本。命令和腳本必須存在于EXECUTE子句中定義的host上。命令默認(rèn)會在當(dāng)活躍節(jié)點上有輸出的行要處理時。 例如,如果每個宿主機器上運行4個有輸出行待處理的節(jié)點實例, 命令會在每個宿主機器上運行4次。 可以限制運行web表命令的節(jié)點實例數(shù)量。 所有在web表定義ON子句中的節(jié)點會并行運行命令。
????????指定在外部表定義中的命令會從數(shù)據(jù)庫運行,但不會從.bashrc或.profile 中加載環(huán)境變量。 在EXECUTE子句中設(shè)置環(huán)境變量。例如:
=# CREATE EXTERNAL WEB TABLE output (output text)
EXECUTE 'PATH=/home/gpadmin/programs; export PATH; myprogram.sh'
FORMAT 'TEXT';
????????腳本必須對于用戶是可執(zhí)行的,并且在master和實例節(jié)點上路徑相同。下面命令定義了一個運行腳本的web表。 腳本運行在有數(shù)據(jù)需要處理的節(jié)點上。
=# CREATE EXTERNAL WEB TABLE log_output
(linenum int, message text)
EXECUTE '/var/load_scripts/get_log_data.sh' ON HOST
FORMAT 'TEXT' (DELIMITER '|');
基于URL外部Web表
????????基于URL的web表從HTTP協(xié)議的服務(wù)器訪問數(shù)據(jù)。 Web表數(shù)據(jù)是動態(tài)的,不可重新掃描的。在LOCATION里定義基于http://協(xié)議的web服務(wù)文件路徑。 web數(shù)據(jù)文件必須存在于節(jié)點可訪問的web服務(wù)器上。 指定的URL數(shù)量與并行訪問web表的節(jié)點實例數(shù)量相關(guān)。 例如,如果為一個有8個節(jié)點的MPP數(shù)據(jù)庫指定兩個外部文件, 8個節(jié)點中的兩個會在查詢運行時并行訪問web表。下面的例子定義了一個從多個URL獲取數(shù)據(jù)的web表。
=# CREATE EXTERNAL WEB TABLE ext_expenses (name text,
date date, amount float4, category text, description text)
LOCATION (
'http://intranet.company.com/expenses/sales/file.csv',
'http://intranet.company.com/expenses/exec/file.csv',
'http://intranet.company.com/expenses/finance/file.csv',
'http://intranet.company.com/expenses/ops/file.csv',
'http://intranet.company.com/expenses/marketing/file.csv',
'http://intranet.company.com/expenses/eng/file.csv'
)
FORMAT 'CSV' ( HEADER );