CREATE PROTOCOL

CREATE PROTOCOL

注册自定义数据访问协议,该协议可以在定义Greenplum数据库外部表时指定。

概要

CREATE [TRUSTED] PROTOCOL name (
   [readfunc='read_call_handler'] [, writefunc='write_call_handler']
   [, validatorfunc='validate_handler' ])

描述

CREATE PROTOCOL将数据访问协议名称与负责从外部数据源读取数据和将数据写入外部数据源的调用处理程序相关联。 您必须是超级用户才能创建协议。

CREATE PROTOCOL命令必须指定读调用处理程序或写调用处理程序。 必须在数据库中定义CREATE PROTOCOL命令中指定的调用处理程序。

可以在CREATE EXTERNAL TABLE命令中指定协议名称。

有关创建和启用自定义数据访问协议的信息,请参阅Greenplum数据库管理员指南中的“示例自定义数据访问协议”。

参数

TRUSTED
如果未指定,则只有超级用户和协议所有者才能使用协议创建外部表。 如果指定,超级用户和协议所有者可以将协议的许可权限授予其他数据库角色。
name
数据访问协议的名称。协议名称区分大小写。该名称在数据库中的协议之间必须唯一。
readfunc= 'read_call_handler'
Greenplum数据库调用以从外部数据源读取数据的先前注册函数的名称。 该命令必须指定读调用处理程序或写调用处理程序。
writefunc= 'write_call_handler'
Greenplum数据库调用以将数据写入外部数据源时调用的先前注册函数的名称。 该命令必须指定读调用处理程序或写调用处理程序。
validatorfunc='validate_handler'
可选的验证器函数,用于验证CREATE EXTERNAL TABLE命令中指定的URL。

注解

Greenplum数据库在内部处理类型为filegpfdistgpfdists的外部表。 有关启用S3协议的信息,请参见配置和使用S3外部表。 有关配置PXF扩展和使用pxf协议的信息, 请参阅Greenplum平台扩展框架(PXF)文档。

任何实现数据访问协议的共享库都必须位于所有Greenplum数据库segment主机上的同一位置。 例如,共享库可以位于所有主机上的操作系统环境变量LD_LIBRARY_PATH指定的位置。 定义处理程序函数时,也可以指定位置。 例如,当您在CREATE PROTOCOL命令中定义s3协议时, 您将$libdir/gps3ext.so指定为共享库的位置, 其中$libdir位于$GPHOME/lib

兼容性

CREATE PROTOCOL是Greenplum数据库扩展。