ClickHouse/docs/es/sql-reference/table-functions/input.md

48 lines
2.1 KiB
Markdown
Raw Normal View History

2020-03-30 08:25:29 +00:00
---
machine_translated: true
2020-04-04 09:15:31 +00:00
machine_translated_rev: 3e185d24c9fe772c7cf03d5475247fb829a21dfa
toc_priority: 46
toc_title: entrada
2020-03-30 08:25:29 +00:00
---
# entrada {#input}
`input(structure)` - función de tabla que permite convertir e insertar efectivamente los datos enviados al
servidor con estructura dada a la tabla con otra estructura.
`structure` - estructura de los datos enviados al servidor en el siguiente formato `'column1_name column1_type, column2_name column2_type, ...'`.
Por ejemplo, `'id UInt32, name String'`.
Esta función sólo se puede utilizar en `INSERT SELECT` consulta y sólo una vez, pero por lo demás se comporta como función de tabla ordinaria
(por ejemplo, se puede usar en subconsulta, etc.).
2020-04-04 09:15:31 +00:00
Los datos se pueden enviar de cualquier manera como para ordinario `INSERT` consulta y pasado en cualquier disponible [formato](../../interfaces/formats.md#formats)
que debe especificarse al final de la consulta (a diferencia de lo ordinario `INSERT SELECT`).
La característica principal de esta función es que cuando el servidor recibe datos del cliente, los convierte simultáneamente
según la lista de expresiones en el `SELECT` cláusula e inserta en la tabla de destino. Tabla temporal
con todos los datos transferidos no se crea.
**Ejemplos**
- Deje que el `test` tiene la siguiente estructura `(a String, b String)`
2020-04-04 09:15:31 +00:00
y datos en `data.csv` tiene una estructura diferente `(col1 String, col2 Date, col3 Int32)`. Consulta de inserción
datos de la `data.csv` en el `test` con conversión simultánea se ve así:
<!-- -->
``` bash
$ cat data.csv | clickhouse-client --query="INSERT INTO test SELECT lower(col1), col3 * col3 FROM input('col1 String, col2 Date, col3 Int32') FORMAT CSV";
```
- Si `data.csv` contiene datos de la misma estructura `test_structure` como la mesa `test` entonces estas dos consultas son iguales:
<!-- -->
``` bash
$ cat data.csv | clickhouse-client --query="INSERT INTO test FORMAT CSV"
$ cat data.csv | clickhouse-client --query="INSERT INTO test SELECT * FROM input('test_structure') FORMAT CSV"
```
2020-04-04 09:15:31 +00:00
[Artículo Original](https://clickhouse.tech/docs/en/query_language/table_functions/input/) <!--hide-->