greenplum平台擴充套件框架(pxf)通過內建聯結器提供對外部資料的訪問,
這些聯結器可以將外部資料來源對映到greenplum資料庫表,通過外部表的形式查詢外部資料來源。
pxf可支援訪問的外部資料來源有hdfs,hive和hbase。其中可以對hdfs資料進行讀和寫操作。
下面介紹pxf訪問hive資料的方法
一)pxf訪問hive資料
pxf hive聯結器支援多種hive的資料格式,包括textfile,sequencefile,rcfile,orc,parquet.
$ vi /tmp/pxf_hive_datafile.txt
2、將以下資料新增到pxf_hive_datafile.txt; 請注意使用逗號,分隔四個字段值:
prague,jan,101,4875.33
rome,mar,87,1557.39
bangalore,may,317,8936.99
beijing,jul,411,11600.67
san francisco,sept,156,6846.34
paris,nov,159,7134.56
san francisco,jan,113,5397.89
prague,dec,333,9894.77
bangalore,jul,271,8320.55
beijing,dec,100,4248.41
3、在default資料庫中建立乙個命名為sales_info的hive表(這裡的hive表是textfile格式):
hive> create table sales_info (location string, month string,
number_of_orders int, total_sales double)
row format delimited fields terminated by ','
stored as textfile;
4、將pxf_hive_datafile.txt示例資料檔案載入到sales_info表中:
hive> load data local inpath '/tmp/pxf_hive_datafile.txt'
into table sales_info;
5、執行查詢sales_info以驗證您是否成功載入了資料:
hive> select * from sales_info;
6、確定hive表的hdfs位置
hive> describe extended sales_info;
detailed table information
......
7、gp訪問textfile格式的hive表
可以使用hive和hivetext配置檔案訪問以textfile格式儲存的hive**資料。
示例:使用hive配置檔案
gp=# create external table salesinfo_hiveprofile(location text, month text, num_orders int, total_sales float8)
location ('pxf:')
format 'custom' (formatter='pxfwritable_import');
示例:使用hivetext配置檔案
gp=# create external table salesinfo_hivetextprofile(location text, month text, num_orders int, total_sales float8)
location ('pxf:text&delimiter=\x2c')
format 'text' (delimiter=e',');
8、gp訪問rcfile格式的hive表
pxf hiverc配置檔案提供對rcfile資料的訪問
示例:使用hiverc配置檔案查詢hive表中的rcfile格式的資料。
(1)啟動hive命令列並建立乙個以rcfile格式儲存的hive表:
hive> create table sales_info_rcfile (location string, month string,
number_of_orders int, total_sales double)
row format delimited fields terminated by ','
stored as rcfile;
(2)將sales_info表中的資料插入到sales_info_rcfile:
hive> insert into table sales_info_rcfile select * from sales_info;
樣本資料集的副本現在以hive sales_info_rcfile**中的rcfile格式儲存。
(3)查詢sales_info_rcfilehive表以驗證資料是否正確載入:
hive> select * from sales_info_rcfile;
(4)使用pxf hiverc配置檔案建立乙個可讀的greenplum資料庫外部表,引用sales_info_rcfile您在前面的步驟中建立的hive 表。
你必須在location和format子句中指定乙個分隔符。
gp=# create external table salesinfo_hivercprofile(location text, month text, num_orders int, total_sales float8)
location ('pxf:')
format 'text' (delimiter=e',');
(5)查詢外部**:
gp=# select location, total_sales from salesinfo_hivercprofile;
9、gp訪問orc格式的hive表
優化的行列(orc)檔案格式是列式檔案格式,它提供了一種高效的方式來儲存和訪問hdfs資料。
在壓縮和效能方面,orc格式改進了文字和rcfile格式。
pxf支援orc版本1.2.1。
-----gp支援orc檔案格式的配置檔案的一些限制條件------
選擇支援orc的配置檔案時,請考慮以下幾點:
1)hiveorc配置檔案:
一次讀取一行資料。
支援列投影。
支援複雜的型別。您可以訪問由陣列,地圖,結構和聯合資料型別組成的hive表。pxf序列化每個這些複雜的型別text。
2)hivevectorizedorc配置檔案:
一次最多可讀取1024行資料。
不支援列投影。
不支援複雜型別或時間戳資料型別。
注意:hiveorc和hivevectorizedorc配置檔案當前不支援謂詞下推。
(1)示例:使用hiveorc配置檔案查詢hive表中的orc格式的資料
gp外部表如下:
gp=> create external table salesinfo_hiveorcprofile(location text, month text, num_orders int, total_sales float8)
location ('pxf:')
format 'custom' (formatter='pxfwritable_import');
(2)示例:使用hivevectorizedorc配置檔案查詢hive表中的orc格式的資料
gp外部表如下:
gp=> create external table salesinfo_hivevectorc(location text, month text, num_orders int, total_sales float8)
location ('pxf:')
format 'custom' (formatter='pxfwritable_import');
10、gp訪問parquet格式的hive表
定義greenplum資料庫外部**:
gp=# create external table pxf_parquet_table (location text, month text, number_of_orders int, total_sales double precision)
location ('pxf:')
format 'custom' (formatter='pxfwritable_import');
Greenplum的PXF在容器中編譯
pxf適用於聯邦資料的查詢,支援多種資料來源,如hadoop hive 關聯式資料庫。支援多個異構資料來源,並只查詢資料來源中少量資料集,而避免對資料集執行etl操作。1.pxf server 部署在segment host主機上。2.segment通過rest介面和pxf server進行互動。3...
Greenplum 虛擬機器使用指導
greenplum虛擬機器使用指導 5.0版本的greenplum資料庫虛擬機器。這個虛擬機器包含greenplum和配套的greenplum管理中心商業版本的全部功能。2 這份指導提到的資料和執行指令碼在虛擬機器中的 home gpadmin目錄下都能找到。資料是事先預製好的,在虛擬機器第一次啟動...
varnish下使用acl限制ip位址訪問
acl forbidden chinaip.data 192.168.1.0 24 10.0.0.0 24 第2步 在vcl recv中定義策略,放到最前面。if client.ip forbidden 第3步 可選 自定義錯誤頁面 根據不同的錯誤 執行不同的操作 將錯誤 為750的,重定向goog...