Как хранить массив или блоб в SnappyData?

Я пытаюсь создать таблицу с двумя столбцами, как показано ниже:

CREATE TABLE test (col1 INT ,col2 Array<Decimal>) USING column options(BUCKETS '5');

Он успешно создается, но когда я пытаюсь вставить в него данные, он не принимает какой-либо формат массива. Я пробовал следующие запросы:

insert into test1 values(1,Array(Decimal("1"), Decimal("2")));

insert into test1 values(1,Array(1,2));

insert into test1 values(1,[1,2,1]);

insert into test1 values(1,"1,2,1");

insert into test1 values(1,<1,2,1>);

etc..

Пожалуйста помоги!

1 ответ

Решение

Для этого есть открытый билет: https://jira.snappydata.io/browse/SNAP-1284 который будет рассмотрен в следующем выпуске для строк VALUES (строки JSON и строки, совместимые с Spark).

Совместимый формат Spark Catalyst будет работать:

insert into test1 select 1, array(1, 2);

При выборе данные по умолчанию отправляются в сериализованном виде и отображаются в двоичном виде. На данный момент вы должны использовать подсказку complexTypeAsJson, чтобы показать как JSON:

select * from test1 --+complexTypeAsJson(true);

Поддержка отображения в более простом формате строки по умолчанию будет добавлена ​​в следующем выпуске.

Еще одна вещь, которую можно заметить в вашем примере, это простое значение для сегментов. Это было задокументировано как предпочтительное в предыдущих выпусках, но начиная с версии 1.0 рекомендуется использовать степень двойки или четное число (например, общее количество ядер в вашем кластере может быть хорошим выбором) - возможно, некоторые примеры все еще используют старая рекомендация.

Другие вопросы по тегам