Как повернуть столбец карты в Cassandra к записям, имеющим ключ в качестве имени столбца и значение в качестве значения столбца?

#dictionary #pivot #cassandra-3.0 #cql3 #cqlsh

#словарь #кассандра #сводная #cassandra-3.0

Вопрос:

Я определил таблицу в Cassandra. Существует один столбец, который имеет тип данных карты. Я хочу реализовать Pivot для этого столбца таким образом, чтобы ключ стал именем столбца, а значение, связанное с этим ключом, стало значением столбца. Есть ли какой-либо конкретный подход для этого? Должен ли я определять UDF или UDA в CQL? Определение таблицы, данные и ожидаемый результат выглядят следующим образом:

      create table test_data(
        ... id int,
        ... product_name text,
        ... machine_address text,
        ... test_id int,
        ... result map<text,text>,
        ... PRIMARY KEY (id));

``` Table Data:
      id   | machine_address | product_name | result                                                                                       | test_id
------ ----------------- -------------- ---------------------------------------------------------------------------------------------- ---------
 1101 |          AEI-T4 |        Saker | {'comment': 'Pass', 'start_time': '2018-02-06T00:00:00', 'stop_time': '2018-02-06T00:00:00'} |     124
 1103 |          AEI-T5 |       Saker2 | {'comment': 'Pass', 'start_time': '2018-05-07T00:60:00', 'stop_time': '2018-06-07T00:00:00'} |     141
 1102 |          AEI-T4 |       Saker1 | {'comment': 'Fail', 'start_time': '2018-02-07T00:60:00', 'stop_time': '2018-02-07T00:00:00'} |     124

The expected output after implementing Pivot on the map column 'result' should be like:

start_time          | stop_time           | comment
------ ----------------- -------------- ------------
2018-02-06T00:00:00 | 2018-02-06T00:00:00 | Pass
2018-05-07T00:60:00 | 2018-06-07T00:00:00 | Pass
2018-02-07T00:60:00 | 2018-02-07T00:00:00 | Fail