Как прочитать данные
Содержание раздела
Система позволяет запрашивать данные и получать выборку в ответе. Данные можно запрашивать из следующих сущностей и их соединений:
- логических таблиц,
- логических представлений,
- материализованных представлений,
- прокси-таблиц,
- standalone-таблиц.
Чтобы получить данные, включающие сотни и более записей, рекомендуется использовать потоковое чтение данных или выгрузку данных.
Чтение данных по HTTP
Чтобы прочитать данные по HTTP, отправьте запрос с помощью POST-метода query:
- чтобы получить выборку одним ответом, не указывайте параметр
fetchSizeв теле запроса или укажите его со значением0; - чтобы получить выборку потоком из порций данных, укажите значение параметра
fetchSizeв теле запроса, равное нужному максимальному размеру порции данных.
Чтение данные по JDBC
Чтобы прочитать данные по JDBC, отправьте запрос SELECT:
- чтобы получить всю выборку одним ответом, используйте любой из способов:
- отправьте запрос с помощью SQL-клиента,
- отправьте запрос с помощью программного кода без использования курсора;
- чтобы получить выборку потоком из порций данных, отправьте запрос с помощью программного кода с использованием курсора.
На рисунке ниже показан пример запроса из логической таблицы sales с помощью SQL-клиента.

Запрос с помощью SQL-клиента
Примеры
Чтение из логической таблицы
-- выбор логической базы данных 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 matview_db.sales_by_stores
WHERE store_id IN (1234, 1235, 1236);
Чтение из прокси-таблицы
SELECT p.type_code, SUM(p.amount) AS amount, p.currency_code
FROM marketing.payments_proxy AS p
GROUP BY p.type_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