Режим SQL Backend имеет ряд ограничений по сравнению с In-memory:
Не поддерживаются операции редактирования строк в таблицах. Возможно только чтение данных. При получении подобного запроса строка будет добавлена в таблицу на ViQube(In-memory) и не будет видна при включенном SQL Backend.
Имеются отличия при работе с NULL в выражениях (по сравнению с ViQube(In-memory)):
В результате сравнения с NULL в случае ViQube(In-memory) будет возвращено FALSE, а в случае ViQube(SQL Backend) будет возвращено NULL
При арифметических операциях NULL в ViQube(In-memory) интерпретируется как (1+NULL =1), а в SQL-базе как UNDEFINED (1+NULL =NULL )
Имеется специфика при работе с некоторыми базами данных, а именно:
В PostgreSQL не работает
sum(boolean)
. Поэтому могут быть отличия в результатах работы расчетных показателей.В Oracle нет типа данных
Boolean
. В ViQube такие поля фигурируют как целочисленные (0/1). По этой причине не работают логические выражения в сформированном SQL-запросе.
Использование VERTICA:
В VERTICA при сортировке по полю нет возможности указывать характер сортировки NULL-значений (нет директив NULL FIRST/LAST). Местоположение строк при сортировке полей с NULL-значениями зависит от типа сортируемых данных.
Ограничения, касающиеся использования MySQL:
Нельзя Нет возможности указать, каким образом сортировать NULL-значения, так как в MySQL не работают директивы
NULLS FIRST
иNULLS LAST
.
Нельзя использовать разность дат:
date1 - date2
выдает неверный результат. В качестве альтернативыДля получения разности дат, необходимо использовать функциюDATEDIFF
вместоdate1 - date2
. Например:SELECT SUM(DATEDIFF(period2_id, period_id)) AS `0-0` FROM `fact_rur`
Некорректно работает функция год для недели. В запросах с
year_for_week
На запросы с указанием гранулярности Год за неделю приходят значения за каждый год и неделю в году.
Иногда сравнение строк может работать некорректноприходят не ожидаемые ответы на запросы, в которых присутствует сравнение строковых значений. Зачастую это связано с отличием кодировки, используемой в базе данных MySQL, от кодировки, используемой в ViQube.
Если источником данных таблицы является внешняя база данных, то при экспорте этой таблицы из ViQube, данные, хранящиеся во внешней базе данных, экспортироваться не будут. Экспортируются только те данные, которые были внесены в базу данных ViQube.