010-88888888

首页 > 成功案例

乐鱼体育 GreenPlum--外部表

发布时间 : 2021-03-28 11:03:36 浏览: 176次 来源:G.E.M.整理 作者:G.E.M.

外部表格:

1、外部表允许用户访问外部表乐鱼体育,例如标准数据库表。

2、结合GP的并行文件分发程序(gpfdist),外部表在加载和卸载数据时支持所有段实例的资源的完全并行利用。

3、 GP也可以使用Hadoop分布式文件系统的并行体系结构来访问文件。

GP提供了两种类型的外部表:

可读的外部表:用于数据加载,不允许修改数据。

可写外部表:用于数据卸载,从数据库表中选择记录并输出到文件乐鱼体育乐鱼体育,命令管道或其他可执行程序greenplum 外部表,包括并行MapRuduce计算。仅允许执行INSERT操作。

根据不同的数据源,有两种类型的可读外部表:

常规:访问静态平面文件。

WEB:访问动态数据源(例如wen service或OS命令或脚本)

创建外部表定义时,必须指定文件格式和文件位置。

外部文件格式:

TEXT类型对所有协议有效。
逗号分隔的CSV对于gpfdist和file协议有效
自定义格式适合于gphdfs

外部表中的数据不正确:

	为了在装载正确格式的记录时隔离错误数据,需要在定义外部表时使用单条记录出错处理

外部表备份和恢复:

	在备份或者恢复操作中,仅仅外部表或者WEB外部表的定义会备份或恢复。

定义外部表使用GP并行文件服务(gpfdist)

greenplum 客户端工具_greenplum数据库_greenplum 外部表

运行gpfdist以最大化系统带宽时要考虑的因素:

·关于gpfdist的设置和性能

如果ETL主机配置了多个网络端口,则应在LOCATION子句中声明与该网络端口对应的主机名。

在ETL主机上运行多个gpfdistgreenplum 外部表,并将外部数据平均分配给每个gpfdist服务。

在这里插入图片描述

为单个文件服务创建可读的外部表,文件格式由竖线(|)分隔:

CREATE EXTERNAL TABLE tb_ext_gf01 (id int,name text)
LOCATION('gpfdist://mdw:8081/*.txt')
FORMAT 'TEXT' (DELIMITER '|' NULL '');

为多个文件服务创建可读的外部表乐鱼体育,文件格式由竖线(|)分隔:

CREATE EXTERNAL TABLE tb_ext_gf02 (id int,name text)
LOCATION('gpfdist://mdw:8081/*.txt','gpfdist://mdw:8082/*.txt')
FORMAT 'TEXT' (DELIMITER '|' NULL '');

greenplum 外部表_greenplum数据库_greenplum 客户端工具

带有错误数据日志的多文件服务:

CREATE EXTERNAL TABLE tb_ext_gf03 (id int,name text)
LOCATION('gpfdist://mdw:8081/*.txt','gpfdist://mdw:8082/*.txt')
FORMAT 'CSV' (DELIMITER ',' )
LOG ERRORS INTO err_customer SEGMENT REJECT LIMIT 2;

查看错误日志:

select * from err_customer 

创建可写的外部表:(用于数据导出)

CREATE WRITABLE EXTERNAL TABLE tb_ext_gf04 (LIKE tb_cp_02 )
LOCATION('gpfdist://mdw:8081/tb_cp_02.out')
FORMAT 'TEXT' (DELIMITER '|' NULL '')
DISTRIBUTED BY (id);
insert into tb_ext_gf04 select * from tb_cp_02 ;

使用select from访问外部表

将所有数据加载到新数据表中

创建表tb_load_01 AS SELECT * FROM tb_ext_gp01;

创建和使用WEB外部表

查询优化器不允许重复扫描WEB表数据

使用CREATE EXTERNAL WEB TABLE创建GP WEB表

WEB外部表的定义有两种形式

WEB URL

使用协议指定文件在WEB服务器上的位置;

WEB数据文件必须位于GP段可以访问的WEB服务上;

URL的数量将对应于并行访问WEB表的段实例

例如:

greenplum数据库_greenplum 客户端工具_greenplum 外部表

CREATE EXTERNAL WEB TABLE tb_ext_wb02 (name text,date date,amount float4,category text,description text )
LOCATION(
'http://intranet.company.com/expenses/markering/file.csv',
'http://intranet.company.com/expenses/eng/file.csv'
)
FORMAT 'CSV' (HEADER);

OS命令

指定在一个或多个段上执行SHELL命令或脚本greenplum 外部表乐鱼体育,并将结果输出为WEB表访问的数据;

由EXECUTE子句定义的外部表将在指定的多个段主机上执行指定的SHELL命令或脚本;

请注意限制执行WEB表命令的段实例的数量。

命令或程序必须放置在所有段主机上

命令是从数据库而不是登录的SHELL中执行的

例如:

CREATE EXTERNAL WEB TABLE tb_ext_wb01 (output text)
EXECUTE 'hostname'
FORMAT 'TEXT';

在线客服

>>
在线客服