编写gpfdist配置

    这个gpfdist配置的例子包含下列项:

    • 定义TRANSFORMATIONS的config.yaml文件
    • config.yaml文件中引用的input_transform.sh包装器脚本
    • input_transform.sh中调用的joost转换input_transform.stx

    除普通的YAML规则(如文档用三个破折号开始(-—))之外,gpfdist配置必须符合下列限制:

    1. VERSION设置必须出现并且值为1.0.0.1。
    2. TRANSFORMATIONS设置必须出现并且包含一个或者更多个映射。
    3. TRANSFORMATION中的每一个映射必须包含:
      • 一个值为’input’或者’output’的TYPE
      • 一个表明转换如何运行的COMMAND。

    COMMAND设置使用了一个名为input_transform.sh的包装器脚本,它带有一个%filename%占位符。当gpfdist运行该prices_input转换时,它用/bin/bash调用input_transform.sh,并且将%filename%占位符替换为要转换的输入文件的路径。名为input_transform.sh的包装器脚本包含调用STX转换并返回其输出的逻辑。

    如果使用了Joost,则必须安装Joost STX引擎。

    1. # input_transform.sh - sample input transformation,
    2. # demonstrating use of Java and Joost STX to convert XML into
    3. # text to load into Greenplum Database.
    4. # java arguments:
    5. # -nodecl don't generate a <?xml?> declaration
    6. # $1 filename to process
    7. #
    8. java \
    9. -jar joost.jar \
    10. -nodecl \
    11. $1 \
    12. | awk 'NF>0

    上级主题: 转换XML数据