Tableau系列视频课程(适用tableau各版本,视频中提供全部源文件):
1.大数据可视化之敏捷BI Tableau Desktop入门培训视频课程:​​ ​https://edu.51cto.com/course/4025.html​ ​​ 2.大数据可视化之敏捷BI Tableau视频课程入门与实战:​ ​https://edu.51cto.com/course/2958.html​ ​ 3.Tableau实用图形制作大全系列视频课程:​ ​https://edu.51cto.com/course/12627.html​ ​ 4.大数据可视化之敏捷BI Tableau Server高级实战培训视频课程:​ ​https://edu.51cto.com/course/3972.html​

1 环境准备

1.1 Tableau Server9下载与安装

(1)下载安装包:

  • 官网下载:

32位下载:​ ​https://downloads.tableau.com/tssoftware/TableauServer-32bit.exe​ ​​ 64位下载:​ ​https://downloads.tableau.com/tssoftware/TableauServer-64bit.exe​

32 位 Windows

64 位 Windows

2 核心

4(或更多)核心

4 GB RAM

8 GB RAM

15 GB 存储

15 GB 存储

如果满足不了64位Windows的硬件要求,可在64位操作系统中安装32位的介质TableauServer-32bit.exe,功能上也没有什么影响,只是性能不能充分发挥。Tableau Server9在个人电脑上可以安装,后续版本内存要求很高,基本无法在常规个人电脑上安装。

(2)Tableau Server9安装步骤

第一步:双击Tableau Desktop安装文件;弹出对话框,点击“Next(下一步)“如图:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server


第二步:(1)不选择安装路径,直接点击“Next”,

(2)选择安装路径,在上面查找,点击“Next”,如图:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_02


第三步:点击下一步,选择上面的选项,点击下一步,如图:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_03


Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_04

第四步:直接点击下一步,如图:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_05


Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_06


Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_07

第五步:等待,如图:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_08


Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_09

第六步:等待弹出tableau server configuration对话框,点击确定,如图:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_10


弹出一个对话框,点击确定,如图:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_11

第七步:等待安装完成,弹出安装完成对话框,点击“完成”按钮,及设置管理员页面,如图:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_12


Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_13


Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_14

1.2 Tableau Cloud(原名Tableau online)注册

(1)Tableau Cloud作用,使用 Tableau Cloud 开发站点进行的活动类型示例包括:

  • 测试和评估新的或更新的 Tableau API*
  • 构建和测试您可以在内部部署或通过 Tableau Exchange 共享的仪表板扩展
  • 构建和测试 Tableau 的新嵌入式部署
  • 使用 Tableau REST API 或 tabcmd 的测试自动化脚本
  • 使用 Webhook 为 Tableau 创建新的工作流程

您不应使用 Tableau Cloud 开发站点 进行的活动示例包括:

  • 尝试新的最终用户功能。请改用 Tableau Beta 程序。
  • 存储客户数据或其他敏感信息。
  • 存储任何生产或关键任务内容。
  • 大数据集或负载测试或大规模尝试。
  1. 如何注册Tableau Cloud

1)注册成功Tableau开发者

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_15


Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_16

  1. 获取Tableau开发人员站点

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_17

  1. 激活站点

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_18

  1. 登录Tableau Cloud

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_19

2 仪表盘制作(略,参见本系列其它文章)

3 发布至Tableau Server或Tableau Cloud

制作好工作簿之后,可进行发布,发布步骤:

  1. 选择菜单服务器>>发布工作簿。输入tableau server IP地址、用户名(需Server端新建)、密码,可直接将工作簿发布到Server端。发布过程中将数据源连接信息,数据提取文件(前提是连接数据源时采用提取的方式)都一起发布到Server上,如果是服务器数据源(如oracle,sqlserver等),需在发布时输入数据库用户名与密码。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_20

  1. 发布的时候可以设定该工作簿的权限:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_21


所有者可编辑,交互者可对筛选器进行操作,查看不能操作筛选器。一般业务用户配成交互者(交互者的许可数量与试用license关联,如果找厂家索取试用license时需说明)。系统管理员可配成编辑者。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_22


这里设置的权限小于等于在服务端“用户数”中先行配置站点角色权限。例如如果服务器上将某用户设置为交互者,desktop发布时如果将该用户设置为查看者,则该用户只能以查看者的权限进行报表的查看。以下是服务端设置用户站点角色界面。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_23

  1. 发布的时候可以设定该工作簿中的工作表是否以标签的形式显示:

设置方法:勾选“将工作表显示为标签”。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_24


显示效果:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_25


当然,如果发布时没有选择,在发布后的Web管理的详细信息编辑处进行编辑亦可:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_26

  1. 发布的时候可以设定该工作簿的数据源更新计划与数据源身份验证:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_27


提示:发布的时候会将工作簿文件(twb)及数据源信息同时发布至服务器,如果是打包工作簿则还会将提取文件也一并发布至服务器。另外 工作簿的名称如果变了,则该工作表的Web URL会产生变化。

4 服务器端管理

Tableau Server9管理内容包括:站点、项目、工作簿、视图、数据源。其关联关系是站点为最大独立单位,不同站点中的子项相对独立,当然后期也可将工作簿在不同站点间移动;一个项目中有一个或多个工作簿;一个工作簿中有一个或多个视图(视图包括工作表、仪表析、故事);另外包括对用户、组、计划、任务的管理;服务器的状态监控,站点的设置(包括常规设置、许可证、站点)。

