2.6 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 72537a2d52 |
41 | URL |
URL (URL, Format)
Gère les données sur un serveur HTTP / HTTPS distant. Ce moteur est similaire à l' Fichier moteur.
Utilisation du moteur dans le serveur ClickHouse
Le format
doit être celui que ClickHouse peut utiliser dans
SELECT
les requêtes et, si nécessaire, en INSERTs
. Pour la liste complète des formats pris en charge, voir
Format.
Le URL
doit être conforme à la structure D'un Localisateur de ressources uniforme. L'URL spécifiée doit pointer vers un serveur
qui utilise le protocole HTTP ou HTTPS. Cela ne nécessite pas de
en-têtes supplémentaires pour obtenir une réponse du serveur.
INSERT
et SELECT
les requêtes sont transformées en POST
et GET
demande,
respectivement. Pour le traitement POST
demandes, le serveur distant doit prendre en charge
Encodage de transfert en morceaux.
Vous pouvez limiter le nombre maximal de sauts de redirection HTTP GET en utilisant max_http_get_redirects paramètre.
Exemple:
1. Créer un url_engine_table
table sur le serveur :
CREATE TABLE url_engine_table (word String, value UInt64)
ENGINE=URL('http://127.0.0.1:12345/', CSV)
2. Créez un serveur HTTP de base à l'aide des outils Python 3 standard et démarrer:
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. Les données de la demande:
SELECT * FROM url_engine_table
┌─word──┬─value─┐
│ Hello │ 1 │
│ World │ 2 │
└───────┴───────┘
Les détails de mise en Œuvre
- Les lectures et les écritures peuvent être parallèles
- Pas pris en charge:
ALTER
etSELECT...SAMPLE
opérations.- Index.
- Réplication.