ClickHouse/docs/es/query_language/table_functions/file.md
Ivan Blinkov 2e1f6bc56d
[experimental] add "es" docs language as machine translated draft (#9787)
* 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)
2020-03-21 07:11:51 +03:00

3.8 KiB
Raw Blame History

file

Crea una tabla a partir de un archivo. Esta función de tabla es similar a URL y Hdfs aquel.

file(path, format, structure)

Parámetros de entrada

  • path — La ruta relativa al archivo desde user_files_path. Soporte de ruta a archivo siguiendo globs en modo de solo lectura: *, ?, {abc,def} y {N..M} donde N, M — numero, `'abc', 'def' — cadena.
  • format — El formato del archivo.
  • structure — Estructura de la mesa. Formato 'column1_name column1_type, column2_name column2_type, ...'.

Valor devuelto

Una tabla con la estructura especificada para leer o escribir datos en el archivo especificado.

Ejemplo

Configuración user_files_path y el contenido del archivo test.csv:

$ grep user_files_path /etc/clickhouse-server/config.xml
    <user_files_path>/var/lib/clickhouse/user_files/</user_files_path>

$ cat /var/lib/clickhouse/user_files/test.csv
    1,2,3
    3,2,1
    78,43,45

Tabla detest.csv y selección de las dos primeras filas de ella:

SELECT *
FROM file('test.csv', 'CSV', 'column1 UInt32, column2 UInt32, column3 UInt32')
LIMIT 2
┌─column1─┬─column2─┬─column3─┐
│       1 │       2 │       3 │
│       3 │       2 │       1 │
└─────────┴─────────┴─────────┘
-- getting the first 10 lines of a table that contains 3 columns of UInt32 type from a CSV file
SELECT * FROM file('test.csv', 'CSV', 'column1 UInt32, column2 UInt32, column3 UInt32') LIMIT 10

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 (no solo el sufijo o el prefijo).

  • * — 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 {} son similares a la función de tabla remota).

Ejemplo

  1. Supongamos que tenemos varios archivos con las siguientes rutas relativas:
  • some_dir/some_file_1
  • some_dir/some_file_2
  • some_dir/some_file_3
  • another_dir/some_file_1
  • another_dir/some_file_2
  • another_dir/some_file_3
  1. Consulta la cantidad de filas en estos archivos:
SELECT count(*)
FROM file('{some,another}_dir/some_file_{1..3}', 'TSV', 'name String, value UInt32')
  1. Consulta la cantidad de filas en todos los archivos de estos dos directorios:
SELECT count(*)
FROM file('{some,another}_dir/*', 'TSV', 'name String, value UInt32')

!!! warning "Advertencia" Si su 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

Consultar los datos desde archivos nombrados file000, file001, … , file999:

SELECT count(*)
FROM file('big_dir/file{0..9}{0..9}{0..9}', 'CSV', 'name String, value UInt32')

Virtual Columnas

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

Ver también

Artículo Original