4.1 站点管理

Tableau Server第一次在“设置”菜单中添加站点:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_28


添加站点界面:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_29


添加站点成功后,菜单有一些变化:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_30


出现服务器|站点菜单,且此时设置菜单中的“添加站点”消失了。可以此处进行站点的管理。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_31


删除刚新建的站点击又恢复原始状态。

4.2 内容管理

4.2.1 项目管理

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_32

4.2.2 工作簿管理

  1. 工作簿列表(下图中只有一个工作簿)

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_33

  1. 在线编辑工作簿

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_34

4.2.3 视图管理

  1. 视图列表(下图中只有一个视图)

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_35

  1. 编辑视图

点击编辑视图后,打开在线编写工作表界面,可进行工作表的编辑。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_36

4.2.4 数据源管理

客户端发布工作簿时除了工作簿文件外,也将数据源配置信息一并发送至服务器。数据源在此显示。如果是非服务器数据源也会在此显示。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_37


实时连接:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_38


无需刷新提取文件,实时更新。视图页面中下载的工作簿twb,在desktop中打开时仍需输入数据库用户名及密码。

提取连接:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_39


可点击立即刷新进行提取文件的刷新。视图页面中下载的工作簿twbx,在desktop中打开时为打包工作簿(包含TDE数据源)。

4.3计划与任务

对于提取方式的工作簿可实现定时更新,步骤如下:

  1. 定义计划(设定频度,最小频率是15分钟)。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_40

  1. 工作簿与计划关联。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_41


Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_42


直连数据源方式“数据提取刷新”不可用。

选择刷新的计划:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_43


点击“计划刷新”按钮后在任务菜单页面即生成一条任务:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_44


以后可以在此处对任务计划维护:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_45

4.4用户与组

  1. 添加组

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_46

  1. 添加用户

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_47

  1. 编辑用户

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_48


编辑组成员身份(需先新建组)。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_49


编辑站点角色(交互者、查看者):

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_50

4.5权限管理

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_51

4.6状态(系统监测)与设置

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_52


提示:如果需要Tableau Server服务器的系统运行情况,可集成这里的页面(集成方式与其它页面集成方式一致,参见tableau页面集成部分。)

5.tableau单点登录/系统集成*

将Tableau Server 视图嵌入到网页中时,访问该页面的所有用户都必须是Tableau

Server 上的许可用户。用户访问该页面时,将会看到先登录到Tableau Server 中才能查看视图的提示。如果您已经有一种在该网页上或Web 应用程序中对用户进行身份验证的方法,就可以通过设置受信任的身份验证来避免此提示,并避免您的用户必须登录两次。

受信任的身份验证意味着您已在Tableau Server 与一个或多个Web 服务器之间建立受

信任的关系。当Tableau Server 接收来自这些受信任Web 服务器的请求时,它会假设您的Web 服务器已处理必需的身份验证。

如果您的Web 服务器使用SSPI 安全支持提供程序接口,则无需设置受信任的身份验证。您可以嵌入视图,这样,只要您的用户是Tableau Server 许可用户且是您

Active Directory 的成员,就可以安全地访问这些视图,不支持同时使用“启用自动登录” 在安装过程中配置的选项,该选项使用Microsoft SSPI 和受信任的身份验证。如果您没有将SSPI 与Active Directory 结合使用并且希望您的用户能够安全地访问。Tableau Server 视图而不提示其输入凭据,则可以设置受信任的身份验证。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_53

5.1基本流程

