> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentación del motor de tabla TinyLog

# Motor de tabla TinyLog

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            No es compatible con ClickHouse Cloud
        </div>;
};

<CloudNotSupportedBadge />

Este motor pertenece a la familia de motores Log. Consulte [Familia de motores Log](/docs/es/reference/engines/table-engines/log-family/index) para conocer las propiedades comunes de los motores Log y sus diferencias.

Este motor de tabla suele usarse con el método de escritura única: escribir datos una sola vez y luego leerlos tantas veces como sea necesario. Por ejemplo, puede usar tablas de tipo `TinyLog` para datos intermedios que se procesan en lotes pequeños. Tenga en cuenta que almacenar datos en un gran número de tablas pequeñas es ineficiente.

Las consultas se ejecutan en un único flujo. En otras palabras, este motor está pensado para tablas relativamente pequeñas (hasta aproximadamente 1.000.000 de filas). Tiene sentido usar este motor de tabla si tiene muchas tablas pequeñas, ya que es más sencillo que el motor [Log](/docs/es/reference/engines/table-engines/log-family/log) (hay que abrir menos archivos).

<div id="characteristics">
  ## Características
</div>

* **Estructura más sencilla**: A diferencia del motor Log, TinyLog no utiliza archivos de marcas. Esto reduce la complejidad, pero también limita las optimizaciones de rendimiento para conjuntos de datos grandes.
* **Consultas en un único flujo**: Las consultas sobre tablas TinyLog se ejecutan en un único flujo, lo que lo hace adecuado para tablas relativamente pequeñas, normalmente de hasta 1.000.000 de filas.
* **Eficiente para tablas pequeñas**: La simplicidad del motor TinyLog resulta ventajosa al gestionar muchas tablas pequeñas, ya que requiere menos operaciones de archivo que el motor Log.

A diferencia del motor Log, TinyLog no utiliza archivos de marcas. Esto reduce la complejidad, pero también limita las optimizaciones de rendimiento para conjuntos de datos más grandes.

<div id="table_engines-tinylog-creating-a-table">
  ## Crear una tabla
</div>

```sql theme={null}
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    column1_name [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
    column2_name [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
    ...
) ENGINE = TinyLog
```

Consulte la descripción detallada de la consulta [CREATE TABLE](/docs/es/reference/statements/create/table).

<div id="table_engines-tinylog-writing-the-data">
  ## Escritura de datos
</div>

El motor `TinyLog` almacena todas las columnas en un solo archivo. Para cada consulta `INSERT`, ClickHouse agrega el bloque de datos al final del archivo de la tabla y escribe las columnas una por una.

Para cada tabla, ClickHouse escribe los siguientes archivos:

* `<column>.bin`: un archivo de datos para cada columna, que contiene los datos serializados y comprimidos.

El motor `TinyLog` no admite las operaciones `ALTER UPDATE` ni `ALTER DELETE`.

<div id="table_engines-tinylog-example-of-use">
  ## Ejemplo de uso
</div>

Creación de una tabla:

```sql theme={null}
CREATE TABLE tiny_log_table
(
    timestamp DateTime,
    message_type String,
    message String
)
ENGINE = TinyLog
```

Inserción de datos:

```sql theme={null}
INSERT INTO tiny_log_table VALUES (now(),'REGULAR','The first regular message')
INSERT INTO tiny_log_table VALUES (now(),'REGULAR','The second regular message'),(now(),'WARNING','The first warning message')
```

Usamos dos consultas `INSERT` para crear dos bloques de datos dentro de los archivos `<column>.bin`.

ClickHouse usa un único flujo para seleccionar los datos. Como resultado, el orden de los bloques de filas en la salida coincide con el orden de esos mismos bloques en la entrada. Por ejemplo:

```sql theme={null}
SELECT * FROM tiny_log_table
```

```text theme={null}
┌───────────timestamp─┬─message_type─┬─message────────────────────┐
│ 2024-12-10 13:11:58 │ REGULAR      │ The first regular message  │
│ 2024-12-10 13:12:12 │ REGULAR      │ The second regular message │
│ 2024-12-10 13:12:12 │ WARNING      │ The first warning message  │
└─────────────────────┴──────────────┴────────────────────────────┘
```
