Подробно останавливаться на создании гиперссылки мы не будем, так как описывали эту механику в одной из предыдущих статей. Возьмем итоговый URL-адрес из п.1 и вставим в ячейку таблицы, запрос для реализации выглядит следующим образом:
select '<p>Cсылка на <a href =
"http://<ip>:<port>/superset/dashboard/16/?native_filters=(NATIVE_FILTER-aHg1b2y66:(__cache:(label:2021,validateStatus:!f,value:!(2021)),extraFormData:(filters:!((col:YEAR_NAME,op:IN,val:!(2021)))),filterState:(label:2021,validateStatus:!f,value:!(2021)),id:NATIVE_FILTER-aHg1b2y66,ownState:()),NATIVE_FILTER-LIGOzuVHD:(__cache:(label:November,validateStatus:!f,value:!(November)),extraFormData:(filters:!((col:MONTH_NAME,op:IN,val:!(November)))),filterState:(label:November,validateStatus:!f,value:!(November)),id:NATIVE_FILTER-LIGOzuVHD,ownState:()))
" >input</a>.</p>' as t
При нажатии на слово «input» в таблице дашборда «test_url_output» мы должны переместиться в дашборд «test_url_input» с пока статичными фильтрами 2021/November.
3. Добавим в запрос таблицы дашборда «test_url_input» шаблоны Jinja (описание можно найти в предыдущих статьях по ссылке указанной выше) вместо выбранных ранее значений (2021/November) для передачи выбранных фильтров.
В Apache Kylin для конкатирования строк можно использовать «||» или «+». В нашем примере использован «+», но при работе с числами лучше использовать «||». Итоговый запрос имеет следующий вид:
select
'<p> Cсылка на <a href = "http:// <ip>:<port>/superset/dashboard/16/?native_filters=(NATIVE_FILTER-aHg1b2y66:(__cache:(label:' + '{{ filter_values('YEAR_NAME', )[0] }}' + ',validateStatus:!f,value:!(' + '{{ filter_values('YEAR_NAME', )[0] }}' + ')),extraFormData:(filters:!((col:YEAR_NAME,op:IN,val:!(' + '{{ filter_values('YEAR_NAME', )[0] }}' + ')))),filterState:(label:' + '{{ filter_values('YEAR_NAME', )[0] }}' + ',validateStatus:!f,value:!(' + '{{ filter_values('YEAR_NAME', )[0] }}' + ')),id:NATIVE_FILTER-aHg1b2y66,ownState:()),NATIVE_FILTER-LIGOzuVHD:(__cache:(label:' + '{{ filter_values('MONTH_NAME', )[0] }}' + ',validateStatus:!f,value:!(' + '{{ filter_values('MONTH_NAME', )[0] }}' + ')),extraFormData:(filters:!((col:MONTH_NAME,op:IN,val:!(' + '{{ filter_values('MONTH_NAME', )[0] }}' + ')))),filterState:(label:' + '{{ filter_values('MONTH_NAME', )[0] }}' + ',validateStatus:!f,value:!(' + '{{ filter_values('MONTH_NAME', )[0] }}' + ')),id:NATIVE_FILTER-LIGOzuVHD,ownState:()))">input</a>.</p>' as t
Результат: