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