urlCluster 表函数
允许并行处理指定集群中多个节点上的 URL 中的文件。在发起节点上,它会创建到集群中所有节点的连接,公开 URL 文件路径中的星号,并动态分发每个文件。在工作节点上,它会询问发起节点要处理的下一个任务并进行处理。重复此过程,直到所有任务完成。
语法
urlCluster(cluster_name, URL, format, structure)
参数
cluster_name
— 用于构建一组地址和连接参数以连接远程和本地服务器的集群名称。URL
— 可以接受GET
请求的 HTTP 或 HTTPS 服务器地址。类型:字符串。format
— 数据的格式。类型:字符串。structure
— 以'UserID UInt64, Name String'
格式表示的表结构。确定列名和类型。类型:字符串。
返回值
一个具有指定格式和结构的表,其中包含来自定义的 URL
的数据。
示例
获取包含 String
和UInt32 类型列的表的首 3 行,该表来自以CSV 格式响应的 HTTP 服务器。
- 使用标准 Python 3 工具创建一个基本的 HTTP 服务器并启动它
from http.server import BaseHTTPRequestHandler, HTTPServer
class CSVHTTPServer(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/csv')
self.end_headers()
self.wfile.write(bytes('Hello,1\nWorld,2\n', "utf-8"))
if __name__ == "__main__":
server_address = ('127.0.0.1', 12345)
HTTPServer(server_address, CSVHTTPServer).serve_forever()
SELECT * FROM urlCluster('cluster_simple','http://127.0.0.1:12345', CSV, 'column1 String, column2 UInt32')
URL 中的通配符
花括号 { }
中的模式用于生成一组分片或指定故障转移地址。支持的模式类型和示例请参见remote 函数的描述。模式内部的字符 |
用于指定故障转移地址。它们按模式中列出的顺序迭代。生成的地址数量受glob_expansion_max_elements 设置限制。
另请参阅