> ## 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 StripeLog

# Motor de tabla StripeLog

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 las propiedades comunes de los motores log y sus diferencias en el artículo [Familia de motores Log](/docs/es/reference/engines/table-engines/log-family/index).

Use este motor en escenarios en los que necesite escribir muchas tablas con una pequeña cantidad de datos (menos de 1 millón de filas). Por ejemplo, esta tabla puede usarse para almacenar lotes de datos entrantes para su transformación cuando se requiere un procesamiento atómico. 100k instancias de este tipo de tabla son viables en un servidor ClickHouse. Debe preferirse este motor de tabla en lugar de [Log](/docs/es/reference/engines/table-engines/log-family/log) cuando se requiera un gran número de tablas. Esto se hace a costa de la eficiencia de lectura.

<div id="table_engines-stripelog-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 = StripeLog
```

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

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

El motor `StripeLog` almacena todas las columnas en un único 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:

* `data.bin` — Archivo de datos.
* `index.mrk` — Archivo con marcas. Las marcas contienen desplazamientos para cada columna de cada bloque de datos insertado.

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

<div id="table_engines-stripelog-reading-the-data">
  ## Lectura de datos
</div>

El archivo de marcas permite a ClickHouse paralelizar la lectura de datos. Esto significa que una consulta `SELECT` devuelve filas en un orden impredecible. Use la cláusula `ORDER BY` para ordenar las filas.

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

Creación de una tabla:

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

Inserción de datos:

```sql theme={null}
INSERT INTO stripe_log_table VALUES (now(),'REGULAR','The first regular message')
INSERT INTO stripe_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 del archivo `data.bin`.

ClickHouse utiliza varios hilos al seleccionar datos. Cada hilo lee un bloque de datos distinto y devuelve las filas resultantes por separado a medida que finaliza. Como resultado, en la mayoría de los casos, el orden de los bloques de filas en la salida no coincide con el orden de esos mismos bloques en la entrada. Por ejemplo:

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

```text theme={null}
┌───────────timestamp─┬─message_type─┬─message────────────────────┐
│ 2019-01-18 14:27:32 │ REGULAR      │ The second regular message │
│ 2019-01-18 14:34:53 │ WARNING      │ The first warning message  │
└─────────────────────┴──────────────┴────────────────────────────┘
┌───────────timestamp─┬─message_type─┬─message───────────────────┐
│ 2019-01-18 14:23:43 │ REGULAR      │ The first regular message │
└─────────────────────┴──────────────┴───────────────────────────┘
```

Ordenar los resultados (en orden ascendente de forma predeterminada):

```sql theme={null}
SELECT * FROM stripe_log_table ORDER BY timestamp
```

```text theme={null}
┌───────────timestamp─┬─message_type─┬─message────────────────────┐
│ 2019-01-18 14:23:43 │ REGULAR      │ The first regular message  │
│ 2019-01-18 14:27:32 │ REGULAR      │ The second regular message │
│ 2019-01-18 14:34:53 │ WARNING      │ The first warning message  │
└─────────────────────┴──────────────┴────────────────────────────┘
```
