update atomic.md

This commit is contained in:
Anna 2021-03-23 00:08:08 +03:00
parent 555a4fd1d7
commit cdbb7ec491
2 changed files with 35 additions and 37 deletions

View File

@ -10,31 +10,27 @@ It supports non-blocking `DROP` and `RENAME TABLE` queries and atomic `EXCHANGE
## Creating a Database {#creating-a-database}
``` sql
CREATE DATABASE test ENGINE = Atomic;
CREATE DATABASE test[ ENGINE = Atomic];
```
**Engine Parameters**
## Data Types Support {#data_types-support}
| EngineName | ClickHouse |
|-----------------------|------------------------------------|
| NativeDataTypeName | [ClickHouseDataTypeName](link#) |
## Specifics and recommendations {#specifics-and-recommendations}
All tables in database `Atomic` have persistent UUID and store data in `/clickhouse_path/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/`, where `xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy` is UUID of the table.
`RENAME` queries are performed without changing UUID and moving table data.
Tables in `Atomic` databases can be accessed by UUID through DatabaseCatalog.
On `DROP TABLE` no data is removed, database `Atomic` just marks table as dropped by moving metadata to `/clickhouse_path/metadata_dropped/` and notifies DatabaseCatalog.
Running queries still may use dropped table. Table will be actually removed when it's not in use.
Allows to execute `RENAME` and `DROP` without IStorage-level RWLocks.
All tables in database `Atomic` have persistent [UUID](../../sql-reference/data-types/uuid.md) and store data in directory `/clickhouse_path/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/`, where `xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy` is UUID of the table. Tables in `Atomic` databases can be accessed by UUID through DatabaseCatalog.
### DROP TABLE
On `DROP TABLE` no data is removed, database `Atomic` just marks table as dropped by moving metadata to `/clickhouse_path/metadata_dropped/` and notifies DatabaseCatalog. Running queries still may use dropped table. Table will be actually removed when it's not in use.
### RENAME TABLE
`RENAME` queries are performed without changing UUID and moving table data. `RENAME` and `DROP` are execute without IStorage-level RWLocks.
### DELETE/DETACH
`DELETE` and `DETACH` queries are executed asynchronously — waits for the running `SELECT` queries to finish but is invisible to the new queries.
## Usage Example {#usage-example}
The example must show usage and use cases. The following text contains the recommended parts of this section.
Input table:
``` text
@ -50,4 +46,6 @@ Result:
``` text
```
Follow up with any text to clarify the example.
## See Also
- [system.databases](../../operations/system-tables/databases.md) system table

View File

@ -5,31 +5,29 @@ toc_title: Atomic
# Atomic {#atomic}
Поддерживает неблокирующие запросы `DROP` и `RENAME TABLE` и запросы `EXCHANGE TABLES t1 AND t2`. Движок `Atomic` используется по умолчанию.
Поддерживает неблокирующие запросы `DROP` и `RENAME TABLE` и атомарные запросы `EXCHANGE TABLES t1 AND t2`. Движок `Atomic` используется по умолчанию.
## Создание БД {#creating-a-database}
``` sql
CREATE DATABASE test ENGINE = Atomic;
CREATE DATABASE test[ ENGINE = Atomic];
```
**Параметры движка**
## Поддержка типов данных {#data_types-support}
| EngineName | ClickHouse |
|-----------------------|------------------------------------|
| NativeDataTypeName | [ClickHouseDataTypeName](link#) |
## Особенности и рекомендации {#specifics-and-recommendations}
Каждая таблица в базе данных `Atomic` имеет уникальный UUID и хранит данные в папке `/clickhouse_path/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/`, где `xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy` - это UUID таблицы.
Запросы `RENAME` выполняются без изменения UUID и перемещения табличных данных.
Можно получить доступ к любой таблице базы данных `Atomic` по ее UUID через DatabaseCatalog.
При выполнении запроса `DROP TABLE` никакие данные не удаляются. Таблица помечается как удаленная, метаданные перемещаются в папку `/clickhouse_path/metadata_dropped/` и база данных уведомляет DatabaseCatalog.
Запущенные запросы все еще могут использовать удаленную таблицу. Таблица будет фактически удалена, когда она не будет использоваться.
Позволяет выполнять `RENAME` и `DROP` без RWLocks на уровне хранилища.
Каждая таблица в базе данных `Atomic` имеет уникальный [UUID](../../sql-reference/data-types/uuid.md) и хранит данные в папке `/clickhouse_path/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/`, где `xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy` - это UUID таблицы. Можно получить доступ к любой таблице базы данных `Atomic` по ее UUID через DatabaseCatalog.
### DROP TABLE
При выполнении запроса `DROP TABLE` никакие данные не удаляются. Таблица помечается как удаленная, метаданные перемещаются в папку `/clickhouse_path/metadata_dropped/` и база данных уведомляет DatabaseCatalog. Запущенные запросы все еще могут использовать удаленную таблицу. Таблица будет фактически удалена, когда она не будет использоваться.
### RENAME TABLE
Запросы `RENAME` выполняются без изменения UUID и перемещения табличных данных. `RENAME` и `DROP` не требуют RWLocks на уровне хранилища.
### DELETE/DETACH
Запросы `DELETE` и `DETACH` выполняются асинхронно — база данных ожидает завершения запущенных запросов `SELECT`, но невидима для новых запросов.
## Примеры использования {#usage-example}
@ -48,4 +46,6 @@ toc_title: Atomic
``` text
```
Follow up with any text to clarify the example.
## Смотрите также
- Системная таблица [system.databases](../../operations/system-tables/databases.md).