2014-02-26 18 views

回答

1

似乎Vertica的可使用的UDSource(C++)的子類可以使用捲曲打開和讀取文件通過HTTP:

的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'); 
相關問題