1. 设置受信任IP地址(需**重启tableau Server**),参见[**https://help.tableau.com/current/server/zh-cn/trusted_auth.htm**](https://help.tableau.com/current/server/zh-cn/trusted_auth.htm)
2. 设计页面访问代码
  1. Portal端申请票证
  2. Tableau server返回票证给portal
  3. Portal使用票证使用各种不同的用户名称即可登录访问tableau 报表

5.2具体操作

5.2.1在tableau server服务器上设置受信任IP地址

  1. 以管理员身份打开命令提示符,导航到Tableau Server 的bin 目录,例如C:\Program Files\Tableau\Tableau Server\9.2\bin。
  2. 然后键入以下命令:

tabadmin set wgserver.trusted_hosts "<trusted IP addresses or host names>"

在上面的命令中,<trusted IP addresses> 应是您的Web 服务器的IPv4 地址或主机名称的逗号分隔列表。例如:.\tabadmin set wgserver.trusted_hosts "192.168.1.101, 192.168.1.102, 192.168.1.103"或.\tabadmin set wgserver.trusted_hosts "webserv1, webserv2, webserv3"

注意:

该逗号分隔列表应位于引号内,每个逗号后跟一个空格。

指定的Web 服务器必须使用静态IP 地址,即使在此处使用主机名称也一样。

此设置为覆盖模式,如果有新的受信站点需要添加,则之前已经添加的受信站点均需再次加入。

添加了可信站点后,TableauServer服务需要重新启动。

新版本可以直接在网页上添加可信站点:单击“配置”选项卡上的“用户身份和访问”,然后单击“受信任的身份验证”。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_54

5.2.2 web server上编写配置代码

获取分享代码:在视图页面点击“分享”按钮,将Embed部分的代码拷贝出来。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_55

<script type='text/javascript' src='http://localhost/javascripts/api/viz_v1.js'></script>
<div class='tableauPlaceholder' style='width: 654px; height: 670px;'>
<object class='tableauViz' width='654' height='670' style=';'>
<param name='host_url' value='http%3A%2F%2Flocalhost%2F' />
<param name='site_root' value='' />
<param name='name' value='-/GaugeHate' />
<param name='tabs' value='no' />
<param name='toolbar' value='yes' />
<param name='showVizHome' value='n' />
</object>
</div>

附件“test.jsp”是实现受信任身份验证时写的页面test.jsp(注意红色部分的配置参数和分享代码)。

此处代码获取请查看视频课程或联系荷露叮咚网络学苑客服人员。请理解,原创不易,码字不易。

访问​​http:// 10.1.126.61:8081/test.jsp​​即可访问该报表,无需登录。
例如,某一个省公司的多个用户在tableau server中共用该省公司的账户(只有一个,因为tableau 按用户数收费,因上购买的用户数少,例如一个省公司一个),同时,可在发布工作簿时配置用户筛选,某个省公司的账号只能查看该省公司的数据。

6.tableau权限集成

tableau支持自带的权限管理及Active Directory。自带的权限管理非常简单,只需原始系统中的用户与tableau中的用户对应上即可(受限于购买的用户许可数,也可以基于原始系统的角色与tableau中的用户进行对应)。
基于Active Directory的权限管理需要安装tablelau server时选择基于Active Directory配置(选了AD,tableau自带的权限就不能使用了,两者只能选其一),在tableau server中配置AD的域(可以是多个),tableau增加用户的时候,只能增加AD中包含的用户(用户名相同),不在AD中的用户增加不了,也可以点击同步按钮将AD中的用户批量同步至tableau server。

7.tableau页面集成(tableau js api)

一般将多个工作表放入仪表板,一个工作簿中有多个仪表板,发布至服务器时以仪表板的形式发布,一个仪表板对应一个原始页面,也可以在发布的时候加上页签,使用同一个工作簿中的不同仪表板可在同一页面的不同页签中切换显示。通过URL来进行页面集成,以下是常用URL参数及其功能:

  1. custom-Views 隐藏“记住我的更改”选项。
    <param name="customViews" value="no"/>
    ​​http://tabserver/views/Date-Time/DateCalcs?:embed=yes&:customViews=no​​ 2. embed 隐藏顶部导航区域。
    ​​http://tabserver/views/Date-Time/DateCalcs?:embed=yes​​ 3.filter定义视图打开时显示的内容
    <param name="filter" value="Team=Blue"/>
  2. linktarget 指定外部超链接的目标窗口名称。
    <param name="linktarget" value="_blank"/>
    ​​http://tabserver/views/Date-Time/DateCalcs?:embed=yes&:linktarget=_blank​​ 5. toolbar 工具栏是否显示(默认为yes显示)。
    <param name="toolbar" value="top"/>
    ​​http://tabserver/views/Date-Time/DateCalcs?:embed=yes&:toolbar=no​​ 实际项目中一般对于只有查看权限的用户只需设置customViews、embed、toolbar参数即可,以上参数在一般的页面集成过程中够了用了,更多参数说明参见软件自带帮助文档。
    ​http://tabserver/views/Date-Time/DateCalcs?:​​ embed=yes&:customViews=no&:toolbar=no
    Tableau js api可允许客户端进行多种操作,如嵌入页面、筛选、导出PDF交互等。
<!DOCTYPE html>
<html>
<head>
<title>Basic Embed</title>
<script type="text/javascript" src="https://public.tableau.com/javascripts/api/tableau-2.min.js"></script>
<script type="text/javascript">
var viz;
function initViz(){
var containerDiv = document.getElementById("vizContainer"),
url = "http://192.168.10.43/views/_0/sheet0?:embed=y&:showShareOptions=true&:display_count=no&:showVizHome=no",
options = {
hideTabs: true,
onFirstInteractive: function(){
console.log("Run this code when the viz has finished loading. ");
}
};
viz = new tableau.Viz(containerDiv, url, options);
//Create a viz object and embed it in the container div.
}
function exportToPDF(){
viz.showExportPDFDialog();
}
</script>
</head>
<body onload="initViz();">
<div id="vizContainer" style="width:800px; height:700px;"></div>
<button onclick="exportToPDF();">Export</button>
</body>
</html>

9.用户筛选器控制视图权限

通过用户筛选器可实现不同用户在同一个视图中看到的数据范围不同,例如某公司机构分为省市两级,省公司的用户可以查看某报表的省范围内的数据(包括各个地市),而地市用户在该视图中只能查看该地市的数据范围。

选择菜单:服务器>>创建用户筛选器>>选择需要作为筛选的字段。(本示例中为公司名称),需登录服务器后才能操作。

按下图方式进行用户与单位的匹配,例如用户北京对应北京公司。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_56


河北用户对应河北公司。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_57


总部用户对应全部省市公司:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_58

点击确定后新建那的用户筛选器在集面板中显示,将其拖拽至筛选面板以生效。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_59


点击底部的用户预览数据结果。如总部用户看到了全部省公司数据。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_60


北京用户只能看到北京公司数据。如果在仪表板中有多个工作表,则用户筛选器可以共用(与普通筛选器用法一致)。

10 Tableau REST API

REST API可通过 HTTP 在 Tableau Server 或 Tableau Cloud 上管理配置、权限和发布。利用 REST API,您可以访问数据源、项目、工作簿、站点用户和站点背后的功能。您可以使用此访问权限来创建自定义应用程序,或通过脚本与服务器资源交互。例如,可以实现以下功能:

  • 设置新服务器自动创建用户和站点
  • 创建组织的自定义门户,以便组织仅使用要公开的功能来管理服务器
  • 从Tableau仪表板生成图像
  • 以编程方式将数据提取文件发布到服务器
  • 以编程方式为用户创建新的订阅

10.1入门教程第 1 部分:工具、REST 基础知识和登录

通过Tableau Server REST API ,你能够创建脚本或程序来执行与在服务器 UI 执行的相同操作。这意味着可以实现自动执行重复性任务,可以实现自动化工作流,将 Tableau 管理任务集成到您现有的工作流中,等等。
REST 是一种常见的模式,用于通过 Web 向 API(应用程序编程接口)发出请求并从中获取响应。以下是您在开始使用前需要了解的 REST 协议的几个部分。
**资源:**您要查询或管理的 API 组件,由包含服务器位置和所需资源的 URI 表示。典型的 Tableau Server 资源是用户、工作簿和视图。例如用于获取 Tableau 工作簿详细信息的 URI 模型类似于:GET https://MY_SERVER/api/3.4/workbooks/workbook-id
**请求:**发送给服务器的消息,描述您要对资源采取的操作。
请求使用 HTTP 动词(典型 Web 请求中的动作词)来描述所请求的动作。这些包括:
GET(读取信息)
POST(创建新资源)
PUT(更新现有资源)
DELETE(删除资源或配置)
请注意,请求的 URI 模型会告诉您要使用哪个动词。
许多请求都有包含请求详细信息的正文。例如,登录请求正文携带用户的用户名和密码凭据,供服务器在授权登录时进行验证。
响应: 服务器对请求的响应,其中包含有关请求后资源状态的信息。响应通常包含承载请求产生的信息的主体。例如,对登录请求的响应有一个包含凭据令牌的主体,在后续请求中,服务器使用该令牌来验证用户是否已签名。
响应代码: Tableau Server 还会返回一个响应代码,报告调用是否成功 (200) 或失败原因(400 或更高)。
**标头:**所有请求和响应都有包含有关它们的信息的标头,例如,响应或请求的格式(XML 或 JSON)。它们还可以携带关键信息,例如当请求标头包含允许服务器验证用户登录的凭据令牌时。
(1)登录服务器:通过PostMan或API Post等工具进行测试联调(完全按下图操作):
下载以下文件(点击链接并从浏览器或 IDE 保存): https ://github.com/tableau/rest-api-samples/tree/master/postman
https://www.getpostman.com/ 下载并安装 Postman。

http://127.0.0.1/api/2.1/auth/signin

<tsRequest>

<credentials name="admin" password="admin">

<site contentUrl=""/>

</credentials>

</tsRequest>

(2)获取站点信息:
使用 Postman - 使用 Postman 将凭据添加到请求标头:

​http://127.0.0.1/api/2.1/sites/​


  1. 打开 Postman 并选择您的请求。
  2. 选择Headers。
  3. 在空行的“键”列中,键入“X-Tableau-Auth”。
  4. 在值列中,输入您从登录调用的响应正文中复制的凭据令牌值。(令牌默认2小时过期)。令牌对 REST API 调用和 Tableau 元数据 API (GraphQL) 查询有效。您不能将令牌用作 Tableau Server 的其他操作的身份验证。此外,该令牌仅适用于您登录的站点中的操作。您不能登录到一个站点,然后使用您返回的令牌将请求发送到另一个站点。如果这样做,服务器将返回 HTTP 403(禁止访问) 错误。
    | |

10.1.2创建项目并向其发布工作簿

本示例完成操作内容:

  • 创建一个 Tableau 项目。
  • 列出您网站上的项目。
  • 发布工作簿。

(1)创建项目

POST https://MY_SERVER/api/api-version/sites/site-id/projects

<tsRequest>

<project
name="new-project-name"
description="This is a new project" />

</tsRequest> |
| 上述site-id需要从登录接口获取。 |

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_61

在Header请求头添加令牌:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_62


点击“Send”后,创建了新项目:new-project-name,可以访问网页端查看:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_63

  1. 列出您站点中的项目(多个)
  2. | GET https://MY_SERVER/api/api-version/sites/site-id/projects |
  3. | --- |
  4. | 不需要正文。由于此请求是对现有 Tableau 对象列表的查询,因此您无需在请求正文中提供详细信息。 |
  5. |
  6. Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_64

  7. |
  8. 发布工作簿
    | POST https://MY_SERVER/api/api-version/sites/site-id/workbooks |
    | --- |
    | <tsRequest>
    <workbook name="test1" showTabs="true" >
    <project id="your-project-id"/>
    </workbook>
    </tsRequest> |

也可以使用curl从客户端发布工作簿:

| 与前面的步骤一样,要使用 cURL 将工作簿发布到您的项目,请创建一个名为publish-workbook.xml的 xml 文件,publish-workbook.xml其中包含本部分中的请求正文。

10.1.3创建用户组并为其授予权限

(1) 创建群组:

POST /api/3.4/sites/site-id/groups

请求正文:

<tsRequest>

<group name="new-tableau-server-group-name" />

</tsRequest> |

|

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_65


Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_66

|

  1. 获取站点用户ID
  2. | GET /api/3.4/sites/site-id/users |
  3. | --- |
  4. | 无正文 |
  5. |
  6. Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_67

  7. |
  8. 将用户添加到组(组ID:047ae6a6-7893-48bc-b56c-7edab8e3e680)
    | POST /api/3.4/sites/site-id/groups/group-id/users |
    | --- |
    | <tsRequest>
    <user id="user-id" />
    </tsRequest> |
  9. 授予组对工作簿的权限
    | PUT /api/3.4/sites/site-id/workbooks/workbook-id/permissions |
    | --- |
    | <tsRequest>
    <permissions>
    <workbook id="workbook-id" />
    <granteeCapabilities>
    <group id="group-id" />
    <capabilities>
    <capability name="Read" mode="Allow" />
    <!-- ... additional capabilities ... -->
    </capabilities>
    </granteeCapabilities>
    </permissions>
    </tsRequest> |

10.1.4立即刷新数据源

注意:如果您的服务器管理员禁用了站点的RunNow设置,此方法将失败并导致错误。有关详细信息,请参见Tableau Server 设置。此方法为指定的数据源运行数据提取刷新,无需将该数据提取刷新与计划任务相关联。此方法 等效于使用 Tableau Server UI 选择数据源,然后从菜单中选择“刷新数据提取” (也称为“手动刷新”) ,但是,REST 方法始终运行 完全刷新 ,即使刷新类型设置为增量。与手动刷新类似,如果提取物是文件,刷新后.tde它将转换为文件。

POST /api/api-version/sites/site-id/datasources/datasource-id/refresh

<tsRequest> </tsRequest>

如果不是服务器管理员或站点管理员的用户拥有数据源,或者他们是项目的项目负责人,则只能刷新数据源的数据提取。

Tableau REST API 帮助 :​ ​https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm​

10.1.5发布工作簿

在指定站点上发布工作簿。要更改已发布的工作簿,请调用 Update Workbook或 Update Workbook Connection。这种方法有两种使用方式。您可以调用它以在单个请求中发布工作簿。为此,您将工作簿文件的内容包含在请求的正文中。可在单个请求中发布的文件的最大大小为 64 MB。如果要避免发布过程超时,可以使用asJob参数使工作簿发布异步。或者,您可以分多个部分发布工作簿。为此,您通过调用Initiate File Upload 启动文件上传,使用Append to File Upload将部分文件发送到服务器 ,然后通过调用 Publish Workbook 提交上传。在这种情况下,Publish Workbook不包含要发布的文件。
与 Tableau Desktop 中使用的发布过程不同,REST API 发布过程不能自动包含工作簿使用的数据提取或其他资源。)如果您发布的工作簿从计算机上的源获取数据,请保存工作簿作为打包的工作簿(.twbx文件)并发布包,以便工作簿在服务器上拥有它需要的所有资源。
启动文件上传
启动文件的上传过程。上传开始后,您调用Append to File Upload将文件的各个块发送到服务器。将完整的文件发送到服务器后,您可以调用Publish Data Source、Publish Flow或Publish Workbook来提交上传。
启动文件上传返回一个上传会话 ID,您将其传递给 附加到文件上传或其中一种发布方法,以识别上传会话。
响应中返回的文件大小初始化为零 (0) 兆字节,因为尚未加载任何数据。对附加到文件上传或发布 API 的 后续调用会更新此值。
POST /api/ api-version/sites/site-id /fileUploads
启动文件的上传过程。上传开始后,您调用Append to File Upload将文件的各个块发送到服务器。将完整的文件发送到服务器后,您可以调用Publish Data Source、Publish Flow或Publish Workbook来提交上传。

