配置文件格式
gpfdist配置文件使用YAML 1.1文档格式并且实现了一种定义转换参数的方案。配置文件必须是一个合法的YAML文档。
gpfdist程序会按照顺序处理该文档并且使用缩进(空格)来判断文档的层次以及小节之间的关系。空白的使用很重要。不要使用空白来进行格式化也不要用制表符。
下面是一个配置文件的基本结构。
---
VERSION: 1.0.0.1
TRANSFORMATIONS:
transformation_name1:
TYPE: input | output
COMMAND: command
CONTENT: data | paths
SAFE: posix-regex
STDERR: server | console
transformation_name2:
TYPE: input | output
COMMAND: command
...
VERSION
必需。gpfdist配置文件方案的版本。当前版本是1.0.0.1。
TRANSFORMATIONS
必需。开始转换说明小节。一个配置文件必须有至少一个转换。当gpfdist收到一个转换请求时,它会在这个小节查找具有匹配的转换名称的项。
TYPE
必须。指定转换的方向。值是input或者output。
- input:gpfdist把转换处理的标准输出当做是要载入到Greenplum数据库的一个记录流。
- output : gpfdist把转换处理的标准输入当作是来自于Greenplum数据库的一个记录流并且写出到适当的输出。
COMMAND
必须。指定将被gpfdist执行来做转换的命令。
对于输入转换,gpfdist调用CONTENT设置中指定的命令。该命令应该会以适当的方式打开底层文件并且为每一行产生一个TEXT行以载入到Greenplum数据库。输入转换决定整个内容是应该被转换为一个行还是多个行。
对于输出转换,gpfdist调用在CONTENT设置中指定的命令。输出命令应该会以适当的方式打开底层文件并且向其中写入。输出转换决定转换好的输出的最终安置。
CONTENT
可选。值是data和paths。默认值是data。
- 当CONTENT指定data时,COMMAND小节中的文本%filename%会被替换为要读写的文件路径。
- 当CONTENT指定paths时,COMMAND小节中的文本%filename%会被替换为包含要读写的文件列表的临时文件路径。
下面是一个COMMAND小节的例子,它展示了被替换掉的文本%filename%。
COMMAND: /bin/bash input_transform.sh %filename%
SAFE
可选。一个POSIX 正则表达式,路径必须匹配它才能被传递给转换。在担心传递给命令的路径被注入或者被不正确解读时指定SAFE。默认对路径没有限制。
STDERR
可选。值是server和console。
这个设置指定如何处理来自于转换的标准错误输出。默认值server指定, specifies that gpfdist将捕捉来自于转换的标准错误输出放在一个临时文件中,并且把该文件的前8k字节发送到Greenplum数据库作为一个错误消息。该错误消息将作为一个SQL错误出现。Console指定gpfdist不会重定向或者转换来自于转换的标准错误输出。
上级主题: 传输和存储数据