URL(URL [,Format] [,CompressionMethod])
-
El parámetro
URLdebe ajustarse a la estructura de un Uniform Resource Locator. La URL especificada debe apuntar a un servidor que use HTTP o HTTPS. Esto no requiere encabezados adicionales para obtener una respuesta del servidor. -
Formatdebe ser uno que ClickHouse pueda usar en consultasSELECTy, si es necesario, enINSERTs. Para ver la lista completa de formatos admitidos, consulte Formats. Si no se especifica este argumento, ClickHouse detecta el formato automáticamente a partir del sufijo del parámetroURL. Si el sufijo del parámetroURLno coincide con ninguno de los formatos admitidos, no se podrá crear la tabla. Por ejemplo, para la expresión del motorURL('http://localhost/test.json'), se aplica el formatoJSON. -
CompressionMethodindica si el body HTTP debe comprimirse. Si la compresión está habilitada, los paquetes HTTP enviados por el motor URL contienen el header ‘Content-Encoding’ para indicar qué método de compresión se está usando.
URL admita el algoritmo de compresión correspondiente.
Los valores admitidos de CompressionMethod deben ser uno de los siguientes:
- gzip or gz
- deflate
- brotli or br
- lzma or xz
- zstd or zst
- lz4
- bz2
- snappy
- none
- auto
CompressionMethod, el valor predeterminado es auto. Esto significa que ClickHouse detecta automáticamente el método de compresión a partir del sufijo del parámetro URL. Si el sufijo coincide con cualquiera de los métodos de compresión enumerados anteriormente, se aplica la compresión correspondiente; de lo contrario, no se habilita ninguna compresión.
Por ejemplo, para la expresión del motor URL('http://localhost/test.gzip'), se aplica el método de compresión gzip, pero para URL('http://localhost/test.fr'), no se habilita ninguna compresión porque el sufijo fr no coincide con ninguno de los métodos de compresión anteriores.
Uso
INSERT y SELECT se transforman en peticiones POST y GET,
respectivamente. Para procesar las peticiones POST, el servidor remoto debe admitir
la codificación de transferencia en fragmentos.
Puede limitar el número máximo de redirecciones HTTP GET mediante el ajuste max_http_get_redirects.
Ejemplo
url_engine_table en el servidor:
Detalles de la implementación
- Las lecturas y escrituras pueden realizarse en paralelo
- No se admite:
- las operaciones
ALTERySELECT...SAMPLE. - Índices.
- Replicación.
- las operaciones
Columnas virtuales
_path— Ruta de laURL. Tipo:LowCardinality(String)._file— Nombre del recurso de laURL. Tipo:LowCardinality(String)._size— Tamaño del recurso en bytes. Tipo:Nullable(UInt64). Si se desconoce el tamaño, el valor esNULL._time— Fecha y hora de la última modificación del archivo. Tipo:Nullable(DateTime). Si se desconoce la hora, el valor esNULL._headers- Encabezados de la respuesta HTTP. Tipo:Map(LowCardinality(String), LowCardinality(String)).
Resolución de las URL relativas
URL. Cuando se establece url_base, la URL que se pasa al motor se resuelve con respecto a esta según la RFC 3986. Para obtener una descripción completa de las reglas de resolución, consulta la documentación de la función de tabla url.
Ejemplo
Configuración de almacenamiento
- engine_url_skip_empty_files - permite omitir archivos vacíos durante la lectura. Está deshabilitado de forma predeterminada.
- enable_url_encoding - permite habilitar o deshabilitar la decodificación/codificación de la ruta en el URI. Está habilitado de forma predeterminada.
- url_base - URL base para resolver las URL relativas que se pasan al motor.