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