Выступление феникса - PullRequest
       18

Выступление феникса

0 голосов
/ 21 февраля 2019

Недавно я проводил измерения производительности Феникса.Мне нужна высокопроизводительная система, которая может обрабатывать большие куски данных временных рядов (deviceID, timestamp, someDoubleValue) с миллиардами строк.

* +1002 *

DDL-: CREATE TABLE IF NOT EXISTS table_timestamp (DeviceId VARCHAR NOT NULL, CREATED_DATE ТШЕЗТАМР NOT NULL, METRIC_DOUBLE двойной, METRIC_VALUE INTEGER CONSTRAINT PK PRIMARY KEY (DeviceId, CREATED_DATE ROW_TIMESTAMP)) SALT_BUCKETS = 4;

read: Один из самых популярных сценариев чтения - получение последнего состояния датчика на данный момент.

Мы пытаемся решить эту проблему следующим запросом:

SELECT * FROM TABLE_TIMESTAMP WHERE DEVICEID='const' AND 
CREATED_DATE = (SELECT MAX(CREATED_DATE) 
FROM TABLE_TIMESTAMP WHERE DEVICEID='const' and 
CREATED_DATE <= TO_TIMESTAMP('2018-01-01 00:00:00.001'))

Выполнение запроса занимает слишком много времени.В настоящее время время запроса составляет около 0.9-1.0s И я думаю, это потому, что он считывает все данные для DEVICEID и вычисляет максимальное количество данных в подзапросе.Согласно моему пониманию HBase, похоже, что подобный запрос в HBase мог бы работать намного быстрее.

У кого-нибудь есть идеи?

...