Режим 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
.
Для получения разности дат, необходимо использовать функцию
DATEDIFF
вместоdate1 - date2
. Например:SELECT SUM(DATEDIFF(period2_id, period_id)) AS `0-0` FROM `fact_rur`
На запросы с указанием гранулярности Год за неделю приходят значения за каждый год и неделю в году.
Иногда приходят не ожидаемые ответы на запросы, в которых присутствует сравнение строковых значений. Зачастую это связано с отличием кодировки, используемой в базе данных MySQL, от кодировки, используемой в ViQube.
Если источником данных таблицы является внешняя база данных, то при экспорте этой таблицы из ViQube, данные, хранящиеся во внешней базе данных, экспортироваться не будут. Экспортируются только те данные, которые были внесены в базу данных ViQube.
При использовании MS SQL, для получения разницы дат необходимо использовать функцию
DATEDIFF(date1, date2)
. При попытке получения разницы с помощью вычитанияdate1-date2
, произойдет ошибка.