10.1.6发布数据源

| POST /api/api-version/sites/site-luid/datasources
POST /api/api-version/sites/site-luid/datasources?overwrite=overwrite-flag&asJob=asJob-value
POST /api/api-version/sites/site-luid/datasources?append=append-flag

POST /api/api-version/sites/site-luid/datasources?uploadSessionId=upload-session-id &datasourceType=datasource-file-type&overwrite=overwrite-flag&append=append-flag

URI 参数值

api-version:要使用的 API 版本,例如3.17. 有关详细信息,请参阅REST API 和资源版本。

site-lui:要发布到的站点的 LUID。

overwrite-flag:true覆盖具有相同名称的数据源,或者false 如果指定的数据源已经存在则失败。默认值为false。如果overwrite-flag 设置为true但数据源尚不存在,则操作成功。

您可以在请求中同时包含覆盖和追加参数,但它们不能同时为真。

asJob-value:用于异步发布数据源的布尔值。如果将此值设置为false(默认值),发布过程将作为同步过程运行。如果数据源非常大,该过程可能会在完成之前超时。如果将此值设置为true,流程将异步运行,作业将开始执行发布流程并返回作业 ID。您可以通过调用Query Job检查导入作业的状态。

append-flag:如果将要发布的数据附加到具有相同名称的现有数据源,则为true 。默认值为false。如果append-flag 设置为true但数据源尚不存在,则操作失败。

