Получите предыдущие версии данных столбца, используя Phoenix или HBase, где используемый тип данных Phoenix отличается от varchar - PullRequest
0 голосов
/ 21 мая 2019

Используя SQL-запрос Phoenix, нам нужно получить предыдущие версии данных для столбцов с типом данных, отличным от varchar.Если у нас нет запроса с использованием Phoenix для получения всех данных для версий, как мы можем сделать то же самое с использованием запросов Hbase, для которых используемый тип данных Phoenix отличается от varchar?

Я создал таблицу, в которой один из столбцов имеет тип данных double, а для версий было установлено значение 5.

Теперь, после обновления одной и той же строки в таблице пятью различными значениями, мыдолжен иметь возможность получить все версии суммы при запуске запроса HBase для получения версий.Но все значения закодированы в HBase, и с помощью Phoenix невозможно получить все эти версии.

create table DDL which was used:

CREATE TABLE INVOICE(
ID INTEGER NOT NULL PRIMARY KEY,
AMOUNT DOUBLE
)
COLUMN_ENCODED_BYTES = 0,
VERSIONS = 5

Upserting five times on the row having ID as 1:

UPSERT INTO INVOICE VALUES(1,1.0);
UPSERT INTO INVOICE VALUES(1,2.0);
UPSERT INTO INVOICE VALUES(1,3.0);
UPSERT INTO INVOICE VALUES(1,4.0);
UPSERT INTO INVOICE VALUES(1,5.0);

To get all the versions of the AMOUNT column:

scan "INVOICE",{COLUMNS => "0:AMOUNT",VERSIONS=>5}

Я ожидаю, что при сканировании таблицы HBase для версий в столбце будут получены все версии.ценности.Здесь в части COLUMN + CELL 'value =' должны иметь все предыдущие значения суммы.Но я получил что-то следующее в качестве вывода:

ROW                                   COLUMN+CELL                                                                                               
 \x80\x00\x00\x01                     column=0:AMOUNT, timestamp=1558440485579, value=\xC0\x14\x00\x00\x00\x00\x00\x01                          
 \x80\x00\x00\x01                     column=0:AMOUNT, timestamp=1558440483513, value=\xC0\x10\x00\x00\x00\x00\x00\x01                          
 \x80\x00\x00\x01                     column=0:AMOUNT, timestamp=1558440483506, value=\xC0\x08\x00\x00\x00\x00\x00\x01                          
 \x80\x00\x00\x01                     column=0:AMOUNT, timestamp=1558440483497, value=\xC0\x00\x00\x00\x00\x00\x00\x01                          
 \x80\x00\x00\x01                     column=0:AMOUNT, timestamp=1558440483458, value=\xBF\xF0\x00\x00\x00\x00\x00\x01                          
1 row(s) in 0.1190 seconds
...