Greenplum平台扩展框架(PXF)实现了一个名为pxf
的协议,您可以使用该协议创建引用外部数据存储中数据的外部表。PXF协议和Java服务打包作为Greenplum数据库扩展。
您必须在将要使用框架访问外部数据的每个数据库实例中启用PXF扩展。您还必须向需要访问权限的用户/角色明确授予pxf
协议的GRANT
权限。
在数据库中启用PXF
您必须在计划使用该扩展的每个Greenplum数据库中显式注册PXF扩展。您必须具有Greenplum数据库管理员权限才能注册扩展。
对要在其中使用PXF的每个数据库执行以下过程:
使用
gpadmin
用户连接数据库gpadmin@gpmaster$ psql -d <database-name> -U gpadmin
创建PXF扩展名。您必须具有Greenplum数据库管理员权限才能创建扩展。 例如:
database-name=# CREATE EXTENSION pxf;
创建
pxf
扩展来注册pxf
协议和PXF访问外部数据所需的调用处理程序。
在数据库中禁用PXF
当您不再希望在特定数据库上使用PXF时,必须显式删除该数据库的PXF扩展名。您必须具有Greenplum数据库管理员权限才能删除扩展。
使用
gpadmin
用户连接数据库gpadmin@gpmaster$ psql -d <database-name> -U gpadmin
删除pxf扩展
database-name=# DROP EXTENSION pxf;
如果当前使用
pxf
协议定义了任何外部表,则DROP
命令将失败。 如果选择强制删除这些外部表,请添加CASCADE
选项。
授权一个用户访问PXF
要使用PXF读取外部数据,请使用CREATE EXTERNAL TABLE
命令创建一个外部表,该命令指定pxf
协议。您必须向所有需要此类访问权限的非SUPERUSER
的Greenplum数据库角色明确授予对pxf协议的SELECT
权限。
要授予特定角色对pxf
协议的访问权限,请使用GRANT
命令。例如,要授予名为bill
的角色对使用pxf
协议创建的外部表引用的数据的读取访问权限,请执行以下操作:
GRANT SELECT ON PROTOCOL pxf TO bill;
要使用PXF将数据写入外部数据存储,请使用CREATE WRITABLE EXTERNAL TABLE
命令创建一个外部表,该命令指定pxf
协议。您必须向需要此类访问的所有非SUPERUSER
的Greenplum数据库角色明确授予对pxf
协议的INSERT
权限。 例如:
GRANT INSERT ON PROTOCOL pxf TO bill;