File 

El motor de tabla de archivos mantiene los datos en un archivo en uno de los file
formato
(TabSeparated, Native, etc.).

Ejemplos de uso:

  • Exportación de datos de ClickHouse a archivo.
  • Convertir datos de un formato a otro.
  • Actualización de datos en ClickHouse mediante la edición de un archivo en un disco.

Uso en el servidor ClickHouse 

File(Format)

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 queries – for output. The available formats are listed in the
Formato apartado.

ClickHouse no permite especificar la ruta del sistema de archivos paraFile. Utilizará la carpeta definida por camino configuración en la configuración del servidor.

Al crear una tabla usando File(Format) crea un subdirectorio vacío en esa carpeta. Cuando los datos se escriben en esa tabla, se colocan en data.Format en ese subdirectorio.

Puede crear manualmente esta subcarpeta y archivo en el sistema de archivos del servidor y luego ATTACH para mostrar información con el nombre coincidente, para que pueda consultar datos desde ese archivo.

Ejemplo:

1. Configurar el file_engine_table tabla:

CREATE TABLE file_engine_table (name String, value UInt32) ENGINE=File(TabSeparated)

Por defecto, ClickHouse creará una carpeta /var/lib/clickhouse/data/default/file_engine_table.

2. Crear manualmente /var/lib/clickhouse/data/default/file_engine_table/data.TabSeparated contener:

$ cat data.TabSeparated
one 1
two 2

3. Consultar los datos:

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

Uso en ClickHouse-local 

En Sistema abierto. El motor de archivos acepta la ruta del archivo además de Format. Los flujos de entrada / salida predeterminados se pueden especificar utilizando nombres numéricos o legibles por humanos como 0 o stdin, 1 o stdout.
Ejemplo:

$ echo -e "1,2\n3,4" | clickhouse-local -q "CREATE TABLE table (a Int64, b Int64) ENGINE = File(CSV, stdin); SELECT a, b FROM table; DROP TABLE table"

Detalles de la implementación 

  • Multiple SELECT las consultas se pueden realizar simultáneamente, pero INSERT las consultas se esperarán entre sí.
  • Apoyado la creación de nuevos archivos por INSERT consulta.
  • Si el archivo existe, INSERT añadiría nuevos valores en él.
  • No soportado:
    • ALTER
    • SELECT ... SAMPLE
    • Indice
    • Replicación

Artículo Original

Rating: 3 - 2 votes

Was this content helpful?
★★★☆☆