/datamarts[/{datamart}]/ddl

Содержание раздела
  1. URL
  2. Заголовки запроса
    1. Заголовок x-request-id
  3. Тело запроса
  4. Примеры запросов
    1. Запрос с указанием логической БД в URL
    2. Запрос без указания логической БД в URL

POST-метод выполняет DDL-запрос, заданный в теле сообщения. Поддерживается выполнение только простого запроса; параметризация запроса недоступна.

Запрос можно выполнить в выбранной логической базе данных. Чтобы выбрать логическую БД, укажите ее имя в URL.

URL

{baseUrl}/api/v1/datamarts[/{datamart}]/ddl

Параметры:

  • baseUrl — адрес ноды Prostore, состоящий из IP-адреса или доменного имени и номера порта;
  • datamart (опциональный) — имя логической базы данных, используемой по умолчанию.

Заголовки запроса

Заголовок x-request-id

Опциональный заголовок задает уникальный идентификатор HTTP-запроса. Если не указан, система генерирует UUID-значение и возвращает его в качестве идентификатора в ответе.

Тело запроса

Тело запроса может содержать параметры, описанные ниже. В квадратных скобках [ parameter ] отмечены опциональные параметры.

query

DDL-запрос из числа следующих:

Значения в запросе можно указать только как константы; параметризация запрос не поддерживается.

[ 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"
}'