ClickHouse/docs/es/operations/table_engines/hdfs.md
Ivan Blinkov f315e5079b
More complete "es" translation (#9791)
* replace exit with assert in test_single_page

* improve save_raw_single_page docs option

* More grammar fixes

* "Built from" link in new tab

* fix mistype

* Example of include in docs

* add anchor to meeting form

* Draft of translation helper

* WIP on translation helper

* Replace some fa docs content with machine translation

* add normalize-en-markdown.sh

* normalize some en markdown

* normalize some en markdown

* admonition support

* normalize

* normalize

* normalize

* support wide tables

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* normalize

* lightly edited machine translation of introdpection.md

* lightly edited machhine translation of lazy.md

* WIP on translation utils

* Normalize ru docs

* Normalize other languages

* some fixes

* WIP on normalize/translate tools

* add requirements.txt

* [experimental] add es docs language as machine translated draft

* remove duplicate script

* Back to wider tab-stop (narrow renders not so well)

* Links to nowhere check at least for English

* use f string

* More complete es translation
2020-03-21 12:17:06 +03:00

4.2 KiB
Raw Blame History

HDFS

Este motor proporciona integración con Acerca de nosotros permitiendo gestionar datos sobre HDFSa través de ClickHouse. Este motor es similar Angeles File y URL motores, pero proporciona características específicas de Hadoop.

Uso

ENGINE = HDFS(URI, format)

El URI El parámetro es el URI del archivo completo en HDFS. El format parámetro especifica uno de los formatos de archivo disponibles. Realizar SELECT consultas, el formato debe ser compatible para la entrada, y para realizar INSERT consultas para la salida. Los formatos disponibles se enumeran en el Formato apartado. La parte de la ruta de URI puede contener globs. En este caso, la tabla sería de solo lectura.

Ejemplo:

1. Configurar el hdfs_engine_table tabla:

CREATE TABLE hdfs_engine_table (name String, value UInt32) ENGINE=HDFS('hdfs://hdfs1:9000/other_storage', 'TSV')

2. Llenar archivo:

INSERT INTO hdfs_engine_table VALUES ('one', 1), ('two', 2), ('three', 3)

3. Consultar los datos:

SELECT * FROM hdfs_engine_table LIMIT 2
┌─name─┬─value─┐
│ one  │     1 │
│ two  │     2 │
└──────┴───────┘

Detalles de implementación

  • Las lecturas y escrituras pueden ser paralelas
  • No soportado:
    • ALTER y SELECT...SAMPLE operación.
    • Índices.
    • Replicación.

Globs en el camino

Múltiples componentes de ruta de acceso pueden tener globs. Para ser procesado, el archivo debe existir y coincidir con todo el patrón de ruta. Listado de archivos determina durante SELECT (no en CREATE momento).

  • * — Sustituye cualquier número de caracteres excepto / incluyendo cadena vacía.
  • ? — Sustituye a cualquier carácter individual.
  • {some_string,another_string,yet_another_one} — Sustituye cualquiera de las cadenas 'some_string', 'another_string', 'yet_another_one'.
  • {N..M} — Sustituye cualquier número en el intervalo de N a M, incluidas ambas fronteras.

Construcciones con {} hijo similares a la remoto función de la tabla.

Ejemplo

  1. Supongamos que tenemos varios archivos en formato TSV con los siguientes URI en HDFS:
  • hdfs://hdfs1:9000/some_dir/some_file_1
  • hdfs://hdfs1:9000/some_dir/some_file_2
  • hdfs://hdfs1:9000/some_dir/some_file_3
  • hdfs://hdfs1:9000/another_dir/some_file_1
  • hdfs://hdfs1:9000/another_dir/some_file_2
  • hdfs://hdfs1:9000/another_dir/some_file_3
  1. Hay varias maneras de hacer una tabla que consta de los seis archivos:
CREATE TABLE table_with_range (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/some_file_{1..3}', 'TSV')

Otra forma:

CREATE TABLE table_with_question_mark (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/some_file_?', 'TSV')

La tabla consta de todos los archivos en ambos directorios (todos los archivos deben satisfacer el formato y el esquema descritos en la consulta):

CREATE TABLE table_with_asterisk (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/*', 'TSV')

!!! warning "Advertencia" Si la lista de archivos contiene rangos de números con ceros a la izquierda, use la construcción con llaves para cada dígito por separado o use ?.

Ejemplo

Crear tabla con archivos llamados file000, file001, … , file999:

CREARE TABLE big_table (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/big_dir/file{0..9}{0..9}{0..9}', 'CSV')

Columnas virtuales

  • _path — Ruta de acceso al archivo.
  • _file — Nombre del expediente.

Ver también

Artículo Original