为了将数据附加到 Tableau Server 上的已发布数据源,源文件和已发布文件都必须是文件扩展.hyper名为.tde。如果提取是使用多表选项存储的,则无法向其附加数据。

您可以在请求中同时包含 覆盖和追加参数,但它们不能同时为真。

上传会话流 如果您调用此方法来提交分部分上传的文件,则此值包含通过调用 Initiate File Upload生成的上传会话 LUID 。如果不包含此值,则服务器假定请求正文包含要发布的文件。

数据源文件类型 hyper、tds、tdsx或tde您正在上传的文件类型。如果您调用Publish Data Source以提交先前使用Append to File Upload上传的文件,则此值是必需的。如果您在请求正文中上传文件,则不会使用该值。

正文:在请求正文中发布文件

-- boundary-string Content-Disposition: name="request_payload" Content-Type: text/xml <tsRequest> <datasource name="Sales" useRemoteQueryAgent="False" description="Sales Data Source"> <connectionCredentials name="janedoe" password="xxxxxx" embed="True" /> <project id="ff2a8360-3c2b-4b05-a793-7607c602e1fb" /> </datasource> </tsRequest> -- boundary-string Content-Disposition: name="tableau_datasource"; filename="Sales.TDSX" Content-Type: application/octet-stream content-of-datasource-file -- boundary-string --

