ClickHouse/docs/es/engines/table-engines/special/merge.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* split up select.md

* array-join.md basic refactoring

* distinct.md basic refactoring

* format.md basic refactoring

* from.md basic refactoring

* group-by.md basic refactoring

* having.md basic refactoring

* additional index.md refactoring

* into-outfile.md basic refactoring

* join.md basic refactoring

* limit.md basic refactoring

* limit-by.md basic refactoring

* order-by.md basic refactoring

* prewhere.md basic refactoring

* adjust operators/index.md links

* adjust sample.md links

* adjust more links

* adjust operatots links

* fix some links

* adjust aggregate function article titles

* basic refactor of remaining select clauses

* absolute paths in make_links.sh

* run make_links.sh

* remove old select.md locations

* translate docs/es

* translate docs/fr

* translate docs/fa

* remove old operators.md location

* change operators.md links

* adjust links in docs/es

* adjust links in docs/es

* minor texts adjustments

* wip

* update machine translations to use new links

* fix changelog

* es build fixes

* get rid of some select.md links

* temporary adjust ru links

* temporary adjust more ru links

* improve curly brace handling

* adjust ru as well

* fa build fix

* ru link fixes

* zh link fixes

* temporary disable part of anchor checks
2020-05-15 07:34:54 +03:00

3.4 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 36 Fusionar

Fusionar

El Merge motor (no debe confundirse con MergeTree) no almacena datos en sí, pero permite leer de cualquier número de otras tablas simultáneamente. La lectura se paralela automáticamente. No se admite la escritura en una tabla. Al leer, se usan los índices de las tablas que realmente se están leyendo, si existen. El Merge engine acepta parámetros: el nombre de la base de datos y una expresión regular para las tablas.

Ejemplo:

Merge(hits, '^WatchLog')

Los datos se leerán de las tablas en el hits base de datos que tienen nombres que coinciden con la expresión regular ^WatchLog.

En lugar del nombre de la base de datos, puede usar una expresión constante que devuelva una cadena. Por ejemplo, currentDatabase().

Regular expressions — Re2 (soporta un subconjunto de PCRE), sensible a mayúsculas y minúsculas. Vea las notas sobre los símbolos de escape en expresiones regulares en el “match” apartado.

Al seleccionar tablas para leer, el Merge no se seleccionará la tabla en sí, incluso si coincide con la expresión regular. Esto es para evitar bucles. Es posible crear dos Merge tablas que intentarán interminablemente leer los datos de los demás, pero esta no es una buena idea.

La forma típica de usar el Merge para trabajar con un gran número de TinyLog tablas como si con una sola tabla.

Ejemplo 2:

Digamos que tiene una tabla antigua (WatchLog_old) y decidió cambiar la partición sin mover datos a una nueva tabla (WatchLog_new) y necesita ver datos de ambas tablas.

CREATE TABLE WatchLog_old(date Date, UserId Int64, EventType String, Cnt UInt64)
ENGINE=MergeTree(date, (UserId, EventType), 8192);
INSERT INTO WatchLog_old VALUES ('2018-01-01', 1, 'hit', 3);

CREATE TABLE WatchLog_new(date Date, UserId Int64, EventType String, Cnt UInt64)
ENGINE=MergeTree PARTITION BY date ORDER BY (UserId, EventType) SETTINGS index_granularity=8192;
INSERT INTO WatchLog_new VALUES ('2018-01-02', 2, 'hit', 3);

CREATE TABLE WatchLog as WatchLog_old ENGINE=Merge(currentDatabase(), '^WatchLog');

SELECT *
FROM WatchLog
┌───────date─┬─UserId─┬─EventType─┬─Cnt─┐
│ 2018-01-01 │      1 │ hit       │   3 │
└────────────┴────────┴───────────┴─────┘
┌───────date─┬─UserId─┬─EventType─┬─Cnt─┐
│ 2018-01-02 │      2 │ hit       │   3 │
└────────────┴────────┴───────────┴─────┘

Virtual Columnas

  • _table — Contains the name of the table from which data was read. Type: Cadena.

    Puede establecer las condiciones constantes en _table en el WHERE/PREWHERE cláusula (por ejemplo, WHERE _table='xyz'). En este caso, la operación de lectura se realiza sólo para las tablas donde la condición en _table está satisfecho, por lo que el _table columna actúa como un índice.

Ver también

Artículo Original