> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Inserción y exportación de datos SQL en ClickHouse

> Página que describe cómo transferir datos entre otras bases de datos y ClickHouse mediante volcados SQL.

ClickHouse se puede integrar fácilmente en infraestructuras de bases de datos OLTP de muchas formas. Una de ellas es transferir datos entre otras bases de datos y ClickHouse mediante volcados SQL.

<div id="creating-sql-dumps">
  ## Creación de volcados SQL
</div>

Los datos pueden exportarse en formato SQL mediante [SQLInsert](/es/reference/formats/SQLInsert). ClickHouse escribirá los datos en la forma `INSERT INTO <table name> VALUES(...` y usará la opción de configuración [`output_format_sql_insert_table_name`](/es/reference/settings/formats#output_format_sql_insert_table_name) como nombre de la tabla:

```sql theme={null}
SET output_format_sql_insert_table_name = 'some_table';
SELECT * FROM some_data
INTO OUTFILE 'dump.sql'
FORMAT SQLInsert
```

Se pueden omitir los nombres de las columnas desactivando la opción [`output_format_sql_insert_include_column_names`](/es/reference/settings/formats#output_format_sql_insert_include_column_names):

```sql theme={null}
SET output_format_sql_insert_include_column_names = 0
```

Ahora podemos cargar el archivo [dump.sql](/es/assets/dump.sql) en otra base de datos OLTP:

```bash theme={null}
mysql some_db < dump.sql
```

Suponemos que la tabla `some_table` existe en la base de datos MySQL `some_db`.

Algunos DBMS pueden tener límites sobre cuántos valores se pueden procesar en un solo lote. De forma predeterminada, ClickHouse creará lotes de 65k valores, pero eso se puede cambiar con la opción [`output_format_sql_insert_max_batch_size`](/es/reference/settings/formats#output_format_sql_insert_max_batch_size):

```sql theme={null}
SET output_format_sql_insert_max_batch_size = 1000;
```

<div id="exporting-a-set-of-values">
  ### Exportación de un conjunto de valores
</div>

ClickHouse tiene el formato [Values](/es/reference/formats/Values), que es similar a SQLInsert, pero omite la parte `INSERT INTO table VALUES` y devuelve únicamente un conjunto de valores:

```sql theme={null}
SELECT * FROM some_data LIMIT 3 FORMAT Values
```

```response theme={null}
('Bangor_City_Forest','2015-07-01',34),('Alireza_Afzal','2017-02-01',24),('Akhaura-Laksam-Chittagong_Line','2015-09-01',30)
```

<div id="inserting-data-from-sql-dumps">
  ## Insertar datos a partir de volcados SQL
</div>

Para leer volcados SQL, se utiliza [MySQLDump](/es/reference/formats/MySQLDump):

```sql theme={null}
SELECT *
FROM file('dump.sql', MySQLDump)
LIMIT 5
```

```response theme={null}
┌─path───────────────────────────┬──────month─┬─hits─┐
│ Bangor_City_Forest             │ 2015-07-01 │   34 │
│ Alireza_Afzal                  │ 2017-02-01 │   24 │
│ Akhaura-Laksam-Chittagong_Line │ 2015-09-01 │   30 │
│ 1973_National_500              │ 2017-10-01 │   80 │
│ Attachment                     │ 2017-09-01 │ 1356 │
└────────────────────────────────┴────────────┴──────┘
```

De forma predeterminada, ClickHouse omitirá las columnas desconocidas (según la opción [input\_format\_skip\_unknown\_fields](/es/reference/settings/formats#input_format_skip_unknown_fields)) y procesará los datos de la primera tabla que encuentre en un volcado (en caso de que se hayan volcado varias tablas en un solo archivo). Se omitirán las sentencias DDL. Para cargar datos de un volcado de MySQL en una tabla (archivo [mysql.sql](/es/assets/mysql.sql)):

```sql theme={null}
INSERT INTO some_data
FROM INFILE 'mysql.sql' FORMAT MySQLDump
```

También podemos crear una tabla automáticamente a partir del archivo de volcado de MySQL:

```sql theme={null}
CREATE TABLE table_from_mysql
ENGINE = MergeTree
ORDER BY tuple() AS
SELECT *
FROM file('mysql.sql', MySQLDump)
```

Aquí hemos creado una tabla llamada `table_from_mysql` a partir de una estructura que ClickHouse ha inferido automáticamente. ClickHouse detecta los tipos a partir de los datos o utiliza DDL cuando está disponible:

```sql theme={null}
DESCRIBE TABLE table_from_mysql;
```

```response theme={null}
┌─name──┬─type─────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ path  │ Nullable(String) │              │                    │         │                  │                │
│ month │ Nullable(Date32) │              │                    │         │                  │                │
│ hits  │ Nullable(UInt32) │              │                    │         │                  │                │
└───────┴──────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```

<div id="other-formats">
  ## Otros formatos
</div>

ClickHouse ofrece compatibilidad con numerosos formatos, tanto de texto como binarios, para adaptarse a distintos escenarios y plataformas. Descubre más formatos y formas de trabajar con ellos en los siguientes artículos:

* [Formatos CSV y TSV](/es/guides/clickhouse/data-formats/csv-tsv)
* [Parquet](/es/guides/clickhouse/data-formats/parquet)
* [Formatos JSON](/es/guides/clickhouse/data-formats/json/intro)
* [Regex y plantillas](/es/guides/clickhouse/data-formats/templates-regex)
* [Formatos nativos y binarios](/es/guides/clickhouse/data-formats/binary)
* **Formatos SQL**

Consulta también [clickhouse-local](https://clickhouse.com/blog/extracting-converting-querying-local-files-with-sql-clickhouse-local), una herramienta portátil y completa para trabajar con archivos locales o remotos sin necesidad de un servidor ClickHouse.
