/datamarts[/{datamart}]/ddl

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

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

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

URL

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

Параметры:

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

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

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

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

Заголовок Authorization

Опциональный заголовок задает тип аутентификации и авторизационный токен (JWT). Возможное значение заголовка — Bearer.

Подробнее об аутентификации запросов см. в разделе Аутентификация.

Тело запроса

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

query

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

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

[ queryId ]

Идентификатор запроса, по которому можно отследить обработку запроса с помощью логов.

Примеры запросов

В этой секции приведены примеры как с авторизационным токеном, так и без него. Примеры без токена предназначены для случаев, когда аутентификация отключена, с токеном — для случаев, когда аутентификация включена.

Запросы в выбранной логической БД

Запрос без авторизационного токена:

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

Запрос с авторизационным токеном:

curl -X 'POST' \
  'http://localhost:9090/api/v1/datamarts/marketing/ddl' \
  -H 'x-request-id: 32ba2edb-d32c-4821-a09f-f5a16357c1e1' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \
  -d '{
  "query": "CREATE TABLE IF NOT EXISTS clients (id BIGINT NOT NULL, first_name VARCHAR(256) NOT NULL, last_name VARCHAR(256) NOT NULL, patronymic_name VARCHAR(256), birth_date DATE, PRIMARY KEY (id)) DISTRIBUTED BY (id) DATASOURCE_TYPE ('\''adp'\'','\''adqm'\'')",
  "queryId": "8374826"
}'

Запросы без выбранной логической БД

Запрос без авторизационного токена:

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

Запрос с авторизационным токеном:

curl -X 'POST' \
  'http://localhost:9090/api/v1/datamarts/query?format=json' \
  -H 'x-request-id: 54c4a2c3-a959-40a5-bb1c-065640c5651c' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \
  -d '{
  "query": "CREATE TABLE IF NOT EXISTS marketing.clients (id BIGINT NOT NULL, first_name VARCHAR(256) NOT NULL, last_name VARCHAR(256) NOT NULL, patronymic_name VARCHAR(256), birth_date DATE, PRIMARY KEY (id)) DISTRIBUTED BY (id) DATASOURCE_TYPE ('\''adp'\'','\''adqm'\'')",
  "queryId": "7236831"
}'