Vertica可以调用http get函数吗?

时间:2014-02-26 09:34:57

标签: vertica

  

Vertica可以调用http get函数吗?

     

如果是,怎么样?

我有一个我需要从Vertica访问的链接。

1 个答案:

答案 0 :(得分:1)

似乎Vertica可以使用cURL通过HTTP使用UDSource(C ++)的子类打开和读取文件:

  

UDSource类负责从外部源获取数据并以流方式生成该数据。还为UDSource提供了一个名为ContinuousUDSource的包装器。 ContinuousUDSource提供了一个抽象,允许您将输入数据视为连续的数据流。这允许您“随意”从源写入数据,而不必创建迭代器来使用基本UDSource方法。

示例UDSource

class CurlSource : public UDSource {
private:
    URL_FILE *handle;
    std::string url;

    virtual StreamState process(ServerInterface &srvInterface, DataBuffer &output) {
        output.offset = url_fread(output.buf, 1, output.size, handle);
        return url_feof(handle) ? DONE : OUTPUT_NEEDED;
    }
public:
    CurlSource(std::string url) : url(url) {}

   void setup(ServerInterface &srvInterface) {
        handle = url_fopen(url.c_str(),"r");
    }

   void destroy(ServerInterface &srvInterface) {
        url_fclose(handle);
    }
};

此外,您似乎可以使用standard HDFS connector

COPY testTable SOURCE Hdfs(url='http://hadoop:50070/webhdfs/v1/tmp/test.txt', username='hadoopUser');