* split up select.md * array-join.md basic refactoring * distinct.md basic refactoring * format.md basic refactoring * from.md basic refactoring * group-by.md basic refactoring * having.md basic refactoring * additional index.md refactoring * into-outfile.md basic refactoring * join.md basic refactoring * limit.md basic refactoring * limit-by.md basic refactoring * order-by.md basic refactoring * prewhere.md basic refactoring * adjust operators/index.md links * adjust sample.md links * adjust more links * adjust operatots links * fix some links * adjust aggregate function article titles * basic refactor of remaining select clauses * absolute paths in make_links.sh * run make_links.sh * remove old select.md locations * translate docs/es * translate docs/fr * translate docs/fa * remove old operators.md location * change operators.md links * adjust links in docs/es * adjust links in docs/es * minor texts adjustments * wip * update machine translations to use new links * fix changelog * es build fixes * get rid of some select.md links * temporary adjust ru links * temporary adjust more ru links * improve curly brace handling * adjust ru as well * fa build fix * ru link fixes * zh link fixes * temporary disable part of anchor checks
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.