提交以前上传的文件:

-- boundary-string Content-Disposition: name="request_payload" Content-Type: text/xml <tsRequest> <datasource name="Sales" > <connectionCredentials name="janedoe" password="xxxxxx" embed="False" oAuth="True" /> <project id="ff2a8360-3c2b-4b05-a793-7607c602e1fb" /> </datasource> </tsRequest> -- boundary-string --

请求属性说明:

boundary-string (必需)保证在请求正文中唯一的字符串,用于分隔请求正文的各个部分。此值必须声明为具有以下格式的标头:

Content-type: multipart/mixed; boundary=boundary-string

datasource name (必需)保存在服务器上时分配给数据源的名称。

datasource useRemoteQueryAgent (可选)当 时true,此标志将允许您的 Tableau Cloud 站点使用 Tableau Bridge 客户端(链接在新窗口中打开). Bridge 允许您通过与受支持的本地数据源的实时连接来维护数据源。

datasource description (可选)数据源的描述。

connectionCredentials

如果数据源需要凭据,则<connectionCredentials>元素是必需的。如果数据源不需要凭据,Tableau 将忽略此元素(如果存在)。 connectionCredentials属性是:

username

(必需,取决于 oAuth设置)连接凭证用户名。

password

(必需,取决于 oAuth设置)连接凭据密码。

embed

(可选)如果数据源中嵌入了真实凭据。默认为false。

oAuth

(可选)如果数据源连接配置为使用 OAuth,将此设置为以指定元素中 名称true属性的值是 OAuth 用户名。在这种情况下,不需要密码,并且embed属性的值指定是否将 OAuth 凭据嵌入到数据源中。有关详细信息,请参阅 OAuth 连接connectionCredentials(链接在新窗口中打开)在 Tableau Server 文档中。

project要将数据源分配到的项目的 LUID。如果不指定项目,则数据源将发布到默认项目。

datasource-file-name要上传的数据源文件的文件名(包括扩展名)。仅当请求还包含数据源文件的内容时,才在请求正文中使用该属性;如果您提交使用先前请求上传的文件,则不使用它。

content of datasource file 数据源文件的内容(如果请求包含该文件)。一次调用可以上传的文件的最大大小为 64 MB。

askDataEnablement

此属性在 API 3.12 及更高版本(Tableau Cloud 2021 年 9 月/Server 2021.3)中不可用。

11 命令行操作

11.1.tableau移植/升级/备份(服务端tabadmin)

tabadmin backup 命令可创建包含存储库、数据提取和服务器配置中的数据的.tsbak 文
件。创建该文件后,将其存储于其他计算机上。

11.1.1备份

创建备份时,所有内容全都放置在一个扩展名为.tsbak 的文件中。可使用tabadmin 命令行工具 清理 不必要的日志和临时文件以及 备份 还原 Tableau数据。

11.1.1.1清理文件

不需要在执行清理之前停止Tableau Server,但根据Tableau Server 是正在运行还是已停止,tabadmin cleanup 命令的行为会有所不同。清理日志文件和临时文件的目标决定您运行tabadmin cleanup 命令的方式。
要清理所有可能的文件和数据库条目,您需要运行tabadmin cleanup 两次: 一次在Tableau Server 运行时,一次在其已停止时 。两种方式后续操作相同:

  1. 以计算机管理员身份打开命令提示符CMD,然后键入以下内容(转到Tableau server安装目录的bin子目录下):
    | cd "C:\\Program Files\\Tableau\\Tableau Server\\<version>\\bin" |
    | --- |
  2. 运行以下命令:
    | tabadmin cleanup或.\\tabadmin cleanup |
    | --- |

以下是两者区别:

  1. Tableau Server 已停止时移除的内容:

当在Tableau Server 已停止的情况下运行tabadmin cleanup 时:将从ProgramData\Tableau\Tableau Server\data\tabsvc\logs 目录中移除所有日志文件,但是ProgramData\Tableau\Tableau Server\logs 中的日志文件不会被移除。
另外Tableau Server 临时文件夹ProgramData\Tableau\Tableau Server\temp和ProgramData\Tableau\Tableau Server\data\tabsvc\temp 的内容将被移除。 http_requests 表条目不会更改,因为PostgreSQL 数据库不可访问。

  1. Tableau Server 正在运行时移除的内容:

