/datamarts[/{datamart}]/ddl
Содержание раздела
POST-метод выполняет DDL-запрос, заданный в теле сообщения. Поддерживается выполнение только простого запроса; параметризация запроса недоступна.
Запрос можно выполнить в выбранной логической базе данных. Чтобы выбрать логическую БД, укажите ее имя в URL.
URL
{baseUrl}/api/v1/datamarts[/{datamart}]/ddl
Параметры:
baseUrl
— адрес ноды Prostore, состоящий из IP-адреса или доменного имени и номера порта;datamart
(опциональный) — имя логической базы данных, используемой по умолчанию.
Заголовки запроса
Заголовок x-request-id
Опциональный заголовок задает уникальный идентификатор HTTP-запроса. Если не указан, система генерирует UUID-значение и возвращает его в качестве идентификатора в ответе.
Тело запроса
Тело запроса может содержать параметры, описанные ниже. В квадратных скобках [ parameter ]
отмечены опциональные параметры.
query
-
DDL-запрос из числа следующих:
- ALLOW_CHANGES,
- ALTER TABLE ADD COLUMN,
- ALTER TABLE ADD DATASOURCE,
- ALTER TABLE ADD RETENTION,
- ALTER TABLE DROP COLUMN,
- ALTER TABLE DROP RETENTION,
- ALTER TABLE RENAME,
- ALTER TABLE RENAME COLUMN,
- ALTER VIEW,
- CREATE DATABASE,
- CREATE INDEX,
- CREATE MATERIALIZED VIEW,
- CREATE PROXY TABLE,
- CREATE SEQUENCE,
- CREATE TABLE,
- CREATE VIEW,
- DENY_CHANGES,
- DISABLE_STATISTICS_ROWS_COUNT,
- DROP DATABASE,
- DROP INDEX,
- DROP MATERIALIZED VIEW,
- DROP SEQUENCE,
- DROP TABLE,
- DROP VIEW,
- ENABLE_STATISTICS_ROWS_COUNT,
- ERASE_CHANGE_OPERATION.
Значения в запросе можно указать только как константы; параметризация запрос не поддерживается.
[ queryId ]
-
Идентификатор запроса, по которому можно отследить обработку запроса с помощью логов.
Примеры запросов
Запрос с указанием логической БД в URL
curl -X 'POST' \
'http://localhost:9090/api/v1/datamarts/marketing/ddl' \
-H 'x-request-id: 2fe5e5f0-d5ed-4240-a832-fd4d08fb0458' \
-H 'Content-Type: application/json' \
-d '{
"query": "CREATE TABLE IF NOT EXISTS sales (id BIGINT NOT NULL, transaction_date TIMESTAMP NOT NULL, product_code VARCHAR(256) NOT NULL, product_units BIGINT NOT NULL, store_id BIGINT NOT NULL, description VARCHAR(256), PRIMARY KEY (id)) DISTRIBUTED BY (id)",
"queryId": "26576294"
}'
Запрос без указания логической БД в URL
curl -X 'POST' \
'http://localhost:9090/api/v1/datamarts/ddl' \
-H 'x-request-id: 59d1e9a3-766a-4df1-9d7d-4a90fe001c0f' \
-H 'Content-Type: application/json' \
-d '{
"query": "CREATE TABLE IF NOT EXISTS marketing.sales (id BIGINT NOT NULL, transaction_date TIMESTAMP NOT NULL, product_code VARCHAR(256) NOT NULL, product_units BIGINT NOT NULL, store_id BIGINT NOT NULL, description VARCHAR(256), PRIMARY KEY (id)) DISTRIBUTED BY (id)",
"queryId": "27636449"
}'