2.1 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | 3e185d24c9 |
46 | entrada |
entrada
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.).
Los datos se pueden enviar de cualquier manera como para ordinario INSERT
consulta y pasado en cualquier disponible formato
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)
y datos endata.csv
tiene una estructura diferente(col1 String, col2 Date, col3 Int32)
. Consulta de inserción datos de ladata.csv
en eltest
con conversión simultánea se ve así:
$ 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 estructuratest_structure
como la mesatest
entonces estas dos consultas son iguales:
$ 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"