当您在Tableau Server 正在运行的情况下运行tabadmin cleanup 时:将从ProgramData\Tableau\Tableau Server\data\tabsvc\logs 中移除七天之前的日志文件ProgramData\Tableau\Tableau Server\logs 中的活动日志和日志文件不会被移除。同时将从Tableau Server PostgreSQL 数据库中移除七天之前的http_requests 表条目。这是创建自定义管理视图时可以使用的其中一个表。

11.1.1.2手动备份
  1. 以计算机管理员身份打开命令提示符CMD,然后键入以下内容(转到Tableau server安装目录的bin子目录下):
    | cd "C:\\Program Files\\Tableau\\Tableau Server\\<version>\\bin" |
    | --- |
  2. 通过键入tabadmin backup < tabserver > 创建备份文件,其中< tabserver >是备份文件名或文件路径加文件名,建议指定文件路径加文件名,以方便管理及查找(否则备份文件将存储在bin目录下)。(创建备份之前不再需要停止服务器)例如:
    | tabadmin backup C:\\backups\\Tableau\\tabserver |
    | --- |

您还可以选择使用-d 将当前日期追加到文件名和-t,后跟路径,以指定备份过程中创建的临时文件的位置。例如:

11.1.1.3自动备份

自动备份原理是将手动备份的脚本通过操作系统的任务计划进行自动执行。Windows Server中通过制作.bat批处理文件,通过任务计划定时执行该批处理文件。
批处理文件示例如下:

| cd "C:\\Program Files\\Tableau\\Tableau Server\\<version>\\bin"
tabadmin ziplogs -l -n –f -- 生成日志文件
copy logs.zip <path_and_filename> --归档日志文件
tabadmin backup <backupfilename> -d --开始备份
copy <original_backup_path_and_name> <other_location_path_and_name> --归档备份文件
tabadmin cleanup --开始清理
[sleep 90] --等待90S

11.1.2恢复/还原

进行恢复还原时,备份文件(.tsbak) 中的内容将 覆盖 Tableau PostgreSQL 数据库、数据提取以及配置文件的内容。
恢复/还原的操作步骤如下:

11.1.2.1停止服务器

首先通过以下命令停止Server服务:

11.1.2.2从备份文件还原数据库

在上面的行中,将<filename> 替换为要用来进行还原的备份文件的名称。
要仅还原数据而不还原配置设置,请键入以下命令:

11.1.2.3重启Tableau Server

在还原.tsbak 文件时,Tableau Server 会自动创建其当前data 文件夹的副本,将它命名为tabsvc.bak- ,并将它放在ProgramData\Tableau\TableauServer\data 中。此文件夹是Tableau Server 数据的应急备份,在备份还原过程中出现问题时,Tableau 支持人员或许会用到它。还原完成后,可以安全地从ProgramData\Tableau\Tableau Server\data 中移除任何tabsvc.bak- 文件夹来释放更多磁盘空间。在Tableau Server 群集中,运行Tableau Server 的每台计算机上都会创建tabsvc.bak-* 文件夹。

11.1.3移植/升级

Tableau移植/升级可先备份再进行恢复,系统自动将相关数据内容进行升级。
另外,Tableau 卸载时,也会自动创建.tsbak 文件,这是升级到新版本的第一个步骤。该.tsbak 文件可直接用于自动将数据迁移到较新版本,如有特殊要求需参加新版本相关说明。
实例截图:将10.1.166.59全部迁移至10.1.166.79(备份过程忽略)

  1. 59上清理文件

    2)79上恢复

11.2.tableau数据源刷新

11.2.1通过正版Desktop命令行tableau刷新服务端数据源

命令行方式刷新:前提,需要用正版tableau desktop软件。

若要使用 Tableau 数据提取命令行实用工具,需满足以下要求:

它在 Windows 上随 Tableau Desktop 一起提供,并且只能在 Windows 系统上运行。

它不适用于试用版的 Tableau Desktop。只能使用它来刷新单连接数据源。它不适用于多连接数据源。运行实用工具,以管理员身份打开命令提示符,并转到 Tableau Desktop bin 目录。例如:

cd C:\Program Files\Tableau\Tableau 2022.3\bin:

使用下列命令之一,并添加下表中描述的参数。

注意:使用此实用工具时,始终要在命令行上或脚本中指定 tableau,决不要指定 tableau.exe。

.\tableau refreshextract

.\tableau addfiletoextract

没有license的desktop会提示:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_68

| tableau refreshextract 示例命令
以下命令可刷新已发布到本地 Tableau Server、名为 CurrentYrOverYrStats 的数据提取。此命令指定以下内容:
Tableau Server 的名称:our_server_name
服务器的用户名和密码:OurServerSignIn、OurServerPwd
项目名称:New Animations
要刷新的数据源的名称:CurrentYrOverYrStats

数据源用户名密码:OurDatabaseSignIn、OurDatabasePassword

C:\\Program Files\\Tableau\\Tableau 2022.3\\bin>tableau refreshextract --server https://our_server_name --username OurServerSignIn --password "OurServerPwd" --project "New Animations" --datasource "CurrentYrOverYrStats" --source-username OurDatabaseSignIn --source-password "OurDatabasePassword"

详细参数:​ ​https://help.tableau.com/current/pro/desktop/zh-cn/extracting_TDE.htm#​

11.2.2服务端刷新数据源

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_69


手动或通过Python爬虫(Selenium)模拟点击也可实现自动刷新。

11.3.tableau server tabcmd服务端命令行

