Запрос данных
Содержание раздела
Система позволяет запрашивать небольшие объемы данных. Чтобы запросить данные, выполните запрос SELECT.
Данные можно запрашивать из следующих сущностей и их соединений:
- логических таблиц,
- логических представлений,
- материализованных представлений,
- прокси-таблиц,
- standalone-таблиц.
Под небольшим объемом данных подразумевается результат, содержащий десятки строк. Чтобы получить большой объем данных, используйте выгрузку данных.
Запросы можно отправлять по JDBC или по REST API с помощью POST-метода query. В запросах к логическим таблицам, логическим и материализованным представлениям можно указать датасорс для исполнения запроса; иначе, если датасорс не указан, система выбирает данные из наиболее оптимального датасорса.
На рисунке ниже показан пример запроса из логической таблицы sales
с двумя строками в ответе.
Примеры
Запрос из логической таблицы
-- выбор логической базы данных marketing в качестве базы данных по умолчанию
USE marketing;
-- запрос данных из логической таблицы sales
SELECT s.store_id, SUM(s.product_units) AS product_amount
FROM sales AS s
GROUP BY (s.store_id)
ORDER BY product_amount DESC
LIMIT 20;
Запрос из логического представления
-- запрос данных из логического представления stores_by_sold_products
SELECT sold.store_id, sold.product_amount
FROM marketing.stores_by_sold_products AS sold;
Запрос из материализованного представления
-- запрос данных из материализованного представления sales_by_stores
SELECT * FROM marketing.sales_by_stores
WHERE store_id IN (1234, 1235, 1236);
Запрос из прокси-таблицы
SELECT p.code, SUM(p.amount) AS amount, p.currency_code
FROM marketing.payments_proxy AS p
GROUP BY p.code, p.currency_code
Запрос из standalone-таблицы
-- запрос данных из standalone-таблицы, на которую указывает внешняя readable-таблица payments_ext_read_adqm
SELECT p.agreement_id, p.code, SUM(p.amount) AS amount, p.currency_code
FROM marketing.payments_ext_read_adqm AS p
GROUP BY p.agreement_id, p.code, p.currency_code
Запрос из соединения standalone-таблицы и логической таблицы
-- запрос данных из логической таблицы clients и standalone-таблицы, на которую указывает
-- внешняя readable-таблица agreements_ext_read_adp
SELECT a.id, a.client_id, c.last_name, c.first_name, c.patronymic_name
FROM marketing.agreements_ext_read_adp AS a
LEFT JOIN marketing.clients FOR SYSTEM_TIME AS OF DELTA_NUM 9 AS c
ON a.client_id = c.id