Zeppelin支持动态创建输入表单,
本文以动态表单模板为例,基于zeppelin JDBC Interpreter进行jdbc数据源的可视化交互分析时,如何设置参数
表单模板
动态创建输入表单使用参见dynamic_form
在段落范围(scope: paragraph)
输入框
- Text input form
${formName}
${formName=defaultValue}
- Password form
${password:formName}
SELECT radio, count() AS c FROM ods.cell_towers where radio in ('${通信协议=LTE}') GROUP BY radio ORDER BY c DESC
下拉列表
Select form
${formName=defaultValue,option1|option2...}
${formName=defaultValue,option1(DisplayName)|option2(DisplayName)...}
SELECT radio, count() AS c FROM ods.cell_towers where radio in ('${通信协议=CDMA,CDMA|GSM|LTE|NR|UMTS}') GROUP BY radio ORDER BY c DESC
复选框
Checkbox form${checkbox:formName=defaultValue1|defaultValue2...,option1|option2...}
SELECT radio, count() AS c FROM ods.cell_towers where radio in (${checkbox:通信协议='CDMA','CDMA'|'GSM'|'LTE'|'NR'|'UMTS'}) GROUP BY radio ORDER BY c DESC
在note范围
具有相同的语法,但以两个符号$
开头。(例如输入$${forName}
)
测试数据
测试使用的数据集是:Cell Towers,数据集来自OpenCellid -世界上最大的手机发射塔开放数据库。
截止到2021年,它包含了超过4000万条关于全球移动基站(GSM、LTE、UMTS等)的记录,以及它们的地理坐标和元数据(国家代码、网络等)。
下载数据
#下载
curl -O https://datasets.clickhouse.com/cell_towers.csv.xz
#验证完整性
md5sum cell_towers.csv.xz
#解压
unxz -d -c --threads=`nproc` cell_towers.csv.xz > cell_towers.csv
导入数据
--创建表
CREATE TABLE cell_towers(
radio Enum8('' = 0, 'CDMA' = 1, 'GSM' = 2, 'LTE' = 3, 'NR' = 4, 'UMTS' = 5),
mcc UInt16,
net UInt16,
area UInt16,
cell UInt64,
unit Int16,
lon Float64,
lat Float64,
range UInt32,
samples UInt32,
changeable UInt8,
created DateTime,
updated DateTime,
averageSignal UInt8
)ENGINE = MergeTree() ORDER BY (radio, mcc, net, created);
--导入数据
clickhouse-client --port 9000 --user default --password cde3VFR$ --query "INSERT INTO ods.cell_towers FORMAT CSVWithNames" < cell_towers.csv