Vertica可以调用http get函数吗?
如果是,怎么样?
我有一个我需要从Vertica访问的链接。
答案 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');