与其他商业智能工具或软件一样,Tableau 表面上精美的可视化(例如这张瀑布图)离不开幕后稳健且高度集成的流程支撑。我们所说的 Tableau 架构,指的就是这些流程的组织方式,也是本指南的核心内容。
理解 Tableau 的架构是服务器管理员和数据架构师的重要职责之一。同时,数据分析师也能从中受益:一方面,能更清楚地了解工具的能力边界;另一方面,理解架构组件有助于更准确地定位错误来源并正确解读其含义。
Tableau 架构概览
Tableau 提供 10 多款产品,并在持续扩展。这些产品可分为两大类。一类面向开发,包括 Tableau Server;另一类面向发布,包括 Tableau Desktop。
部分产品在界面与功能上相近且有所交集,但各自拥有独立的架构。尽管同属一个家族,有些产品彼此间的配合更为紧密。Tableau Desktop 与 Tableau Server 就是典型示例:您在 Tableau Desktop 中创建的内容会交由 Tableau Server,用于发布、存储、管理与共享协作。
Tableau Desktop 架构的关键组件
作为负责开发报表的数据从业者,您最熟悉的 Tableau 门面很可能就是 Tableau Desktop。它安装在您的计算机上,是连接数据源并创建可视化的起点。
Tableau Desktop 的架构相对简单,包含三大组件(或层)。
- 数据层:数据层负责连接并管理数据源。
- 计算层:计算层负责数据转换与各类计算。
- 可视化层:可视化层用于创建并展示交互式图表与图形。
Tableau Desktop 架构
下面我们分别深入了解这三个层级。
数据层
数据层是数据抵达 Tableau Desktop 并准备接受分析与可视化处理的地方。其运作方式取决于您连接数据的方式,主要有两种连接类型:
- 提取连接:通过创建数据的静态快照,并将其本地存储在项目内。
- 实时连接:在您与任一可视化交互时,实时直接查询原始数据源。
无论选择何种连接类型,Tableau Desktop 都提供 90 种数据连接器,方便您从任意存储位置访问数据,无论是平面文件、SQL 服务器,还是云端文档管理平台。
数据层还会存储数据访问信息,例如位置与授权凭据,并提供数据建模能力,如表的汇总与关联,或更改数据类型等。
计算层
Tableau 拥有强大的计算引擎,您可以创建自定义字段以完成可视化所需的分析,不论是做聚合、分段、筛选、数据类型转换,还是其他处理。
主要提供三类计算:
- 基础计算:可在行级或聚合级对数据进行操作。
- 明细级表达式(LOD):LOD 表达式允许您在受控粒度下执行计算。
- 表计算:可在整个表或特定行集上执行聚合。
可视化层
可视化层是用于创建、定制与格式化可视化的地方。换言之,精彩内容都在这里上演。该层提供 Tableau 构建可视化的三种层级结构。
- 工作表:是您在 Tableau 中构建一切内容的基础单元。它是一块画布,您可以在其上创建、筛选并设置任意图表的格式。
- 仪表板:仪表板是一块可以组合一个或多个工作表并定义其交互方式的画布,同时还能添加文本、图片、按钮、内嵌网页等其他对象。
- 故事:故事用于将多个仪表板组合在一起,方便用户以一份报告的形式顺序浏览。
Tableau Desktop 的三层——数据层、计算层与可视化层——共同组成一个 Tableau 工作簿。您可以将整个工作簿本地保存为 Tableau 打包工作簿(.twbx)文件,并与团队成员共享以便查看与协作。
请注意,如果您只是把工作簿文件发给同事,他们需要在本地安装 Tableau Desktop 才能查看。此外,您也无法对该文件进行管理与治理。因此,将工作簿发布到 Tableau Server 是更高效的协作方式。基于此,我们接下来探讨 Tableau Server 架构。
Tableau Server 架构的关键组件
Tableau Server 本身由一组进程构成,组成一个完整的分析平台。它支持对报表与数据源进行发布、管理、治理、安全控制、探索与编辑。可部署在本地或您选择的云环境中,由您的组织全面负责其管理与安全。
Tableau Server 的架构包含至少 18 个组件与子组件,但确切数量会随着其频繁的版本迭代而变化。本文范围内,我们将展开介绍与发布工作簿或访问视图流程密切相关的主要组件,具体解释其中 8 个。
- 网关(Gateway):用户请求的入口,负责将请求路由至相应组件。
- 应用服务器(Application Server):管理会话、认证与授权,确保用户仅能访问被允许的资源。
- VizQL 服务器:将用户交互转换为查询,并据此生成可视化。
- 存储库(Repository):存放元数据、用户信息与配置设置,是核心数据库。
- 文件存储(File Store):负责存放与检索 Tableau 的数据文件,包括工作簿与提取。
- 数据引擎(Data Engine):通过执行查询与管理数据计算来处理数据,实现快速分析。
- 数据服务器(Data Server):管理与数据源的连接,优化并在网络中分发查询。
- 缓存服务器(Cache Server):通过缓存先前访问的数据与可视化,加速后续检索。
Tableau Server 架构
网关(Gateway)
网关好比 Tableau Server 的前台接待。当客户端向 Tableau Server 发出请求时,网关会将请求转交给相关组件以完成任务。这里的客户端既可能是希望发布报表的 Tableau Desktop 用户,也可能是要登录并访问报表的查看者。
在流程后续阶段,网关还负责将相应结果返回给客户端,无论是所请求的视图、查询,还是一条“发布成功”的消息。
应用服务器
应用服务器就像网关的得力助手。它接收来自网关的请求并进行处理,确保该请求能够按网关指向的路径顺利推进。
例如,当用户要发布工作簿时,应用服务器会将其拆分成两个文件:一个 XML 文件,存储工作簿中所有可视化的信息,并将其存入存储库;另一个是 Tableau 发明的名为 Hyper 的文件,包含源数据,用于存入文件存储。
当查看者访问服务器时,应用服务器会先通过查看存储库中的用户日志检查用户是否已注册及其访问级别。确认无误后,会为该用户准备相应的界面。
VizQL 服务器
VizQL 服务器是 Tableau Server 中一个很酷且独特的组件,由几位 Tableau 创始人发明。其名称意为“可视化查询语言”(Visual Query Language),充当数据库 SQL 语言与可视化语言之间的翻译器。
例如,当客户端与某个视图交互时,VizQL 服务器会通过数据引擎与数据服务器查询数据源,同时从存储库检索必要的元数据。数据与元数据匹配后,VizQL 服务器将可视化发送给网关,再由网关交付给用户。
存储库
存储库是存放与管理 Tableau Server 相关元数据的中心枢纽。这里存放的数据包括已发布工作簿的 XML 文件与用户日志(包含用户账号、角色与权限)。它也会存储有关服务器资产使用情况的数据,例如浏览次数与最常用数据源。
工作簿中使用的数据源是唯一不存放在存储库中的数据类型。此类数据会存放在下一节将讨论的文件存储中。
文件存储
文件存储负责管理 Tableau Server 中提取数据源的存储。在某些环境中,它还可创建并管理提取的副本,以确保在发生技术故障时仍可查询源数据。
数据引擎
这是专为处理存放于 Tableau Server 文件存储中的提取数据源而设计的数据库引擎。数据引擎借助 Hyper 转换并优化这些提取的数据源,以便在文件存储中实现高效存储。
数据引擎同时充当查询文件存储的接口,适用于查看、更新与刷新数据提取,或基于这些提取生成的视图。
数据服务器
当用户要访问包含提取数据源的视图时,数据服务器会向名为数据引擎的组件发送查询请求,后者再从保存副本的数据所在的文件存储中查询数据。
而对于包含实时数据源的视图,数据服务器会调用数据连接器,从外部源查询数据。
缓存服务器
顾名思义,缓存服务器会将先前浏览过的视图与查询结果保存在内存中,通过返回缓存结果来加速后续响应。
在组织内部署 Tableau 时的考虑事项
在组织内部署 Tableau 时,首先要明确,Tableau Server 并非发布与协作 Tableau 视图及数据资产的唯一选择。您还可以考虑 Tableau Cloud。
Tableau Server 需要由您的组织进行全面管理与安全保障;而 Tableau Cloud 则提供相似的界面与功能,但由 Tableau 官方全权托管、管理与保障安全。
因此,若您的组织没有特定的安全与 IT 基础设施要求,或缺乏自主管理服务器所需的人力与技术能力,那么 Tableau Cloud 会是更合适的选项。否则,就请撸起袖子,选择 Tableau Server 吧。
从 IT 视角看,Tableau 提供了蓝图文档与企业架构调研,列出了组织在部署 Tableau 前必须考虑的完整清单。但除了与 IT 合作外,从治理角度您还需思考以下通用事项。
- 治理策略:事先明确治理策略至关重要,以便在开始部署与管理 Tableau Server 时决定这些策略是否以及如何实现落地。
- 数据源:在部署 Tableau Server 之前,需梳理数据源的规模与位置,这也将决定所需组件与节点数量。
- 用户访问:需在部署前评估用户的数量、访问频率与地理位置。这将影响组织所需的组件与节点数量,以及部署方式的选择。
- 部署类型:决定是否在本地部署 Tableau Server(如物理服务器、私有数据中心),或在私有/公有云环境中部署。本地部署提供更强的控制与管理能力,而云部署具备更好的可扩展性与远程可达性。
- 硬件资源:如计划本地部署,请评估 CPU、内存、存储与网络带宽等技术能力,结合预期与预测的服务器负载,确认是否符合Tableau 要求。
- 培训与支持:组织内员工是否已准备好在数据分析流程的各阶段采用 Tableau?他们是否准备好用 Tableau 进行数据工程、分析、管理与自助服务?是否拥有具备 Tableau 经验的服务器管理员?若没有,部署前需投入时间进行培训与准备。
进一步了解 Tableau
本文探讨了最常用的 Tableau 产品——Tableau Desktop 与 Tableau Server——的架构,并讨论了在组织层面部署 Tableau 时的相关考量。
如欲更深入了解 Tableau Server,不妨体验这份来自 Tableau 的交互式仪表板。您也可以观看这段Tableau 团队的演示。
最后,如果您刚开始使用 Tableau,我们提供 Introduction to Tableau 入门课程,以及完整的Tableau Fundamentals 学习路径。若您已有一定经验,欢迎挑战 Data Analyst in Tableau 学习路径,为获取Tableau Certified Data Analyst 认证做好准备。
与其他商业智能工具或软件一样,Tableau 表面上精美的可视化(例如这张瀑布图)离不开幕后稳健且高度集成的流程支撑。我们所说的 Tableau 架构,指的就是这些流程的组织方式,也是本指南的核心内容。
理解 Tableau 的架构是服务器管理员和数据架构师的重要职责之一。同时,数据分析师也能从中受益:一方面,能更清楚地了解工具的能力边界;另一方面,理解架构组件有助于更准确地定位错误来源并正确解读其含义。
Tableau 架构概览
Tableau 提供 10 多款产品,并在持续扩展。这些产品可分为两大类。一类面向开发,包括 Tableau Server;另一类面向发布,包括 Tableau Desktop。
部分产品在界面与功能上相近且有所交集,但各自拥有独立的架构。尽管同属一个家族,有些产品彼此间的配合更为紧密。Tableau Desktop 与 Tableau Server 就是典型示例:您在 Tableau Desktop 中创建的内容会交由 Tableau Server,用于发布、存储、管理与共享协作。
Tableau Desktop 架构的关键组件
作为负责开发报表的数据从业者,您最熟悉的 Tableau 门面很可能就是 Tableau Desktop。它安装在您的计算机上,是连接数据源并创建可视化的起点。
Tableau Desktop 的架构相对简单,包含三大组件(或层)。
下面我们分别深入了解这三个层级。
数据层
数据层是数据抵达 Tableau Desktop 并准备接受分析与可视化处理的地方。其运作方式取决于您连接数据的方式,主要有两种连接类型:
无论选择何种连接类型,Tableau Desktop 都提供 90 种数据连接器,方便您从任意存储位置访问数据,无论是平面文件、SQL 服务器,还是云端文档管理平台。
数据层还会存储数据访问信息,例如位置与授权凭据,并提供数据建模能力,如表的汇总与关联,或更改数据类型等。
计算层
Tableau 拥有强大的计算引擎,您可以创建自定义字段以完成可视化所需的分析,不论是做聚合、分段、筛选、数据类型转换,还是其他处理。
主要提供三类计算:
可视化层
可视化层是用于创建、定制与格式化可视化的地方。换言之,精彩内容都在这里上演。该层提供 Tableau 构建可视化的三种层级结构。
Tableau Desktop 的三层——数据层、计算层与可视化层——共同组成一个 Tableau 工作簿。您可以将整个工作簿本地保存为 Tableau 打包工作簿(.twbx)文件,并与团队成员共享以便查看与协作。
请注意,如果您只是把工作簿文件发给同事,他们需要在本地安装 Tableau Desktop 才能查看。此外,您也无法对该文件进行管理与治理。因此,将工作簿发布到 Tableau Server 是更高效的协作方式。基于此,我们接下来探讨 Tableau Server 架构。
Tableau Server 架构的关键组件
Tableau Server 本身由一组进程构成,组成一个完整的分析平台。它支持对报表与数据源进行发布、管理、治理、安全控制、探索与编辑。可部署在本地或您选择的云环境中,由您的组织全面负责其管理与安全。
Tableau Server 的架构包含至少 18 个组件与子组件,但确切数量会随着其频繁的版本迭代而变化。本文范围内,我们将展开介绍与发布工作簿或访问视图流程密切相关的主要组件,具体解释其中 8 个。
网关(Gateway)
网关好比 Tableau Server 的前台接待。当客户端向 Tableau Server 发出请求时,网关会将请求转交给相关组件以完成任务。这里的客户端既可能是希望发布报表的 Tableau Desktop 用户,也可能是要登录并访问报表的查看者。
在流程后续阶段,网关还负责将相应结果返回给客户端,无论是所请求的视图、查询,还是一条“发布成功”的消息。
应用服务器
应用服务器就像网关的得力助手。它接收来自网关的请求并进行处理,确保该请求能够按网关指向的路径顺利推进。
例如,当用户要发布工作簿时,应用服务器会将其拆分成两个文件:一个 XML 文件,存储工作簿中所有可视化的信息,并将其存入存储库;另一个是 Tableau 发明的名为 Hyper 的文件,包含源数据,用于存入文件存储。
当查看者访问服务器时,应用服务器会先通过查看存储库中的用户日志检查用户是否已注册及其访问级别。确认无误后,会为该用户准备相应的界面。
VizQL 服务器
VizQL 服务器是 Tableau Server 中一个很酷且独特的组件,由几位 Tableau 创始人发明。其名称意为“可视化查询语言”(Visual Query Language),充当数据库 SQL 语言与可视化语言之间的翻译器。
例如,当客户端与某个视图交互时,VizQL 服务器会通过数据引擎与数据服务器查询数据源,同时从存储库检索必要的元数据。数据与元数据匹配后,VizQL 服务器将可视化发送给网关,再由网关交付给用户。
存储库
存储库是存放与管理 Tableau Server 相关元数据的中心枢纽。这里存放的数据包括已发布工作簿的 XML 文件与用户日志(包含用户账号、角色与权限)。它也会存储有关服务器资产使用情况的数据,例如浏览次数与最常用数据源。
工作簿中使用的数据源是唯一不存放在存储库中的数据类型。此类数据会存放在下一节将讨论的文件存储中。
文件存储
文件存储负责管理 Tableau Server 中提取数据源的存储。在某些环境中,它还可创建并管理提取的副本,以确保在发生技术故障时仍可查询源数据。
数据引擎
这是专为处理存放于 Tableau Server 文件存储中的提取数据源而设计的数据库引擎。数据引擎借助 Hyper 转换并优化这些提取的数据源,以便在文件存储中实现高效存储。
数据引擎同时充当查询文件存储的接口,适用于查看、更新与刷新数据提取,或基于这些提取生成的视图。
数据服务器
当用户要访问包含提取数据源的视图时,数据服务器会向名为数据引擎的组件发送查询请求,后者再从保存副本的数据所在的文件存储中查询数据。
而对于包含实时数据源的视图,数据服务器会调用数据连接器,从外部源查询数据。
缓存服务器
顾名思义,缓存服务器会将先前浏览过的视图与查询结果保存在内存中,通过返回缓存结果来加速后续响应。
在组织内部署 Tableau 时的考虑事项
在组织内部署 Tableau 时,首先要明确,Tableau Server 并非发布与协作 Tableau 视图及数据资产的唯一选择。您还可以考虑 Tableau Cloud。
Tableau Server 需要由您的组织进行全面管理与安全保障;而 Tableau Cloud 则提供相似的界面与功能,但由 Tableau 官方全权托管、管理与保障安全。
因此,若您的组织没有特定的安全与 IT 基础设施要求,或缺乏自主管理服务器所需的人力与技术能力,那么 Tableau Cloud 会是更合适的选项。否则,就请撸起袖子,选择 Tableau Server 吧。
从 IT 视角看,Tableau 提供了蓝图文档与企业架构调研,列出了组织在部署 Tableau 前必须考虑的完整清单。但除了与 IT 合作外,从治理角度您还需思考以下通用事项。
进一步了解 Tableau
本文探讨了最常用的 Tableau 产品——Tableau Desktop 与 Tableau Server——的架构,并讨论了在组织层面部署 Tableau 时的相关考量。
如欲更深入了解 Tableau Server,不妨体验这份来自 Tableau 的交互式仪表板。您也可以观看这段Tableau 团队的演示。
最后,如果您刚开始使用 Tableau,我们提供 Introduction to Tableau 入门课程,以及完整的Tableau Fundamentals 学习路径。若您已有一定经验,欢迎挑战 Data Analyst in Tableau 学习路径,为获取Tableau Certified Data Analyst 认证做好准备。