Tableau 提供了 tabcmd 命令行实用工具,您可以使用它在 Tableau Server 站点上自动完成站点管理任务。例如,创建或删除用户、项目和组。

注意:tabcmd 实用工具随 Tableau Server 一起提供,并将自动安装在服务器节点上。但未包括其安装程序,因此,如果要在不是 Tableau Server 安装一部分的计算机上运行 tabcmd,您需要从 Tableau 网站下载安装程序。

运行方式如下:

PS C:\Program Files (x86)\Tableau\Tableau Server\9.2\bin> .\tabcmd

Tableau Server Command Line Utility -- 9200.15.1201.0018

tabcmd help -- tabcmd 命令的帮助

tabcmd help <a command> -- 显示特定命令的帮助

tabcmd help commands -- 列出所有可用命令

tabcmd help <a command> | commands

命令选项:

全局选项:

--[no-]cookie 在登录时不保存会话 ID。后续命令将需要重新登录。如果未指定,则默认为保存会话 ID

-c,--use-certificate 使用客户端证书登录

-h,--help 显示 tabcmd 帮助

--no-certcheck 不验证 SSL 证书

--no-prompt 不提示输入密码

--no-proxy 不使用 HTTP 代理

-p,--password <PASSWORD> 使用指定的 Tableau Server 密码

--password-file <FILE> 从 FILE 中读取 Tableau Server 密码

-s,--server <URL> 使用指定的 Tableau Server URL。如果未指定协议,则使用 http://

-t,--site <SITEID> 使用指定的 Tableau Server 站点。指定空字符串("")可强制使用默认站点

--timeout <SECONDS> 等待多长时间(以秒为单位)以让服务器完成对命令的处理。默认为等待到服务器响应

-u,--username <USER> 使用指定的 Tableau Server 用户名

-x,--proxy <HOST:PORT> 使用指定的 HTTP 代理

可用命令:

tabcmd addusers -- 将用户添加到组

tabcmd creategroup -- 创建本地组

tabcmd createproject -- 创建项目

tabcmd createsite -- 创建站点

tabcmd createsiteusers -- 在当前站点上创建用户

tabcmd createusers -- 在服务器上创建用户

tabcmd delete -- 从服务器中删除一个工作簿或数据源

tabcmd deletegroup -- 删除组

tabcmd deleteproject -- 删除项目

tabcmd deletesite -- 删除站点

tabcmd deletesiteusers -- 删除站点用户

tabcmd deleteusers -- 删除用户

tabcmd editdomain -- 编辑域

tabcmd editsite -- 编辑站点

tabcmd export -- 从服务器中导出数据或视图的图像

tabcmd get -- 从服务器中获取文件

tabcmd help -- tabcmd 命令的帮助

tabcmd listdomains -- 列出域

tabcmd listsites -- 列出用户的站点

tabcmd login -- 登录到服务器

tabcmd logout -- 从服务器中退出

tabcmd publish -- 将工作簿、数据源或数据提取发布到服务器

tabcmd refreshextracts -- 刷新服务器上的工作簿或数据源的数据提取

tabcmd removeusers -- 从组中移除用户

tabcmd runschedule -- 运行计划

tabcmd set -- 设置服务器上的某个设置

tabcmd syncgroup -- 使服务器与 Active Directory 组同步

tabcmd version -- 打印版本信息[upgradethumbnails](​ ​https://help.tableau.com/current/server/zh-cn/tabcmd_cmd.htm​ ​" \l "upgradethumbnails)

更多tabcmd信息参见:​ ​https://help.tableau.com/current/server/zh-cn/tabcmd_cmd.htm#id7e0a0627-ad89-4135-a1c2-85b1d8472568%3FTocPath%3DAdministrator%2520Guide%7Ctabcmd%7Ctabcmd%2520Commands%7C_____14​

示例:添加用户组:

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_70

11.4.cURL客户端命令行访问浏览器内容(参考)

curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。具体内容 参见:​ ​https://learn.microsoft.com/zh-cn/powershell/module/Microsoft.PowerShell.Utility/Invoke-WebRequest?view=powershell-7.3&viewFallbackFrom=powershell-3.0​

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Restful_71


Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_72


curl "​​https://MY-SERVER/api/3.4/sites​​" -X POST -d "@signin.xml" -H "X-Tableau-Auth:fDgkilutQqmJn0znEZr7Sg|0CHx3E9Sird1cOHv4yNVK86Y7opMmhKz"

12 性能提升的相关方法

12.1.提取优化

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_Tableau Server_73

12.2.工作簿页面加速视图

登录到 Tableau Cloud 或 Tableau Server 上的站点。

从“主页”或“探索”页面,导航到您要加速的视图。

单击Accelerate图标,然后单击切换到Accelerate。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_74


Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_75


查看和管理加速工作簿:

  1. 登录您的 Tableau 站点。
  2. 从左窗格中,选择任务。
  3. 单击加速视图选项卡。
  4. 选择“操作”菜单 (...) 以恢复或暂停所选视图的加速。

Tableau完整系列课程5:Tableau Server入门基础与接口二次开发_二次开发_76

12.3.优化SQL和使用高性能数据库

(1)优化SQL查询语句;
(2)分布式云原生数据库Snowflake、OushuDB等。

13 其它API

开发人员资源:

开发人员工具

社区论坛

14 Tableau错误代码

​https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_errors.htm​