2.6 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 3e185d24c9 |
41 | URL |
URL(URL, Formato)
Administra datos en un servidor HTTP/HTTPS remoto. Este motor es similar a la File motor.
Uso del motor en el servidor de Clickhouse
El format
debe ser uno que ClickHouse pueda usar en
SELECT
consultas y, si es necesario, en INSERTs
. Para obtener la lista completa de formatos admitidos, consulte
Formato.
El URL
debe ajustarse a la estructura de un localizador uniforme de recursos. La dirección URL especificada debe apuntar a un servidor
que utiliza HTTP o HTTPS. Esto no requiere ningún
encabezados adicionales para obtener una respuesta del servidor.
INSERT
y SELECT
las consultas se transforman en POST
y GET
peticiones,
respectivamente. Para el procesamiento POST
solicitudes, el servidor remoto debe admitir
Codificación de transferencia fragmentada.
Puede limitar el número máximo de saltos de redirección HTTP GET utilizando el Nombre de la red inalámbrica (SSID): configuración.
Ejemplo:
1. Crear un url_engine_table
tabla en el servidor :
CREATE TABLE url_engine_table (word String, value UInt64)
ENGINE=URL('http://127.0.0.1:12345/', CSV)
2. Cree un servidor HTTP básico utilizando las herramientas estándar de Python 3 y comenzarlo:
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()
$ python3 server.py
3. Solicitar datos:
SELECT * FROM url_engine_table
┌─word──┬─value─┐
│ Hello │ 1 │
│ World │ 2 │
└───────┴───────┘
Detalles de la implementación
- Las lecturas y escrituras pueden ser paralelas
- No soportado:
ALTER
ySELECT...SAMPLE
operación.- Índices.
- Replicación.