From c2ee4b3ee48e6ece0b9903449aecdf4bb78e12d1 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 28 Jul 2021 20:24:14 +0000 Subject: [PATCH 01/20] typo --- docs/en/engines/database-engines/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/engines/database-engines/index.md b/docs/en/engines/database-engines/index.md index 264f7a44a4e..1d1028cbeb5 100644 --- a/docs/en/engines/database-engines/index.md +++ b/docs/en/engines/database-engines/index.md @@ -8,7 +8,7 @@ toc_title: Introduction Database engines allow you to work with tables. -By default, ClickHouse uses database engine [Atomic](../../engines/database-engines/atomic.md). It is provides configurable [table engines](../../engines/table-engines/index.md) and an [SQL dialect](../../sql-reference/syntax.md). +By default, ClickHouse uses database engine [Atomic](../../engines/database-engines/atomic.md). It provides configurable [table engines](../../engines/table-engines/index.md) and an [SQL dialect](../../sql-reference/syntax.md). You can also use the following database engines: From 788e690ba811bb3ef17ade401d8d84e954348a4e Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 1 Aug 2021 13:02:35 +0000 Subject: [PATCH 02/20] First draft --- docs/en/sql-reference/statements/attach.md | 27 +++++++++-- docs/en/sql-reference/statements/detach.md | 15 ++++-- docs/en/sql-reference/statements/exchange.md | 41 ++++++++++++++++ docs/en/sql-reference/statements/rename.md | 50 ++++++++++++++++++-- 4 files changed, 118 insertions(+), 15 deletions(-) create mode 100644 docs/en/sql-reference/statements/exchange.md diff --git a/docs/en/sql-reference/statements/attach.md b/docs/en/sql-reference/statements/attach.md index 84165d30357..03ef2e54a93 100644 --- a/docs/en/sql-reference/statements/attach.md +++ b/docs/en/sql-reference/statements/attach.md @@ -5,14 +5,21 @@ toc_title: ATTACH # ATTACH Statement {#attach} -Attaches the table, for example, when moving a database to another server. +Attaches a table or a dictionary, for example, when moving a database to another server. + +**Syntax** + +``` sql +ATTACH TABLE|DICTIONARY [IF NOT EXISTS] [db.]name [ON CLUSTER cluster] +``` The query does not create data on the disk, but assumes that data is already in the appropriate places, and just adds information about the table to the server. After executing an `ATTACH` query, the server will know about the existence of the table. -If the table was previously detached ([DETACH](../../sql-reference/statements/detach.md)) query, meaning that its structure is known, you can use shorthand without defining the structure. +If a table or a dictionary was previously detached ([DETACH](../../sql-reference/statements/detach.md) query), meaning that its structure is known, you can use shorthand without defining the structure. -## Syntax Forms {#syntax-forms} -### Attach Existing Table {#attach-existing-table} +## Attach Existing Table {#attach-existing-table} + +**Syntax** ``` sql ATTACH TABLE [IF NOT EXISTS] [db.]name [ON CLUSTER cluster] @@ -22,10 +29,12 @@ This query is used when starting the server. The server stores table metadata as If the table was detached permanently, it won't be reattached at the server start, so you need to use `ATTACH` query explicitly. -### Сreate New Table And Attach Data {#create-new-table-and-attach-data} +## Сreate New Table And Attach Data {#create-new-table-and-attach-data} **With specify path to table data** +**Syntax** + ```sql ATTACH TABLE name FROM 'path/to/data/' (col1 Type1, ...) ``` @@ -57,3 +66,11 @@ ATTACH TABLE name UUID '' (col1 Type1, ...) ``` It creates new table with provided structure and attaches data from table with the specified UUID. + +## Attach Existing Dictionary {#attach-existing-dictionary} + +**Syntax** + +``` sql +ATTACH DICTIONARY [IF NOT EXISTS] [db.]name [ON CLUSTER cluster] +``` diff --git a/docs/en/sql-reference/statements/detach.md b/docs/en/sql-reference/statements/detach.md index 049c5a5dad9..a84432745c5 100644 --- a/docs/en/sql-reference/statements/detach.md +++ b/docs/en/sql-reference/statements/detach.md @@ -5,17 +5,18 @@ toc_title: DETACH # DETACH Statement {#detach} -Makes the server "forget" about the existence of the table or materialized view. +Makes the server "forget" about the existence of a table, a materialized view or a dictionary. Syntax: ``` sql -DETACH TABLE|VIEW [IF EXISTS] [db.]name [ON CLUSTER cluster] [PERMANENTLY] +DETACH TABLE|VIEW|DICTIONARY [IF EXISTS] [db.]name [ON CLUSTER cluster] [PERMANENTLY] ``` -Detaching does not delete the data or metadata for the table or materialized view. If the table or view was not detached `PERMANENTLY`, on the next server launch the server will read the metadata and recall the table/view again. If the table or view was detached `PERMANENTLY`, there will be no automatic recall. +Detaching does not delete the data or metadata of the table, the materialized view or the dictionary. If the entity was not detached `PERMANENTLY`, on the next server launch the server will read the metadata and recall the table/view/dictionary again. If the entiry was detached `PERMANENTLY`, there will be no automatic recall. -Whether the table was detached permanently or not, in both cases you can reattach it using the [ATTACH](../../sql-reference/statements/attach.md). System log tables can be also attached back (e.g. `query_log`, `text_log`, etc). Other system tables can't be reattached. On the next server launch the server will recall those tables again. +Whether a table or a dictionary was detached permanently or not, in both cases you can reattach them using the [ATTACH](../../sql-reference/statements/attach.md). +System log tables can be also attached back (e.g. `query_log`, `text_log`, etc). Other system tables can't be reattached. On the next server launch the server will recall those tables again. `ATTACH MATERIALIZED VIEW` does not work with short syntax (without `SELECT`), but you can attach it using the `ATTACH TABLE` query. @@ -67,4 +68,8 @@ Received exception from server (version 21.4.1): Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Table default.test does not exist. ``` -[Original article](https://clickhouse.tech/docs/en/sql-reference/statements/detach/) +**See Also** + +- [Materialized View](../../sql-reference/statements/create/view.md/#materialized) +- [Dictionaries](../../sql-reference/dictionaries/index.md) + diff --git a/docs/en/sql-reference/statements/exchange.md b/docs/en/sql-reference/statements/exchange.md new file mode 100644 index 00000000000..c56a2224746 --- /dev/null +++ b/docs/en/sql-reference/statements/exchange.md @@ -0,0 +1,41 @@ +--- +toc_priority: 49 +toc_title: EXCHANGE +--- + +# EXCHANGE Statement {#exchange} + +Exchanges names of two tables or dictionaries in an atomic query. + +!!! note "Note" + An `EXCHANGE` query is supported by [Atomic](../../engines/database-engines/atomic.md) database engine only. + +**Syntax** + +```sql +EXCHANGE TABLES|DICTIONARIES [db0.]name_A AND [db1.]name_B +``` + +## EXCHANGE TABLES {#exchange_tables} + +Exchanges names of two tables in an atomic query. + +**Syntax** + +```sql +EXCHANGE TABLES [db0.]table_A AND [db1.]table_B +``` + +## EXCHANGE DICTIONARIES {#exchange_dictionaries} + +Exchanges names of two dictionaries in an atomic query. + +**Syntax** + +```sql +EXCHANGE DICTIONARIES [db0.]dict_A AND [db1.]dict_B +``` + +**See Also** + +- [Dictionaries](../../sql-reference/dictionaries/index.md) diff --git a/docs/en/sql-reference/statements/rename.md b/docs/en/sql-reference/statements/rename.md index 3591c187e93..5d1b56e14ef 100644 --- a/docs/en/sql-reference/statements/rename.md +++ b/docs/en/sql-reference/statements/rename.md @@ -5,18 +5,58 @@ toc_title: RENAME # RENAME Statement {#misc_operations-rename} -## RENAME DATABASE {#misc_operations-rename_database} -Renames database, it is supported only for Atomic database engine. +Renames databases, tables and dictionaries. Several entities can be renamed in a single query. +Note that the `RENAME` query with several entities is non-atomic operation. To swap entity names atomically, use [EXCHANGE](./exchange.md) statement. +!!! note "Note" + A `RENAME` query is supported by [Atomic](../../engines/database-engines/atomic.md) database engine only. + +**Syntax** + +```sql +RENAME DATABASE|TABLE|DICTIONARY name TO new_name [,...] [ON CLUSTER cluster] ``` -RENAME DATABASE atomic_database1 TO atomic_database2 [ON CLUSTER cluster] + +## RENAME DATABASE {#misc_operations-rename_database} + +Renames databases. I + +**Syntax** + +sql +``` +RENAME DATABASE atomic_database1 TO atomic_database2 [,...] [ON CLUSTER cluster] ``` ## RENAME TABLE {#misc_operations-rename_table} + Renames one or more tables. +**Syntax** + ``` sql -RENAME TABLE [db11.]name11 TO [db12.]name12, [db21.]name21 TO [db22.]name22, ... [ON CLUSTER cluster] +RENAME TABLE [db1.]name1 TO [db2.]name2 [,...] [ON CLUSTER cluster] ``` -Renaming tables is a light operation. If you indicated another database after `TO`, the table will be moved to this database. However, the directories with databases must reside in the same file system (otherwise, an error is returned). If you rename multiple tables in one query, this is a non-atomic operation, it may be partially executed, queries in other sessions may receive the error `Table ... does not exist ..`. +Renaming tables is a light operation. If you pass a different database after `TO`, the table will be moved to this database. However, the directories with databases must reside in the same file system. Otherwise, an error is returned. +If you rename multiple tables in one query, this is a non-atomic operation, it may be partially executed, queries in other sessions may receive the error `Table ... does not exist ..`. + +**Example** + +```sql +RENAME TABLE table_A TO table_A_bak, table_B TO table_B_bak; +``` + +## RENAME DICTIONARY {#rename_dictionary} + +Renames one or several dictionaries. This query can be used to move dictionaries between databases. + +**Syntax** + +```sql +RENAME DICTIONARY [db0.]dict_A TO [db1.]dict_B [,...] [ON CLUSTER cluster] +``` + +**See Also** + +- [Dictionaries](../../sql-reference/dictionaries/index.md) \ No newline at end of file From 0a36d8a607a69cce1c05f7296e62abc591ff9083 Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 1 Aug 2021 13:03:02 +0000 Subject: [PATCH 03/20] SET moved in the TOC --- docs/en/sql-reference/statements/set.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/statements/set.md b/docs/en/sql-reference/statements/set.md index c6c8d28257d..e5de5c41284 100644 --- a/docs/en/sql-reference/statements/set.md +++ b/docs/en/sql-reference/statements/set.md @@ -1,5 +1,5 @@ --- -toc_priority: 49 +toc_priority: 50 toc_title: SET --- From 722e092059a1192f9af58152f1324030cd2100ef Mon Sep 17 00:00:00 2001 From: Alexey Date: Sun, 1 Aug 2021 16:17:50 +0000 Subject: [PATCH 04/20] Updates --- docs/en/sql-reference/statements/attach.md | 8 ++++---- docs/en/sql-reference/statements/detach.md | 8 ++++---- docs/en/sql-reference/statements/exchange.md | 9 +++++---- docs/en/sql-reference/statements/rename.md | 15 +++++++-------- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/en/sql-reference/statements/attach.md b/docs/en/sql-reference/statements/attach.md index 03ef2e54a93..63e4b87b9f8 100644 --- a/docs/en/sql-reference/statements/attach.md +++ b/docs/en/sql-reference/statements/attach.md @@ -10,12 +10,12 @@ Attaches a table or a dictionary, for example, when moving a database to another **Syntax** ``` sql -ATTACH TABLE|DICTIONARY [IF NOT EXISTS] [db.]name [ON CLUSTER cluster] +ATTACH TABLE|DICTIONARY [IF NOT EXISTS] [db.]name [ON CLUSTER cluster] ... ``` -The query does not create data on the disk, but assumes that data is already in the appropriate places, and just adds information about the table to the server. After executing an `ATTACH` query, the server will know about the existence of the table. +The query does not create data on the disk, but assumes that data is already in the appropriate places, and just adds information about the table or the dictionary to the server. After executing the `ATTACH` query, the server will know about the existence of the table or the dictionary. -If a table or a dictionary was previously detached ([DETACH](../../sql-reference/statements/detach.md) query), meaning that its structure is known, you can use shorthand without defining the structure. +If a table was previously detached ([DETACH](../../sql-reference/statements/detach.md) query), meaning that its structure is known, you can use shorthand without defining the structure. ## Attach Existing Table {#attach-existing-table} @@ -29,7 +29,7 @@ This query is used when starting the server. The server stores table metadata as If the table was detached permanently, it won't be reattached at the server start, so you need to use `ATTACH` query explicitly. -## Сreate New Table And Attach Data {#create-new-table-and-attach-data} +## Create New Table And Attach Data {#create-new-table-and-attach-data} **With specify path to table data** diff --git a/docs/en/sql-reference/statements/detach.md b/docs/en/sql-reference/statements/detach.md index a84432745c5..4260c914962 100644 --- a/docs/en/sql-reference/statements/detach.md +++ b/docs/en/sql-reference/statements/detach.md @@ -7,15 +7,15 @@ toc_title: DETACH Makes the server "forget" about the existence of a table, a materialized view or a dictionary. -Syntax: +**Syntax** ``` sql DETACH TABLE|VIEW|DICTIONARY [IF EXISTS] [db.]name [ON CLUSTER cluster] [PERMANENTLY] ``` -Detaching does not delete the data or metadata of the table, the materialized view or the dictionary. If the entity was not detached `PERMANENTLY`, on the next server launch the server will read the metadata and recall the table/view/dictionary again. If the entiry was detached `PERMANENTLY`, there will be no automatic recall. +Detaching does not delete the data or metadata of the table, the materialized view or the dictionary. If the entity was not detached `PERMANENTLY`, on the next server launch the server will read the metadata and recall the table/view/dictionary again. If the entity was detached `PERMANENTLY`, there will be no automatic recall. -Whether a table or a dictionary was detached permanently or not, in both cases you can reattach them using the [ATTACH](../../sql-reference/statements/attach.md). +Whether a table or a dictionary was detached permanently or not, in both cases you can reattach them using the [ATTACH](../../sql-reference/statements/attach.md) query. System log tables can be also attached back (e.g. `query_log`, `text_log`, etc). Other system tables can't be reattached. On the next server launch the server will recall those tables again. `ATTACH MATERIALIZED VIEW` does not work with short syntax (without `SELECT`), but you can attach it using the `ATTACH TABLE` query. @@ -70,6 +70,6 @@ Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Table defa **See Also** -- [Materialized View](../../sql-reference/statements/create/view.md/#materialized) +- [Materialized View](../../sql-reference/statements/create/view.md#materialized) - [Dictionaries](../../sql-reference/dictionaries/index.md) diff --git a/docs/en/sql-reference/statements/exchange.md b/docs/en/sql-reference/statements/exchange.md index c56a2224746..7abc86330ba 100644 --- a/docs/en/sql-reference/statements/exchange.md +++ b/docs/en/sql-reference/statements/exchange.md @@ -5,10 +5,11 @@ toc_title: EXCHANGE # EXCHANGE Statement {#exchange} -Exchanges names of two tables or dictionaries in an atomic query. +Exchanges the names of two tables or dictionaries atomically. +This task can also be accomplished with a [RENAME](./rename.md) query using a temporary name. But the operation in not atomic in that case. !!! note "Note" - An `EXCHANGE` query is supported by [Atomic](../../engines/database-engines/atomic.md) database engine only. + The `EXCHANGE` query is supported by the [Atomic](../../engines/database-engines/atomic.md) database engine only. **Syntax** @@ -18,7 +19,7 @@ EXCHANGE TABLES|DICTIONARIES [db0.]name_A AND [db1.]name_B ## EXCHANGE TABLES {#exchange_tables} -Exchanges names of two tables in an atomic query. +Exchanges the names of two tables. **Syntax** @@ -28,7 +29,7 @@ EXCHANGE TABLES [db0.]table_A AND [db1.]table_B ## EXCHANGE DICTIONARIES {#exchange_dictionaries} -Exchanges names of two dictionaries in an atomic query. +Exchanges the names of two dictionaries. **Syntax** diff --git a/docs/en/sql-reference/statements/rename.md b/docs/en/sql-reference/statements/rename.md index 5d1b56e14ef..a2c4a305dce 100644 --- a/docs/en/sql-reference/statements/rename.md +++ b/docs/en/sql-reference/statements/rename.md @@ -5,11 +5,11 @@ toc_title: RENAME # RENAME Statement {#misc_operations-rename} -Renames databases, tables and dictionaries. Several entities can be renamed in a single query. +Renames databases, tables or dictionaries. Several entities can be renamed in a single query. Note that the `RENAME` query with several entities is non-atomic operation. To swap entity names atomically, use [EXCHANGE](./exchange.md) statement. !!! note "Note" - A `RENAME` query is supported by [Atomic](../../engines/database-engines/atomic.md) database engine only. + The `RENAME` query is supported by the [Atomic](../../engines/database-engines/atomic.md) database engine only. **Syntax** @@ -19,12 +19,11 @@ RENAME DATABASE|TABLE|DICTIONARY name TO new_name [,...] [ON CLUSTER cluster] ## RENAME DATABASE {#misc_operations-rename_database} -Renames databases. I +Renames databases. **Syntax** -sql -``` +```sql RENAME DATABASE atomic_database1 TO atomic_database2 [,...] [ON CLUSTER cluster] ``` @@ -32,15 +31,15 @@ RENAME DATABASE atomic_database1 TO atomic_database2 [,...] [ON CLUSTER cluster] Renames one or more tables. +Renaming tables is a light operation. If you pass a different database after `TO`, the table will be moved to this database. However, the directories with databases must reside in the same file system. Otherwise, an error is returned. +If you rename multiple tables in one query, the operation is not atomic. It may be partially executed, and queries in other sessions may get `Table ... does not exist ...` error. + **Syntax** ``` sql RENAME TABLE [db1.]name1 TO [db2.]name2 [,...] [ON CLUSTER cluster] ``` -Renaming tables is a light operation. If you pass a different database after `TO`, the table will be moved to this database. However, the directories with databases must reside in the same file system. Otherwise, an error is returned. -If you rename multiple tables in one query, this is a non-atomic operation, it may be partially executed, queries in other sessions may receive the error `Table ... does not exist ..`. - **Example** ```sql From 2b6ffab384f00b42c5bbaf7451437c795dba022b Mon Sep 17 00:00:00 2001 From: lehasm Date: Tue, 3 Aug 2021 23:03:13 +0300 Subject: [PATCH 05/20] Update docs/en/sql-reference/statements/detach.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/sql-reference/statements/detach.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/en/sql-reference/statements/detach.md b/docs/en/sql-reference/statements/detach.md index 4260c914962..4c8ce355eb4 100644 --- a/docs/en/sql-reference/statements/detach.md +++ b/docs/en/sql-reference/statements/detach.md @@ -5,7 +5,7 @@ toc_title: DETACH # DETACH Statement {#detach} -Makes the server "forget" about the existence of a table, a materialized view or a dictionary. +Makes the server "forget" about the existence of a table, a materialized view, or a dictionary. **Syntax** @@ -72,4 +72,3 @@ Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Table defa - [Materialized View](../../sql-reference/statements/create/view.md#materialized) - [Dictionaries](../../sql-reference/dictionaries/index.md) - From 45e98e20c1307546b385048752bbae324947e449 Mon Sep 17 00:00:00 2001 From: lehasm Date: Tue, 3 Aug 2021 23:04:57 +0300 Subject: [PATCH 06/20] Update docs/en/sql-reference/statements/detach.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/sql-reference/statements/detach.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/statements/detach.md b/docs/en/sql-reference/statements/detach.md index 4c8ce355eb4..b77bcbc00fb 100644 --- a/docs/en/sql-reference/statements/detach.md +++ b/docs/en/sql-reference/statements/detach.md @@ -13,7 +13,7 @@ Makes the server "forget" about the existence of a table, a materialized view, o DETACH TABLE|VIEW|DICTIONARY [IF EXISTS] [db.]name [ON CLUSTER cluster] [PERMANENTLY] ``` -Detaching does not delete the data or metadata of the table, the materialized view or the dictionary. If the entity was not detached `PERMANENTLY`, on the next server launch the server will read the metadata and recall the table/view/dictionary again. If the entity was detached `PERMANENTLY`, there will be no automatic recall. +Detaching does not delete the data or metadata of a table, a materialized view or a dictionary. If an entity was not detached `PERMANENTLY`, on the next server launch the server will read the metadata and recall the table/view/dictionary again. If an entity was detached `PERMANENTLY`, there will be no automatic recall. Whether a table or a dictionary was detached permanently or not, in both cases you can reattach them using the [ATTACH](../../sql-reference/statements/attach.md) query. System log tables can be also attached back (e.g. `query_log`, `text_log`, etc). Other system tables can't be reattached. On the next server launch the server will recall those tables again. From 1ad5606c52bd48863f2d3c0232814be63c063439 Mon Sep 17 00:00:00 2001 From: lehasm Date: Tue, 3 Aug 2021 23:05:32 +0300 Subject: [PATCH 07/20] Update docs/en/sql-reference/statements/exchange.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/sql-reference/statements/exchange.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/statements/exchange.md b/docs/en/sql-reference/statements/exchange.md index 7abc86330ba..91b0c48ddcf 100644 --- a/docs/en/sql-reference/statements/exchange.md +++ b/docs/en/sql-reference/statements/exchange.md @@ -6,7 +6,7 @@ toc_title: EXCHANGE # EXCHANGE Statement {#exchange} Exchanges the names of two tables or dictionaries atomically. -This task can also be accomplished with a [RENAME](./rename.md) query using a temporary name. But the operation in not atomic in that case. +This task can also be accomplished with a [RENAME](./rename.md) query using a temporary name, but the operation is not atomic in that case. !!! note "Note" The `EXCHANGE` query is supported by the [Atomic](../../engines/database-engines/atomic.md) database engine only. From 90a682df133e353759833c4ffa93e666800130dd Mon Sep 17 00:00:00 2001 From: lehasm Date: Tue, 3 Aug 2021 23:05:48 +0300 Subject: [PATCH 08/20] Update docs/en/sql-reference/statements/rename.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/sql-reference/statements/rename.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/sql-reference/statements/rename.md b/docs/en/sql-reference/statements/rename.md index a2c4a305dce..54df3520b37 100644 --- a/docs/en/sql-reference/statements/rename.md +++ b/docs/en/sql-reference/statements/rename.md @@ -5,7 +5,7 @@ toc_title: RENAME # RENAME Statement {#misc_operations-rename} -Renames databases, tables or dictionaries. Several entities can be renamed in a single query. +Renames databases, tables, or dictionaries. Several entities can be renamed in a single query. Note that the `RENAME` query with several entities is non-atomic operation. To swap entity names atomically, use [EXCHANGE](./exchange.md) statement. !!! note "Note" @@ -58,4 +58,4 @@ RENAME DICTIONARY [db0.]dict_A TO [db1.]dict_B [,...] [ON CLUSTER cluster] **See Also** -- [Dictionaries](../../sql-reference/dictionaries/index.md) \ No newline at end of file +- [Dictionaries](../../sql-reference/dictionaries/index.md) From b073d2b88c2544f555bf3a7b472fe3bd4758c5ed Mon Sep 17 00:00:00 2001 From: lehasm Date: Tue, 3 Aug 2021 23:06:39 +0300 Subject: [PATCH 09/20] Update docs/en/sql-reference/statements/rename.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/sql-reference/statements/rename.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/statements/rename.md b/docs/en/sql-reference/statements/rename.md index 54df3520b37..c2192f1a6e1 100644 --- a/docs/en/sql-reference/statements/rename.md +++ b/docs/en/sql-reference/statements/rename.md @@ -6,7 +6,7 @@ toc_title: RENAME # RENAME Statement {#misc_operations-rename} Renames databases, tables, or dictionaries. Several entities can be renamed in a single query. -Note that the `RENAME` query with several entities is non-atomic operation. To swap entity names atomically, use [EXCHANGE](./exchange.md) statement. +Note that the `RENAME` query with several entities is non-atomic operation. To swap entities names atomically, use the [EXCHANGE](./exchange.md) statement. !!! note "Note" The `RENAME` query is supported by the [Atomic](../../engines/database-engines/atomic.md) database engine only. From c7b520aabc77015a2a55d245793e8dc4ffb5dbda Mon Sep 17 00:00:00 2001 From: lehasm Date: Tue, 3 Aug 2021 23:07:12 +0300 Subject: [PATCH 10/20] Update docs/en/sql-reference/statements/attach.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/sql-reference/statements/attach.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/statements/attach.md b/docs/en/sql-reference/statements/attach.md index 63e4b87b9f8..766b3ba0e19 100644 --- a/docs/en/sql-reference/statements/attach.md +++ b/docs/en/sql-reference/statements/attach.md @@ -31,7 +31,7 @@ If the table was detached permanently, it won't be reattached at the server star ## Create New Table And Attach Data {#create-new-table-and-attach-data} -**With specify path to table data** +### With Specified Path to Table Data {#attach-with-specified-path} **Syntax** From 42c5cd80d94ffd9aa51abf9a15be184dfb89cc33 Mon Sep 17 00:00:00 2001 From: Alexey Date: Tue, 3 Aug 2021 20:47:09 +0000 Subject: [PATCH 11/20] Yet another header. Other changes. --- docs/en/sql-reference/statements/attach.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/en/sql-reference/statements/attach.md b/docs/en/sql-reference/statements/attach.md index 766b3ba0e19..2949ac6db38 100644 --- a/docs/en/sql-reference/statements/attach.md +++ b/docs/en/sql-reference/statements/attach.md @@ -33,14 +33,14 @@ If the table was detached permanently, it won't be reattached at the server star ### With Specified Path to Table Data {#attach-with-specified-path} +The query creates a new table with provided structure and attaches table data from the provided directory in `user_files`. + **Syntax** ```sql ATTACH TABLE name FROM 'path/to/data/' (col1 Type1, ...) ``` -It creates new table with provided structure and attaches table data from provided directory in `user_files`. - **Example** Query: @@ -59,16 +59,21 @@ Result: └──────┴────┘ ``` -**With specify table UUID** (Only for `Atomic` database) +### With Specified Table UUID {#attach-with-specified-uuid} + +This query creates a new table with provided structure and attaches data from the table with the specified UUID. +It is supported by the [Atomic](../../engines/database-engines/atomic.md) database engine. + +**Syntax** ```sql ATTACH TABLE name UUID '' (col1 Type1, ...) ``` -It creates new table with provided structure and attaches data from table with the specified UUID. - ## Attach Existing Dictionary {#attach-existing-dictionary} +Attaches a previously detached dictionary. + **Syntax** ``` sql From 46f153a3d2ccb770bb61541f4c03ebb90c08ca60 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 4 Aug 2021 06:46:20 +0000 Subject: [PATCH 12/20] Translation to Russian --- docs/ru/sql-reference/statements/attach.md | 44 ++++++++++++----- docs/ru/sql-reference/statements/detach.md | 12 +++-- docs/ru/sql-reference/statements/exchange.md | 42 ++++++++++++++++ docs/ru/sql-reference/statements/rename.md | 50 +++++++++++++++++--- 4 files changed, 127 insertions(+), 21 deletions(-) create mode 100644 docs/ru/sql-reference/statements/exchange.md diff --git a/docs/ru/sql-reference/statements/attach.md b/docs/ru/sql-reference/statements/attach.md index 2ffd0fe8d5b..d998f41d629 100644 --- a/docs/ru/sql-reference/statements/attach.md +++ b/docs/ru/sql-reference/statements/attach.md @@ -3,16 +3,23 @@ toc_priority: 40 toc_title: ATTACH --- -# ATTACH Statement {#attach} +# Выражение ATTACH {#attach} -Выполняет подключение таблицы, например, при перемещении базы данных на другой сервер. +Выполняет подключение таблицы или словаря, например, при перемещении базы данных на другой сервер. -Запрос не создаёт данные на диске, а предполагает, что данные уже лежат в соответствующих местах, и всего лишь добавляет информацию о таблице на сервер. После выполнения запроса `ATTACH` сервер будет знать о существовании таблицы. +**Синтаксис** + +``` sql +ATTACH TABLE|DICTIONARY [IF NOT EXISTS] [db.]name [ON CLUSTER cluster] ... +``` + +Запрос не создаёт данные на диске, а предполагает, что данные уже лежат в соответствующих местах, и всего лишь добавляет информацию о таблице или словаре на сервер. После выполнения запроса `ATTACH` сервер будет знать о существовании таблицы или словаря. Если таблица перед этим была отключена при помощи ([DETACH](../../sql-reference/statements/detach.md)), т.е. её структура известна, можно использовать сокращенную форму записи без определения структуры. -## Варианты синтаксиса {#syntax-forms} -### Присоединение существующей таблицы {#attach-existing-table} +## Присоединение существующей таблицы {#attach-existing-table} + +**Синтаксис** ``` sql ATTACH TABLE [IF NOT EXISTS] [db.]name [ON CLUSTER cluster] @@ -22,16 +29,18 @@ ATTACH TABLE [IF NOT EXISTS] [db.]name [ON CLUSTER cluster] Если таблица была отключена перманентно, она не будет подключена обратно во время старта сервера, так что нужно явно использовать запрос `ATTACH`, чтобы подключить ее. -### Создание новой таблицы и присоединение данных {#create-new-table-and-attach-data} +## Создание новой таблицы и присоединение данных {#create-new-table-and-attach-data} -**С указанием пути к табличным данным** +### С указанием пути к табличным данным {#attach-with-specified-path} + +Запрос создает новую таблицу с указанной структурой и присоединяет табличные данные из соответствующего каталога в `user_files`. + +**Синтаксис** ```sql ATTACH TABLE name FROM 'path/to/data/' (col1 Type1, ...) ``` -Cоздает новую таблицу с указанной структурой и присоединяет табличные данные из соответствующего каталога в `user_files`. - **Пример** Запрос: @@ -50,10 +59,23 @@ SELECT * FROM test; └──────┴────┘ ``` -**С указанием UUID таблицы** (Только для баз данных `Atomic`) +### С указанием UUID таблицы {#attach-with-specified-uuid} + +Этот запрос создает новую таблицу с указанной структурой и присоединяет данные из таблицы с указанным UUID. +Запрос поддерживается только движком баз данных [Atomic](../../engines/database-engines/atomic.md). + +**Синтаксис** ```sql ATTACH TABLE name UUID '' (col1 Type1, ...) ``` -Cоздает новую таблицу с указанной структурой и присоединяет данные из таблицы с указанным UUID. +## Присоединение существующего словаря {#attach-existing-dictionary} + +Присоединяет ранее отключенный словарь. + +**Синтаксис** + +``` sql +ATTACH DICTIONARY [IF NOT EXISTS] [db.]name [ON CLUSTER cluster] +``` diff --git a/docs/ru/sql-reference/statements/detach.md b/docs/ru/sql-reference/statements/detach.md index af915d38772..cf9df619d3b 100644 --- a/docs/ru/sql-reference/statements/detach.md +++ b/docs/ru/sql-reference/statements/detach.md @@ -5,15 +5,15 @@ toc_title: DETACH # DETACH {#detach-statement} -Заставляет сервер "забыть" о существовании таблицы или материализованного представления. +Заставляет сервер "забыть" о существовании таблицы, материализованного представления или словаря. -Синтаксис: +**Синтаксис** ``` sql -DETACH TABLE|VIEW [IF EXISTS] [db.]name [ON CLUSTER cluster] [PERMANENTLY] +DETACH TABLE|VIEW|DICTIONARY [IF EXISTS] [db.]name [ON CLUSTER cluster] [PERMANENTLY] ``` -Но ни данные, ни метаданные таблицы или материализованного представления не удаляются. При следующем запуске сервера, если не было использовано `PERMANENTLY`, сервер прочитает метаданные и снова узнает о таблице/представлении. Если таблица или представление были отключены перманентно, сервер не подключит их обратно автоматически. +Такой запрос не удаляет ни данные, ни метаданные таблицы, материализованного представления или словаря. Если отключение не было перманентным (запрос без ключевого слова `PERMANENTLY`), то при следующем запуске сервер прочитает метаданные и снова узнает о таблице/представлении/словаре. Если сущность была отключена перманентно, то сервер не подключит их обратно автоматически. Независимо от того, каким способом таблица была отключена, ее можно подключить обратно с помощью запроса [ATTACH](../../sql-reference/statements/attach.md). Системные log таблицы также могут быть подключены обратно (к примеру `query_log`, `text_log` и др.) Другие системные таблицы не могут быть подключены обратно, но на следующем запуске сервер снова "вспомнит" об этих таблицах. @@ -67,3 +67,7 @@ Received exception from server (version 21.4.1): Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Table default.test doesn't exist. ``` +**Смотрите также** + +- [Материализованные представления](../../sql-reference/statements/create/view.md#materialized) +- [Словари](../../sql-reference/dictionaries/index.md) diff --git a/docs/ru/sql-reference/statements/exchange.md b/docs/ru/sql-reference/statements/exchange.md new file mode 100644 index 00000000000..eb66aee62c8 --- /dev/null +++ b/docs/ru/sql-reference/statements/exchange.md @@ -0,0 +1,42 @@ +--- +toc_priority: 49 +toc_title: EXCHANGE +--- + +# Выражение EXCHANGE {#exchange} + +Атомарно меняет друг с другом имена двух таблиц или словарей. +Это действие также можно выполнить с помощью запроса [RENAME](./rename.md), использую третье временное имя, но в таком случае действие неатомарно. + +!!! note "Примечание" + Запрос `EXCHANGE` поддерживается только движком баз данных [Atomic](../../engines/database-engines/atomic.md). + +**Синтаксис** + +```sql +EXCHANGE TABLES|DICTIONARIES [db0.]name_A AND [db1.]name_B +``` + +## EXCHANGE TABLES {#exchange_tables} + +Обменивает имена двух таблиц. + +**Синтаксис** + +```sql +EXCHANGE TABLES [db0.]table_A AND [db1.]table_B +``` + +## EXCHANGE DICTIONARIES {#exchange_dictionaries} + +Обменивает имена двух словарей. + +**Синтаксис** + +```sql +EXCHANGE DICTIONARIES [db0.]dict_A AND [db1.]dict_B +``` + +**Смотрите также** + +- [Словари](../../sql-reference/dictionaries/index.md) diff --git a/docs/ru/sql-reference/statements/rename.md b/docs/ru/sql-reference/statements/rename.md index b78505ce9c4..b043ec305e0 100644 --- a/docs/ru/sql-reference/statements/rename.md +++ b/docs/ru/sql-reference/statements/rename.md @@ -3,20 +3,58 @@ toc_priority: 48 toc_title: RENAME --- -# RENAME Statement {#misc_operations-rename} +# Выражение RENAME {#misc_operations-rename} + +Переименовывает базы данных, таблицы или словари. Несколько сущностей могут быть переименованы в одном запросе. +Обратите внимание, что запрос `RENAME` с несколькими сущностями это не атомарная операция. Чтобы обменять имена атомарно, используйте выражение [EXCHANGE](./exchange.md). + +!!! note "Примечание" + Запрос `RENAME` поддерживается только движком баз данных [Atomic](../../engines/database-engines/atomic.md). + +**Синтаксис** + +```sql +RENAME DATABASE|TABLE|DICTIONARY name TO new_name [,...] [ON CLUSTER cluster] +``` ## RENAME DATABASE {#misc_operations-rename_database} -Переименовывает базу данных, поддерживается только для движка базы данных Atomic. -``` -RENAME DATABASE atomic_database1 TO atomic_database2 [ON CLUSTER cluster] +Переименовывает базы данных. + +**Синтаксис** + +```sql +RENAME DATABASE atomic_database1 TO atomic_database2 [,...] [ON CLUSTER cluster] ``` ## RENAME TABLE {#misc_operations-rename_table} + Переименовывает одну или несколько таблиц. +Переименовывание таблиц является лёгкой операцией. Если вы указали после `TO` другую базу данных, то таблица будет перенесена в эту базу данных. При этом директории с базами данных должны быть расположены в одной файловой системе. Иначе возвращается ошибка. Если переименовывается несколько таблиц в одном запросе, то такая операция неатомарная. Она может выполнится частично, и запросы в других сессиях могут получить ошибку `Table ... doesn't exist...`. + +**Синтаксис** + ``` sql -RENAME TABLE [db11.]name11 TO [db12.]name12, [db21.]name21 TO [db22.]name22, ... [ON CLUSTER cluster] +RENAME TABLE [db1.]name1 TO [db2.]name2 [,...] [ON CLUSTER cluster] ``` -Переименовывание таблицы является лёгкой операцией. Если вы указали после `TO` другую базу данных, то таблица будет перенесена в эту базу данных. При этом, директории с базами данных должны быть расположены в одной файловой системе (иначе возвращается ошибка). В случае переименования нескольких таблиц в одном запросе — это неатомарная операция, может выполнится частично, запросы в других сессиях могут получить ошибку `Table ... doesn't exist...`. +**Пример** + +```sql +RENAME TABLE table_A TO table_A_bak, table_B TO table_B_bak; +``` + +## RENAME DICTIONARY {#rename_dictionary} + +Переименовывает один или несколько словарей. Этот запрос можно использовать для перемещения словарей между базами данных. + +**Синтаксис** + +```sql +RENAME DICTIONARY [db0.]dict_A TO [db1.]dict_B [,...] [ON CLUSTER cluster] +``` + +**Смотрите также** + +- [Словари](../../sql-reference/dictionaries/index.md) From 54e260ab121dfbf93f92b14bc7add3f33ae8457f Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 4 Aug 2021 20:52:55 +0000 Subject: [PATCH 13/20] Atomic engine updates Links added Minor fixes. Added ru settings default_replica_path default_replica_name --- docs/en/engines/database-engines/atomic.md | 12 ++++++------ docs/ru/engines/database-engines/atomic.md | 12 ++++++------ .../settings.md | 19 +++++++++++++++++++ 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/docs/en/engines/database-engines/atomic.md b/docs/en/engines/database-engines/atomic.md index bdab87aa4b1..dd9689d3e10 100644 --- a/docs/en/engines/database-engines/atomic.md +++ b/docs/en/engines/database-engines/atomic.md @@ -5,12 +5,12 @@ toc_title: Atomic # Atomic {#atomic} -It supports non-blocking [DROP TABLE](#drop-detach-table) and [RENAME TABLE](#rename-table) queries and atomic [EXCHANGE TABLES t1 AND t2](#exchange-tables) queries. `Atomic` database engine is used by default. +It supports non-blocking [DROP TABLE](#drop-detach-table) and [RENAME TABLE](#rename-table) queries and atomic [EXCHANGE TABLES](#exchange-tables) queries. `Atomic` database engine is used by default. ## Creating a Database {#creating-a-database} ``` sql - CREATE DATABASE test[ ENGINE = Atomic]; +CREATE DATABASE test [ENGINE = Atomic]; ``` ## Specifics and recommendations {#specifics-and-recommendations} @@ -25,16 +25,16 @@ CREATE TABLE name UUID '28f1c61c-2970-457a-bffe-454156ddcfef' (n UInt64) ENGINE ``` ### RENAME TABLE {#rename-table} -`RENAME` queries are performed without changing UUID and moving table data. These queries do not wait for the completion of queries using the table and will be executed instantly. +[RENAME](../../sql-reference/statements/rename.md) queries are performed without changing UUID and moving table data. These queries do not wait for the completion of queries using the table and will be executed instantly. ### DROP/DETACH TABLE {#drop-detach-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 background thread. Delay before final table data deletion is specify by [database_atomic_delay_before_drop_table_sec](../../operations/server-configuration-parameters/settings.md#database_atomic_delay_before_drop_table_sec) setting. You can specify synchronous mode using `SYNC` modifier. Use the [database_atomic_wait_for_drop_and_detach_synchronously](../../operations/settings/settings.md#database_atomic_wait_for_drop_and_detach_synchronously) setting to do this. In this case `DROP` waits for running `SELECT`, `INSERT` and other queries which are using the table to finish. Table will be actually removed when it's not in use. -### EXCHANGE TABLES {#exchange-tables} +### EXCHANGE TABLES/DICTIONARIES {#exchange-tables} -`EXCHANGE` query swaps tables atomically. So instead of this non-atomic operation: +[EXCHANGE](../../sql-reference/statements/exchange.md) query swaps tables or dictionaries atomically. For instance, instead of this non-atomic operation: ```sql RENAME TABLE new_table TO tmp, old_table TO new_table, tmp TO old_table; @@ -47,7 +47,7 @@ EXCHANGE TABLES new_table AND old_table; ### ReplicatedMergeTree in Atomic Database {#replicatedmergetree-in-atomic-database} -For [ReplicatedMergeTree](../table-engines/mergetree-family/replication.md#table_engines-replication) tables, it is recommended to not specify engine parameters - path in ZooKeeper and replica name. In this case, configuration parameters will be used [default_replica_path](../../operations/server-configuration-parameters/settings.md#default_replica_path) and [default_replica_name](../../operations/server-configuration-parameters/settings.md#default_replica_name). If you want to specify engine parameters explicitly, it is recommended to use `{uuid}` macros. This is useful so that unique paths are automatically generated for each table in ZooKeeper. +For [ReplicatedMergeTree](../table-engines/mergetree-family/replication.md#table_engines-replication) tables, it is recommended not to specify engine parameters - path in ZooKeeper and replica name. In this case, configuration parameters [default_replica_path](../../operations/server-configuration-parameters/settings.md#default_replica_path) and [default_replica_name](../../operations/server-configuration-parameters/settings.md#default_replica_name) will be used. If you want to specify engine parameters explicitly, it is recommended to use `{uuid}` macros. This is useful so that unique paths are automatically generated for each table in ZooKeeper. ## See Also diff --git a/docs/ru/engines/database-engines/atomic.md b/docs/ru/engines/database-engines/atomic.md index ecdd809b6ec..5578b6d7422 100644 --- a/docs/ru/engines/database-engines/atomic.md +++ b/docs/ru/engines/database-engines/atomic.md @@ -5,12 +5,12 @@ toc_title: Atomic # Atomic {#atomic} -Поддерживает неблокирующие запросы [DROP TABLE](#drop-detach-table) и [RENAME TABLE](#rename-table) и атомарные запросы [EXCHANGE TABLES t1 AND t](#exchange-tables). Движок `Atomic` используется по умолчанию. +Поддерживает неблокирующие запросы [DROP TABLE](#drop-detach-table) и [RENAME TABLE](#rename-table) и атомарные запросы [EXCHANGE TABLES](#exchange-tables). Движок `Atomic` используется по умолчанию. ## Создание БД {#creating-a-database} ``` sql - CREATE DATABASE test[ ENGINE = Atomic]; +CREATE DATABASE test [ENGINE = Atomic]; ``` ## Особенности и рекомендации {#specifics-and-recommendations} @@ -25,16 +25,16 @@ CREATE TABLE name UUID '28f1c61c-2970-457a-bffe-454156ddcfef' (n UInt64) ENGINE ``` ### RENAME TABLE {#rename-table} -Запросы `RENAME` выполняются без изменения UUID и перемещения табличных данных. Эти запросы не ожидают завершения использующих таблицу запросов и будут выполнены мгновенно. +Запросы [RENAME](../../sql-reference/statements/rename.md) выполняются без изменения UUID и перемещения табличных данных. Эти запросы не ожидают завершения использующих таблицу запросов и будут выполнены мгновенно. ### DROP/DETACH TABLE {#drop-detach-table} При выполнении запроса `DROP TABLE` никакие данные не удаляются. Таблица помечается как удаленная, метаданные перемещаются в папку `/clickhouse_path/metadata_dropped/` и база данных уведомляет фоновый поток. Задержка перед окончательным удалением данных задается настройкой [database_atomic_delay_before_drop_table_sec](../../operations/server-configuration-parameters/settings.md#database_atomic_delay_before_drop_table_sec). Вы можете задать синхронный режим, определяя модификатор `SYNC`. Используйте для этого настройку [database_atomic_wait_for_drop_and_detach_synchronously](../../operations/settings/settings.md#database_atomic_wait_for_drop_and_detach_synchronously). В этом случае запрос `DROP` ждет завершения `SELECT`, `INSERT` и других запросов, которые используют таблицу. Таблица будет фактически удалена, когда она не будет использоваться. -### EXCHANGE TABLES {#exchange-tables} +### EXCHANGE TABLES/DICTIONARIES {#exchange-tables} -Запрос `EXCHANGE` меняет местами две таблицы атомарно. Вместо неатомарной операции: +Запрос [EXCHANGE](../../sql-reference/statements/exchange.md) атомарно меняет местами две таблицы или два словаря. Например, вместо неатомарной операции: ```sql RENAME TABLE new_table TO tmp, old_table TO new_table, tmp TO old_table; @@ -47,7 +47,7 @@ EXCHANGE TABLES new_table AND old_table; ### ReplicatedMergeTree in Atomic Database {#replicatedmergetree-in-atomic-database} -Для таблиц [ReplicatedMergeTree](../table-engines/mergetree-family/replication.md#table_engines-replication) рекомендуется не указывать параметры движка - путь в ZooKeeper и имя реплики. В этом случае будут использоваться параметры конфигурации: [default_replica_path](../../operations/server-configuration-parameters/settings.md#default_replica_path) и [default_replica_name](../../operations/server-configuration-parameters/settings.md#default_replica_name). Если вы хотите определить параметры движка явно, рекомендуется использовать макрос {uuid}. Это удобно, так как автоматически генерируются уникальные пути для каждой таблицы в ZooKeeper. +Для таблиц [ReplicatedMergeTree](../table-engines/mergetree-family/replication.md#table_engines-replication) рекомендуется не указывать параметры движка - путь в ZooKeeper и имя реплики. В этом случае будут использоваться параметры конфигурации: [default_replica_path](../../operations/server-configuration-parameters/settings.md#default_replica_path) и [default_replica_name](../../operations/server-configuration-parameters/settings.md#default_replica_name). Если вы хотите определить параметры движка явно, рекомендуется использовать макрос `{uuid}`. Это удобно, так как автоматически генерируются уникальные пути для каждой таблицы в ZooKeeper. ## Смотрите также diff --git a/docs/ru/operations/server-configuration-parameters/settings.md b/docs/ru/operations/server-configuration-parameters/settings.md index 6b4e25eb692..a8ae3f7eb3e 100644 --- a/docs/ru/operations/server-configuration-parameters/settings.md +++ b/docs/ru/operations/server-configuration-parameters/settings.md @@ -134,6 +134,25 @@ ClickHouse проверяет условия для `min_part_size` и `min_part default ``` +## default_replica_path {#default_replica_path} + +Путь к таблице в ZooKeeper. + +**Пример** + +``` xml +/clickhouse/tables/{uuid}/{shard} +``` +## default_replica_name {#default_replica_name} + +Имя реплики в ZooKeeper. + +**Пример** + +``` xml +{replica} +``` + ## dictionaries_config {#server_configuration_parameters-dictionaries_config} Путь к конфигурации внешних словарей. From 4f9f055eb99085585d6b7ecdd7d98b29b6c7ed12 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 4 Aug 2021 20:53:43 +0000 Subject: [PATCH 14/20] ru updated --- docs/ru/sql-reference/statements/detach.md | 2 +- docs/ru/sql-reference/statements/exchange.md | 4 ++-- docs/ru/sql-reference/statements/rename.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/ru/sql-reference/statements/detach.md b/docs/ru/sql-reference/statements/detach.md index cf9df619d3b..71b4012104b 100644 --- a/docs/ru/sql-reference/statements/detach.md +++ b/docs/ru/sql-reference/statements/detach.md @@ -15,7 +15,7 @@ DETACH TABLE|VIEW|DICTIONARY [IF EXISTS] [db.]name [ON CLUSTER cluster] [PERMANE Такой запрос не удаляет ни данные, ни метаданные таблицы, материализованного представления или словаря. Если отключение не было перманентным (запрос без ключевого слова `PERMANENTLY`), то при следующем запуске сервер прочитает метаданные и снова узнает о таблице/представлении/словаре. Если сущность была отключена перманентно, то сервер не подключит их обратно автоматически. -Независимо от того, каким способом таблица была отключена, ее можно подключить обратно с помощью запроса [ATTACH](../../sql-reference/statements/attach.md). Системные log таблицы также могут быть подключены обратно (к примеру `query_log`, `text_log` и др.) Другие системные таблицы не могут быть подключены обратно, но на следующем запуске сервер снова "вспомнит" об этих таблицах. +Независимо от того, каким способом таблица была отключена, ее можно подключить обратно с помощью запроса [ATTACH](../../sql-reference/statements/attach.md). Системные log таблицы также могут быть подключены обратно (к примеру, `query_log`, `text_log` и др.). Другие системные таблицы не могут быть подключены обратно, но на следующем запуске сервер снова "вспомнит" об этих таблицах. `ATTACH MATERIALIZED VIEW` не может быть использован с кратким синтаксисом (без `SELECT`), но можно подключить представление с помощью запроса `ATTACH TABLE`. diff --git a/docs/ru/sql-reference/statements/exchange.md b/docs/ru/sql-reference/statements/exchange.md index eb66aee62c8..e809fc5863c 100644 --- a/docs/ru/sql-reference/statements/exchange.md +++ b/docs/ru/sql-reference/statements/exchange.md @@ -5,8 +5,8 @@ toc_title: EXCHANGE # Выражение EXCHANGE {#exchange} -Атомарно меняет друг с другом имена двух таблиц или словарей. -Это действие также можно выполнить с помощью запроса [RENAME](./rename.md), использую третье временное имя, но в таком случае действие неатомарно. +Атомарно обменивает имена двух таблиц или словарей. +Это действие также можно выполнить с помощью запроса [RENAME](./rename.md), используя третье временное имя, но в таком случае действие неатомарно. !!! note "Примечание" Запрос `EXCHANGE` поддерживается только движком баз данных [Atomic](../../engines/database-engines/atomic.md). diff --git a/docs/ru/sql-reference/statements/rename.md b/docs/ru/sql-reference/statements/rename.md index b043ec305e0..727c9d96615 100644 --- a/docs/ru/sql-reference/statements/rename.md +++ b/docs/ru/sql-reference/statements/rename.md @@ -6,7 +6,7 @@ toc_title: RENAME # Выражение RENAME {#misc_operations-rename} Переименовывает базы данных, таблицы или словари. Несколько сущностей могут быть переименованы в одном запросе. -Обратите внимание, что запрос `RENAME` с несколькими сущностями это не атомарная операция. Чтобы обменять имена атомарно, используйте выражение [EXCHANGE](./exchange.md). +Обратите внимание, что запрос `RENAME` с несколькими сущностями это неатомарная операция. Чтобы обменять имена атомарно, используйте выражение [EXCHANGE](./exchange.md). !!! note "Примечание" Запрос `RENAME` поддерживается только движком баз данных [Atomic](../../engines/database-engines/atomic.md). @@ -31,7 +31,7 @@ RENAME DATABASE atomic_database1 TO atomic_database2 [,...] [ON CLUSTER cluster] Переименовывает одну или несколько таблиц. -Переименовывание таблиц является лёгкой операцией. Если вы указали после `TO` другую базу данных, то таблица будет перенесена в эту базу данных. При этом директории с базами данных должны быть расположены в одной файловой системе. Иначе возвращается ошибка. Если переименовывается несколько таблиц в одном запросе, то такая операция неатомарная. Она может выполнится частично, и запросы в других сессиях могут получить ошибку `Table ... doesn't exist...`. +Переименовывание таблиц является лёгкой операцией. Если вы указали после `TO` другую базу данных, то таблица будет перенесена в эту базу данных. При этом директории с базами данных должны быть расположены в одной файловой системе, иначе возвращается ошибка. Если переименовывается несколько таблиц в одном запросе, то такая операция неатомарная. Она может выполнится частично, и запросы в других сессиях могут получить ошибку `Table ... doesn't exist...`. **Синтаксис** From 7fa4c92408c90ae93e9f4dc8b731203dc7532508 Mon Sep 17 00:00:00 2001 From: lehasm Date: Mon, 9 Aug 2021 08:48:17 +0300 Subject: [PATCH 15/20] Update docs/en/engines/database-engines/atomic.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/engines/database-engines/atomic.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/engines/database-engines/atomic.md b/docs/en/engines/database-engines/atomic.md index dd9689d3e10..a6fe85ef64b 100644 --- a/docs/en/engines/database-engines/atomic.md +++ b/docs/en/engines/database-engines/atomic.md @@ -29,7 +29,7 @@ CREATE TABLE name UUID '28f1c61c-2970-457a-bffe-454156ddcfef' (n UInt64) ENGINE ### DROP/DETACH TABLE {#drop-detach-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 background thread. Delay before final table data deletion is specify by [database_atomic_delay_before_drop_table_sec](../../operations/server-configuration-parameters/settings.md#database_atomic_delay_before_drop_table_sec) setting. +On `DROP TABLE` no data is removed, database `Atomic` just marks table as dropped by moving metadata to `/clickhouse_path/metadata_dropped/` and notifies background thread. Delay before final table data deletion is specified by the [database_atomic_delay_before_drop_table_sec](../../operations/server-configuration-parameters/settings.md#database_atomic_delay_before_drop_table_sec) setting. You can specify synchronous mode using `SYNC` modifier. Use the [database_atomic_wait_for_drop_and_detach_synchronously](../../operations/settings/settings.md#database_atomic_wait_for_drop_and_detach_synchronously) setting to do this. In this case `DROP` waits for running `SELECT`, `INSERT` and other queries which are using the table to finish. Table will be actually removed when it's not in use. ### EXCHANGE TABLES/DICTIONARIES {#exchange-tables} From dcb750bb357ce490a217b1a8755dd87957ec35a1 Mon Sep 17 00:00:00 2001 From: lehasm Date: Mon, 9 Aug 2021 08:48:45 +0300 Subject: [PATCH 16/20] Update docs/ru/engines/database-engines/atomic.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/ru/engines/database-engines/atomic.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/engines/database-engines/atomic.md b/docs/ru/engines/database-engines/atomic.md index 5578b6d7422..8ccb3b968cf 100644 --- a/docs/ru/engines/database-engines/atomic.md +++ b/docs/ru/engines/database-engines/atomic.md @@ -25,7 +25,7 @@ CREATE TABLE name UUID '28f1c61c-2970-457a-bffe-454156ddcfef' (n UInt64) ENGINE ``` ### RENAME TABLE {#rename-table} -Запросы [RENAME](../../sql-reference/statements/rename.md) выполняются без изменения UUID и перемещения табличных данных. Эти запросы не ожидают завершения использующих таблицу запросов и будут выполнены мгновенно. +Запросы [RENAME](../../sql-reference/statements/rename.md) выполняются без изменения UUID и перемещения табличных данных. Эти запросы не ожидают завершения использующих таблицу запросов и выполняются мгновенно. ### DROP/DETACH TABLE {#drop-detach-table} From 6f149630c3eee021339a7385b675e01d50f7c4c6 Mon Sep 17 00:00:00 2001 From: lehasm Date: Mon, 9 Aug 2021 08:49:09 +0300 Subject: [PATCH 17/20] Update docs/en/engines/database-engines/atomic.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/en/engines/database-engines/atomic.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/engines/database-engines/atomic.md b/docs/en/engines/database-engines/atomic.md index a6fe85ef64b..1e555a0a502 100644 --- a/docs/en/engines/database-engines/atomic.md +++ b/docs/en/engines/database-engines/atomic.md @@ -25,7 +25,7 @@ CREATE TABLE name UUID '28f1c61c-2970-457a-bffe-454156ddcfef' (n UInt64) ENGINE ``` ### RENAME TABLE {#rename-table} -[RENAME](../../sql-reference/statements/rename.md) queries are performed without changing UUID and moving table data. These queries do not wait for the completion of queries using the table and will be executed instantly. +[RENAME](../../sql-reference/statements/rename.md) queries are performed without changing UUID and moving table data. These queries do not wait for the completion of queries using the table and are executed instantly. ### DROP/DETACH TABLE {#drop-detach-table} From 9893e0ce59a1b1def90e17eaacafee0b5db19829 Mon Sep 17 00:00:00 2001 From: lehasm Date: Mon, 9 Aug 2021 08:49:19 +0300 Subject: [PATCH 18/20] Update docs/ru/sql-reference/statements/attach.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/ru/sql-reference/statements/attach.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/statements/attach.md b/docs/ru/sql-reference/statements/attach.md index d998f41d629..fab469ec6c8 100644 --- a/docs/ru/sql-reference/statements/attach.md +++ b/docs/ru/sql-reference/statements/attach.md @@ -3,7 +3,7 @@ toc_priority: 40 toc_title: ATTACH --- -# Выражение ATTACH {#attach} +# ATTACH {#attach} Выполняет подключение таблицы или словаря, например, при перемещении базы данных на другой сервер. From e2ba3f7fd4b22ae2c89d9e277b05613ac513d32a Mon Sep 17 00:00:00 2001 From: lehasm Date: Mon, 9 Aug 2021 08:49:29 +0300 Subject: [PATCH 19/20] Update docs/ru/sql-reference/statements/exchange.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/ru/sql-reference/statements/exchange.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/statements/exchange.md b/docs/ru/sql-reference/statements/exchange.md index e809fc5863c..81dea27ddb6 100644 --- a/docs/ru/sql-reference/statements/exchange.md +++ b/docs/ru/sql-reference/statements/exchange.md @@ -3,7 +3,7 @@ toc_priority: 49 toc_title: EXCHANGE --- -# Выражение EXCHANGE {#exchange} +# EXCHANGE {#exchange} Атомарно обменивает имена двух таблиц или словарей. Это действие также можно выполнить с помощью запроса [RENAME](./rename.md), используя третье временное имя, но в таком случае действие неатомарно. From 7a45d32da5075b7527c328b4acaa6f7312592a1d Mon Sep 17 00:00:00 2001 From: lehasm Date: Mon, 9 Aug 2021 08:49:39 +0300 Subject: [PATCH 20/20] Update docs/ru/sql-reference/statements/rename.md Co-authored-by: olgarev <56617294+olgarev@users.noreply.github.com> --- docs/ru/sql-reference/statements/rename.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/sql-reference/statements/rename.md b/docs/ru/sql-reference/statements/rename.md index 727c9d96615..f026be304c6 100644 --- a/docs/ru/sql-reference/statements/rename.md +++ b/docs/ru/sql-reference/statements/rename.md @@ -3,7 +3,7 @@ toc_priority: 48 toc_title: RENAME --- -# Выражение RENAME {#misc_operations-rename} +# RENAME {#misc_operations-rename} Переименовывает базы данных, таблицы или словари. Несколько сущностей могут быть переименованы в одном запросе. Обратите внимание, что запрос `RENAME` с несколькими сущностями это неатомарная операция. Чтобы обменять имена атомарно, используйте выражение [EXCHANGE](./exchange.md).