Задача: передать значение при вызове куба Luxms в параметризированный VIEW как параметр функции.
Хоть данная задача и звучит обыденно, тем не менее она требует не тривиального подхода
1. Создаем параметризированный view
Для теста создаем простой VIEW:
|
1 2 |
CREATE VIEW example_param_view AS SELECT {parameter_name:String} AS parameter_value |
Вызов такого View с параметром будет выглядеть так
|
1 |
SELECT * FROM example_param_view(parameter_name = 'Test value') |

2. Настройка куба в Luxms
После создания столбцов в кубе, редактируем SQL-запрос:
|
1 |
SELECT * FROM example_param_view(${filters(parameter_name)}) |
Во вкладке config добавляем
|
1 2 3 4 |
{ skip_where: 1, is_template: 1, } |
is_template — включает LPE функции (в данном случаи filter)
skip_where — как можно догадаться по названию, он убирает дополнительный блок where при запросе к кубу
3. Пример вызова через JavaScript
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import { KoobDataService } from "bi-internal/services"; export const testCall = async () => { const measures = []; const koob = 'Clickhouse.example_param_view'; const dimensions = ['*'] const filter = { "parameter_name": ["=", "Test Call Parametr"] }; const result = await KoobDataService.koobDataRequest3(koob, dimensions, measures, filter); console.log('result:', result); return result; } |
И результат
