-
Notifications
You must be signed in to change notification settings - Fork 735
Docs: describe show create #19170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docs: describe show create #19170
Changes from all commits
c34b724
3ef0155
327406b
a77906c
57cad16
b990617
ac5b527
5292332
db29062
db415b3
23ca11c
ba32fea
7a2e69c
537485e
c5384af
0f09d77
45dd629
57ad305
c9ff204
2d36c03
21a24e3
c433fd9
b2a8977
b708055
a91d77d
3647d67
8a7c564
1f30ad3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,127 @@ | ||
| # SHOW CREATE | ||
|
|
||
| `SHOW CREATE` returns a query required to recreate the structure of the specified object: a [table](../../../concepts/datamodel/table.md) or [view](../../../concepts/datamodel/view.md). The returned query may contain multiple DDL statements. | ||
|
|
||
| ## Syntax | ||
|
|
||
| ```yql | ||
| SHOW CREATE [TABLE|VIEW] <name>; | ||
| ``` | ||
|
|
||
| ## Parameters | ||
|
|
||
| * `TABLE|VIEW` — The object type. Valid values are `TABLE` or `VIEW`. | ||
| * `<name>` — The object name. An absolute path may also be specified. | ||
|
|
||
| ## Result | ||
|
|
||
| The command always returns **exactly one row** with three columns: | ||
|
|
||
| | Path | PathType | CreateQuery | | ||
| |-----------------|------------|----------------------------------| | ||
| | Path | Table/View | DDL statements for creation | | ||
|
|
||
| - **Path** — The path to the object (for example, `MyTable` or `MyView`). | ||
| - **PathType** — The type of object: `Table` or `View`. | ||
| - **CreateQuery** — The complete set of DDL statements needed to create the object: | ||
| - For tables: the main [CREATE TABLE](create_table/index.md) statement (with the path relative to the database root), plus any additional statements describing the current configuration, such as: | ||
| - [ALTER TABLE ... ALTER INDEX](alter_table/secondary_index#alter-index) — for index partitioning settings. | ||
| - [ALTER TABLE ... ADD CHANGEFEED](alter_table/changefeed.md) — for adding a changefeed. | ||
| - `ALTER SEQUENCE` — for restoring a `Sequence` state for `Serial` columns. | ||
| - For views: the definition via [CREATE VIEW](create-view.md), and, if necessary, the statements the view has captured from the creation context, for example, [PRAGMA TablePathPrefix](pragma#table-path-prefix). | ||
|
|
||
|
|
||
| ## Examples | ||
|
|
||
| ### Row-oriented tables | ||
|
|
||
| ```yql | ||
| SHOW CREATE TABLE my_table; | ||
| ``` | ||
|
|
||
| | Path | PathType | CreateQuery | | ||
| |-----------------|-----------|---------------------------------| | ||
| | `my_table` | `Table` | `CREATE TABLE...` — see below | | ||
|
|
||
| ```yql | ||
| CREATE TABLE `my_table` ( | ||
| `Key1` Uint32 NOT NULL, | ||
| `Key2` Utf8 NOT NULL, | ||
| `Key3` Serial4 NOT NULL, | ||
| `Value1` Utf8 FAMILY `my_family`, | ||
| `Value2` Bool, | ||
| `Value3` String, | ||
| INDEX `my_index` GLOBAL SYNC ON (`Key2`, `Value1`, `Value2`), | ||
| FAMILY `my_family` (COMPRESSION = 'lz4'), | ||
| PRIMARY KEY (`Key1`, `Key2`, `Key3`) | ||
| ) | ||
| WITH ( | ||
| AUTO_PARTITIONING_BY_SIZE = ENABLED, | ||
| AUTO_PARTITIONING_PARTITION_SIZE_MB = 1000 | ||
| ); | ||
|
|
||
| ALTER TABLE `my_table` | ||
| ADD CHANGEFEED `feed_3` WITH (MODE = 'KEYS_ONLY', FORMAT = 'JSON', RETENTION_PERIOD = INTERVAL('PT30M'), TOPIC_MIN_ACTIVE_PARTITIONS = 3) | ||
| ; | ||
|
|
||
| ALTER SEQUENCE `/Root/my_table/_serial_column_Key3` START WITH 101 INCREMENT BY 404 RESTART; | ||
|
|
||
| ALTER TABLE `my_table` | ||
| ALTER INDEX `my_index` SET (AUTO_PARTITIONING_BY_LOAD = ENABLED, AUTO_PARTITIONING_MIN_PARTITIONS_COUNT = 1000, AUTO_PARTITIONING_MAX_PARTITIONS_COUNT = 5000) | ||
| ; | ||
| ``` | ||
|
|
||
| ### Column-oriented tables | ||
|
|
||
| ```yql | ||
| SHOW CREATE TABLE my_table; | ||
| ``` | ||
|
|
||
| | Path | PathType | CreateQuery | | ||
| |-----------------|-----------|---------------------------------| | ||
| | `my_table` | `Table` | `CREATE TABLE...` — see below | | ||
|
|
||
| ```yql | ||
| CREATE TABLE `my_table` ( | ||
| `Key1` Uint64 NOT NULL, | ||
| `Key2` Utf8 NOT NULL, | ||
| `Key3` Int32 NOT NULL, | ||
| `Value1` Utf8, | ||
| `Value2` Int16, | ||
| `Value3` String, | ||
| FAMILY `default` (COMPRESSION = 'zstd'), | ||
| FAMILY `Family1` (COMPRESSION = 'off'), | ||
| FAMILY `Family2` (COMPRESSION = 'lz4'), | ||
| PRIMARY KEY (`Key1`, `Key2`, `Key3`) | ||
| ) | ||
| PARTITION BY HASH (`Key1`, `Key2`) | ||
| WITH ( | ||
| STORE = COLUMN, | ||
| AUTO_PARTITIONING_MIN_PARTITIONS_COUNT = 100, | ||
| TTL = | ||
| INTERVAL('PT10S') TO EXTERNAL DATA SOURCE `/Root/tier1`, | ||
| INTERVAL('PT1H') DELETE | ||
| ON Key1 AS SECONDS | ||
| ); | ||
| ``` | ||
|
|
||
| ### Views | ||
|
|
||
| ```yql | ||
| SHOW CREATE VIEW my_view; | ||
| ``` | ||
|
|
||
| | Path | PathType | CreateQuery | | ||
| |-----------------|-----------|-------------------------------------------| | ||
| | `my_view` | `View` | `PRAGMA TablePathPrefix...` — see below | | ||
|
|
||
| ```yql | ||
| PRAGMA TablePathPrefix = '/Root/DirA/DirB/DirC'; | ||
|
|
||
| CREATE VIEW `my_view` WITH (security_invoker = TRUE) AS | ||
| SELECT | ||
| * | ||
| FROM | ||
| test_table | ||
| ; | ||
| ``` | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -42,6 +42,7 @@ items: | |
| - { name: SELECT, include: { mode: link, path: select/toc_p.yaml } } | ||
| - { name: SELECT STREAM, href: select_stream.md, when: feature_mapreduce and process_command == "PROCESS STREAM" } | ||
| - { name: SUBQUERY, href: subquery.md, when: feature_subquery } | ||
| - { name: SHOW CREATE, href: show_create.md } | ||
|
||
| - { name: UPDATE, href: update.md, when: feature_map_tables } | ||
| - { name: UPSERT, href: upsert_into.md, when: feature_upsert } | ||
| - { name: USE, href: use.md, when: feature_mapreduce } | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,127 @@ | ||
| # SHOW CREATE | ||
|
|
||
| `SHOW CREATE` возвращает запрос, возможно состоящий из нескольких DDL-выражений, необходимых для воссоздания структуры выбранного объекта: [таблицы](../../../concepts/datamodel/table.md) или [представления](../../../concepts/datamodel/view.md). | ||
|
|
||
| ## Синтаксис | ||
|
|
||
| ```yql | ||
| SHOW CREATE [TABLE|VIEW] <name>; | ||
| ``` | ||
|
|
||
| ## Параметры | ||
|
|
||
| * `TABLE|VIEW` - тип объекта: `TABLE` для таблицы или `VIEW` для представления. | ||
| * `<name>` - имя объекта, также может быть указан абсолютный путь до объекта. | ||
|
|
||
| ## Результат выполнения | ||
|
|
||
| Команда возвращает **ровно одну строку** с тремя колонками: | ||
|
|
||
| | Path | PathType | CreateQuery | | ||
| |-----------------|------------|------------------------------------| | ||
| | Путь | Table/View | DDL-выражения для создания объекта | | ||
|
|
||
| - **Path** — путь к объекту (например, `MyTable` или `MyView`). | ||
| - **PathType** — тип объекта: `Table` или `View`. | ||
| - **CreateQuery** — полный набор DDL-выражений, необходимых для создания объекта: | ||
| - Для таблиц: основной оператор [CREATE TABLE](create_table/index.md) (с путем относительно базы), а также дополнительные команды, необходимые для описания текущего состояния и настроек: | ||
| - [ALTER TABLE ... ALTER INDEX](alter_table/secondary_index#alter-index)— для задания настроек партицирования вторичных индексов. | ||
| - [ALTER TABLE ... ADD CHANGEFEED](alter_table/changefeed.md)— для добавления потока изменений. | ||
| - `ALTER SEQUENCE` — для восстановления состояния `Sequence` у колонок типа [Serial](../../../yql/reference/types/serial.md). | ||
| - Для представлений: определение посредством команды [CREATE VIEW](create-view.md), а также, если необходимо, выражения, которые были зафиксированы представлением из контекста создания, например, [PRAGMA TablePathPrefix](pragma#table-path-prefix). | ||
|
|
||
| ## Примеры | ||
|
|
||
| ### Строковые таблицы | ||
|
|
||
| ```yql | ||
| SHOW CREATE TABLE my_table; | ||
| ``` | ||
|
|
||
| | Path | PathType | CreateQuery | | ||
| |-----------------|-----------|--------------------------------| | ||
| | `my_table` | `Table` | `CREATE TABLE...` - см. ниже | | ||
|
|
||
| ```yql | ||
| CREATE TABLE `my_table` ( | ||
| `Key1` Uint32 NOT NULL, | ||
| `Key2` Utf8 NOT NULL, | ||
| `Key3` Serial4 NOT NULL, | ||
| `Value1` Utf8 FAMILY `my_family`, | ||
| `Value2` Bool, | ||
| `Value3` String, | ||
| INDEX `my_index` GLOBAL SYNC ON (`Key2`, `Value1`, `Value2`), | ||
| FAMILY `my_family` (COMPRESSION = 'lz4'), | ||
| PRIMARY KEY (`Key1`, `Key2`, `Key3`) | ||
| ) | ||
| WITH ( | ||
| AUTO_PARTITIONING_BY_SIZE = ENABLED, | ||
| AUTO_PARTITIONING_PARTITION_SIZE_MB = 1000 | ||
| ); | ||
|
|
||
| ALTER TABLE `my_table` | ||
| ADD CHANGEFEED `feed_3` WITH (MODE = 'KEYS_ONLY', FORMAT = 'JSON', RETENTION_PERIOD = INTERVAL('PT30M'), TOPIC_MIN_ACTIVE_PARTITIONS = 3) | ||
| ; | ||
|
|
||
| ALTER SEQUENCE `/Root/my_table/_serial_column_Key3` START WITH 101 INCREMENT BY 404 RESTART; | ||
|
|
||
| ALTER TABLE `my_table` | ||
| ALTER INDEX `my_index` SET (AUTO_PARTITIONING_BY_LOAD = ENABLED, AUTO_PARTITIONING_MIN_PARTITIONS_COUNT = 1000, AUTO_PARTITIONING_MAX_PARTITIONS_COUNT = 5000) | ||
| ; | ||
| ``` | ||
|
|
||
| ### Колоночные таблицы | ||
|
|
||
| ```yql | ||
| SHOW CREATE TABLE my_table; | ||
| ``` | ||
|
|
||
| | Path | PathType | CreateQuery | | ||
| |-----------------|-----------|--------------------------------| | ||
| | `my_table` | `Table` | `CREATE TABLE...` - см. ниже | | ||
|
|
||
| ```yql | ||
| CREATE TABLE `my_table` ( | ||
| `Key1` Uint64 NOT NULL, | ||
| `Key2` Utf8 NOT NULL, | ||
| `Key3` Int32 NOT NULL, | ||
| `Value1` Utf8, | ||
| `Value2` Int16, | ||
| `Value3` String, | ||
| FAMILY `default` (COMPRESSION = 'zstd'), | ||
| FAMILY `Family1` (COMPRESSION = 'off'), | ||
| FAMILY `Family2` (COMPRESSION = 'lz4'), | ||
| PRIMARY KEY (`Key1`, `Key2`, `Key3`) | ||
| ) | ||
| PARTITION BY HASH (`Key1`, `Key2`) | ||
| WITH ( | ||
| STORE = COLUMN, | ||
| AUTO_PARTITIONING_MIN_PARTITIONS_COUNT = 100, | ||
| TTL = | ||
| INTERVAL('PT10S') TO EXTERNAL DATA SOURCE `/Root/tier1`, | ||
| INTERVAL('PT1H') DELETE | ||
| ON Key1 AS SECONDS | ||
| ); | ||
| ``` | ||
|
|
||
| ### Представления | ||
|
|
||
| ```yql | ||
| SHOW CREATE VIEW my_view; | ||
| ``` | ||
|
|
||
| | Path | PathType | CreateQuery | | ||
| |-----------------|-----------|------------------------------------------| | ||
| | `my_view` | `View` | `PRAGMA TablePathPrefix...` - см. ниже | | ||
|
|
||
| ```yql | ||
| PRAGMA TablePathPrefix = '/Root/DirA/DirB/DirC'; | ||
|
|
||
| CREATE VIEW `my_view` WITH (security_invoker = TRUE) AS | ||
| SELECT | ||
| * | ||
| FROM | ||
| test_table | ||
| ; | ||
| ``` | ||
|
|
||
shnikd marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -55,6 +55,7 @@ items: | |
| - { name: REVOKE, href: revoke.md, when: feature_user_and_group } | ||
| - { name: SELECT, include: { mode: link, path: select/toc_p.yaml } } | ||
| - { name: SELECT STREAM, href: select_stream.md, when: feature_mapreduce and process_command == "PROCESS STREAM" } | ||
| - { name: SHOW CREATE, href: show_create.md } | ||
|
||
| - { name: SUBQUERY, href: subquery.md, when: feature_subquery } | ||
| - { name: UPDATE, href: update.md, when: feature_map_tables } | ||
| - { name: UPSERT, href: upsert_into.md, when: feature_upsert } | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this the only place that uses an absolute path?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Для alter sequence сейчас поддерживается только абсолютный путь