Inserta filas en una tabla de ApsaraDB for ClickHouse.
Sintaxis
INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...
Para las columnas definidas en el esquema de la tabla que no se incluyen en la instrucción, ApsaraDB for ClickHouse asigna valores según las siguientes reglas:
|
Condición |
Comportamiento |
|
La columna tiene definida una expresión predeterminada |
Evalúa la expresión e inserta el resultado |
|
No hay ninguna expresión predeterminada definida |
Inserta |
Uso de SELECT con INSERT INTO
INSERT INTO [db.]table [(c1, c2, c3)] SELECT ...
Las columnas del resultado de SELECT se asignan a las columnas de INSERT INTO en orden posicional estricto; los nombres de las columnas no necesitan coincidir. ApsaraDB for ClickHouse convierte los tipos de datos automáticamente cuando es necesario.
Compatibilidad con expresiones
Solo la forma VALUES admite expresiones en línea como now() y 1 + 2. Incluso al usar VALUES, evite las expresiones en línea, ya que evaluarlas fila por fila resulta ineficiente. Calcule los valores antes de insertar los datos.
Consideraciones de rendimiento
Cuando ApsaraDB for ClickHouse ejecuta una instrucción INSERT INTO, procesa los datos de inmediato: los ordena por clave principal y los particiona. Si los datos que se van a insertar abarcan varios meses, el rendimiento de inserción se degrada significativamente.
Para mantener un alto rendimiento de inserción:
Escriba un gran volumen de datos a la vez. Por ejemplo, escriba 100,000 filas de datos en cada operación.
Agrupe los datos antes de escribirlos en un clúster de ApsaraDB for ClickHouse.
En los siguientes escenarios, el rendimiento de inserción no se ve afectado:
Los datos se escriben en tiempo real.
Los datos que se van a escribir ya están ordenados por tiempo.