tableau报表嵌入自研web系统

406 阅读2分钟

一、默认已经安装部署好tableau server端

二、整体流程图

image.png

1.正常web系统中都会有登录功能,在此不再多说
2.业务系统中实现post请求,从获取tableau server获取ticket

拼接获取ticket的url,如下格式:

{tableau.server.url}/trusted?username={tableau.user}

例如: tableau-test.aaaa.com/trusted?use…

image.png

说明1:test_user账户,需要自己在tableau server中创建一个Viewer(查看者)

image.png

说明2:发起请求的机器,要在tableau中配置“受信任的身份验证”,配置方法,在tableau的TSM管理页面

image.png

说明3:调试过程中可以查看日志:../../tableau/data/data/tabsvc/logs/vizqlserver/vizqlserver_node1-*.log

3(4).ticket返回给浏览器
5.浏览器将ticket,tableau报表地址按以下格式拼接

{tableau.server.url}/trusted{ticket}/views/{tableau报表地址}

tableau报表地址获取方式,在tableau server端预览报表

image.png

完整拼接实例:tableau-test.aaaa.com/trusted/aaa…

三、数据权限控制

namesexageclass
张三6一班
李四6二班
小明5一班
小红5二班

例如在tableau建立了上面一张数据表格,嵌入到自研web系统后,想让不同的人看到不同的数据,假设一班的班主任进入页面时只能看懂一班的数据,二班的班主任进入页面时只能看到二班的数据,需要在url连接后面,拼接相应的字段 tableau-test.aaaa.com/trusted/aaa…

拓展:连接后可拼接多个参数,例如设备信息 device等,

国内相关资料: www.dkmeco.com/community/h…

国外相关资料: help.tableau.com/current/pro…

四、数据提取刷新计划

4.1为什么要使用数据刷新计划

Tableau支持提取数据库数据到服务器生成hpyer文件,基于hyper文件的查询比数据库快很多,同时,数据源也支持定时刷新。由于数据仓库或者数据中台的跑数任务都是在夜间执行,所以大多数情况下定时刷新都是可以满足需求。

4.2定时刷新计划存在的问题?

由于数据仓库或者数据中台任务执行完成时间的不确定性,例如底层数据延迟,造成定时刷新计划无效或者失败

解决:不依赖tableau得定时任务,使用“tabcmd”命令实时触发刷新计划,即在底层数据完成时立即触发数据刷新计划

相关命令:tabcmd refreshextracts --server http://localhost --username aaa --password 1234 --project Default --workbook 三月份成绩

或者

tabcmd runschedule [刷新计划名称] --server http://localhost --username aaa --password 1234

官方文档截图:

image.png

help.tableau.com/current/ser…