第 3 章 数据连接与管理

第 3 章 数据连接与管理

连接数据源是利用Tableau进行数据分析的第一步,Tableau拥有强大的数据连接能力,支持几乎所有的主流数据源类型,包括本地文件、企业数据库以及网络上的公共数据或云数据库,如Google Analytics、Amazon Redshift或Salesforce。本章将从连接最简单的电子表格数据开始,重点说明如何通过Tableau快速连接到各类数据源,如何实现多表联接查询和多数据源数据关联,如何创建和管理数据提取,以及如何管理和操作数据源。

3.1 Tableau的数据架构

传统BI软件的元数据设计要么一次性建立完整企业级的元数据体系,要么完全不进行元数据管理。Tableau的元数据管理更加灵活,可以细分为数据连接层(Connection)、数据模型层(Data Model)和数据可视化层(VizQL)。其中,可视化层中使用的VizQL是以数据连接层和数据模型层为基础的Tableau核心技术,对数据源(包括数据连接层和数据模型层)非常敏感。

Tableau这样的三层设计,既可以让不了解元数据管理的普通业务人员进行快速分析,又方便了专业技术人员进行一定程度的扩展。为了更好地理解Tableau处理数据的方式与能力,下面我们从新建数据源模型开始来理解Tableau中的数据。

  1. Tableau中的数据连接层

    数据连接层决定了如何访问源数据和获取哪些数据。数据连接层的数据连接信息包括数据库、数据表、数据视图、数据列,以及用于获取数据的表连接和SQL脚本,但是数据连接层不保存任何源数据。

    在数据连接层,用户可以方便地对Tableau工作簿的数据连接进行修改,例如,将一系列仪表板的数据连接从测试数据库切换到生产数据库,只需要编辑数据连接,变更连接信息,Tableau会自动处理所有字段的实现细节。

    在数据连接层中,不论是在Tableau Server,还是在Tableau Desktop,支持的数据类型都非常丰富。

    Tableau支持传统的关系数据源(MySQL、Oracle、IBM DB2等)、多维数据源(Oracle Essbase、Microsoft Analysis Services、Teradata OLAP Connector)、Hadoop系列产品中的数据源(Cloudera Hadoop、Hortonworks Hadoop Hive、MapR Hadoop Hive等)、Tableau数据提取、Web数据源(Google Analysis、Google BigQuery、Salesforce等)、常见的本地文件(Excel、文本文件等)等多种类别,如图3-1所示。可通过Tableau Desktop直接新建数据源,也可以通过Tableau Server新建数据源,还可以把数据源发布到Tableau Server。

    图3-1 数据连接层中的数据源

  2. Tableau中的数据模型层

    不论数据源来自哪种服务器,Tableau中的数据都会分为维度和度量两大类。多维数据源的使用者对这两个概念应该非常熟悉,关系数据库中的数据可以在Tableau中进行一定程度的数据建模工作。

    这些数据建模工作可以在Tableau的数据模型层完成,主要内容包括管理字段的数据类型、角色、默认值、别名,以及用户定义的计算字段、集和组等。例如,如果在数据库中删除字段,那么在Tableau工作表中对应的字段会被自动移除,或者自动映射到别的替代字段。

    在完成数据连接后,Tableau会自动判断字段的角色,把字段分为维度字段和度量字段两类。如果连接的数据是多维数据源,那么Tableau直接获取数据立方体维度和度量信息;如果连接的是关系数据源,Tableau会根据数据库的数据来判断该字段是维度字段还是度量字段。

    为了更好地说明Tableau数据模型中的维度字段与度量字段,我们可以查看一个多维数据源的案例,如图3-2所示。

    图3-2 多维数据源案例

    在一般的数据建模过程中,首先要对业务数据库进行ETL操作(即数据抽取、转换和加载),采用的结构通常为星形结构或者雪花形结构,然后定义维度中的层级关系和属性,形成数据立方体(Cube)。这里事实表(Order)中的4个属性键分别对应Tableau中的4个维度(Customer、Product、Order Date和Ship Date),而Tableau中的度量取自事实表中的另外8个字段。

    Tableau可以识别出多维数据源中预先定义好的分层结构。在维度表(Date、Product、Geography)中,可以事先定义层级关系和属性,例如将Date表中的Year Name、Quarter Name、Month Name制作成Calendar Date分层结构。

    值得注意的是,由于多维数据源的特性,Tableau引入的多维数据源本身已经是一种聚合的形式,无法再进行进一步的聚合,并且维度字段将不能随意改变组织形式(如分组、创建分层结构、角色转换)和参与计算,同时度量字段也不能使用分级和改变角色。

3.2 数据连接

要在Tableau中创建视图,首先需要新建数据源,如图3-3所示。

图3-3 新建数据源

打开Tableau软件,进入主界面之后在页面左侧选择“新建数据源”,也可以在主界面菜单栏选择“数据”➤“新建数据源”,在下级界面的左侧会看到Tableau支持的数据源类型。由于数据类型较多,图3-4仅展示了一部分文件和服务器数据源,与Tableau 9.0相比,Tableau 10.5可以支持更多的数据源,包括可以扫描PDF中的数据,并进行加载分析。

图3-4 部分数据源类型

3.2.1 连接文件数据源

Tableau可连接Excel、文本文件、Access、JSON文件、PDF文件、空间文件(包括Shapefile、MapInfo表、KML锁眼标记语言文件和GeoJSON文件)、统计文件(包括SAS、SPSS、R)等多种本地数据源,本节主要介绍如何通过Tableau快速连接到Excel、Access、PDF、Tableau工作簿等各类常见的数据源。

  1. 连接到电子表格

    在文件数据源中,最常用的是电子表格,下面以Microsoft Excel文件为例进行说明。选择Microsoft Excel,在新的界面中可以看到数据源内含有多张Excel工作表,在弹出的“打开”对话框中选择“公司年龄统计表.xls”,单击“打开”,如图3-5所示。

    图3-5 连接示例

    根据界面上部“将工作表拖到此处”的文字提示,如图3-6所示,将表“年龄明细表-男”拖入界面中部框内(双击此表也可达到相同的效果),这时可在界面下方看到“年龄明细表-男”工作表的数据,如图3-7所示。

    {%}

    图3-6 “编辑数据源”界面

    {%}

    图3-7 选择工作表

    在确认表中数据信息无误后单击工作表,随即进入工作区界面,如图3-8所示,此时即成功连接到了Excel数据源。

    {%}

    图3-8 工作区界面

    注意,连接的文档不能超过255列,超过的会被删除。扫描数据前几行决定数据类型,因此有时数据类型不能正确识别,需进行自定义。

    如果需要在下次使用时快速打开数据连接,可以将数据连接添加到已保存数据源中,操作步骤为选择“数据”➤“<数据源名称>”➤“添加到已保存的数据源”,在弹出的窗口中选择“保存”,如图3-9所示。

    {%}

    图3-9 添加到已保存的数据源

    再次打开Tableau之后,在开始界面就可以直接连接到已保存数据源,如图3-10所示。

    图3-10 添加在“已保存数据源”列表

  2. 连接到Access文件

    连接到Microsoft Access数据源的操作步骤和连接到电子表格基本类似,均在新建数据源界面单击实现,选择Access数据源即可。

    和连接电子表格不同的是,在选定数据表的界面左下角会出现“新自定义SQL”选项,熟悉SQL的用户可以选择使用SQL查询连接数据,如图3-11所示。双击“新自定义SQL”1,在弹出的“编辑自定义SQL”文本框中键入或粘贴SQL查询语句。完成后单击“确定”,即可实现到Microsoft Access数据源的连接。

    {%}

    图3-11 连接到Access

  3. 连接到Tableau工作簿

    在新建数据源界面中单击“其他文件”,在弹出的对话框中打开工作簿或打包工作簿,Tableau会提示导入所选工作簿的数据源,单击“确定”完成到数据源的连接,如图3-12所示。

    图3-12 导入所选工作簿的数据源

  4. 连接到PDF

    Tableau新增了对PDF的支持,下面以分析某上市公司的季度报告为例,介绍对PDF中的数据进行分析的步骤。首先在连接数据界面,单击“PDF文件”,选择要分析的文件,单击打开,在弹出的“扫描PDF文件”对话框中,指定想要Tableau扫描表格的文件中的页面,可以选择扫描所有页面、仅单个页面或一定范围内的页面,如图3-13所示。

    图3-13 扫描PDF文件

    注意,与大多数PDF阅读器类似,扫描将文件的第一页计为“第1页”。扫描表格时,请指定PDF阅读器显示的页码,而不是文档本身可能使用的页码,该页面可能从第1页开始,也可能不从第1页开始。

    选择“全部”,Tableau将文件中所有包含的数据按照PDF页码、表格顺序进行展示,如Page3 Table1指的是PDF第三页的第一张表,如图3-14所示,但Page3 Table2可能为PDF第三页的第二张表,或PDF第三页同一张表的第二种解读方式。Tableau可能会对表提供多种解读,具体情况取决于该表在.pdf文件中的呈现方式,通常对标准表格识别效果最好,表中或表周围使用的颜色、阴影、表的特殊格式均会影响表的识别方式。若未生成所需要的表格,右键选择数据源,单击“重新扫描PDF文件”,可以指定不同的页面,重新创建新的扫描。

    {%}

    图3-14 生成扫描结果

    如果文件中包含跨多页的表,Tableau会将该表解读为多个表,可使用创建并集(详见3.3.1节)来解决这个问题。若表中数据呈现结果不好,如原始表格中包括附加表、子表、分层页眉、无关的页眉和页脚,或者空白行和列,可尝试Tableau的数据解释器对数据进行“清洗”。数据解释器会检测这些子表,以便可以独立于其他数据使用数据的子集,还可以移除无关信息来帮助准备用于分析的数据源,如图3-15所示。注意,数据解释器仅适用于Google表格、Excel和.pdf文件数据源。Excel数据必须为.xls和.xlsx格式,.csv格式的Excel数据不受支持。

    {%}

    图3-15 使用数据解释器的结果

    同时数据解释器还可重新划定表的范围,生成新的表格,如Page3 Table2 A1:D8,如果数据解释器错误地标识了表的范围,请单击该表,在下拉箭头中选择“编辑找到的表”来调整找到的表的范围,如图3-16所示。

    {%}

    图3-16 数据解释器生成新的表

    单击查看结果,可在Excel中查看数据解释器清洗的逻辑和清洗的内容。

1新自定义SQL的相关应用在下文连接到ODBC中也会提到。

3.2.2 连接服务器数据源

在新建数据源界面中,标题“到服务器”下方列出了Tableau所支持的各类服务器数据源,用户可以根据需要进行选择。Tableau支持对Web数据源及目前热门的几类云端数据库(如Amazon Aurora、Google Cloud SQL、Microsoft Azure)的连接。本节将选取Oracle、ODBC和Cloudera Hadoop为例加以说明。

  1. 连接到Oracle数据库

    选择位于“到服务器”标题下方的“Oracle”数据库,在界面右侧填写连接Oracle所需要的相关信息,完成后选择“连接”,如图3-17所示。

    图3-17 连接到Oracle

    还可以连接到Oracle Essbase,这是Oracle的多维数据库。与关系数据源不同,当连接到多维数据源时,不能使用SQL或MDX语言进行查询,而在Tableau创建实时可视化查询时会使用优化后的MDX语言进行操作。

  2. 连接到ODBC

    选择位于“到服务器”标题下方的“其他数据库(ODBC)”,如图3-18所示。

    {%}

    图3-18 连接到ODBC

    在右侧选择驱动程序,在连接方式一栏完善信息,完成后单击“连接”,弹出“ODBC数据源配置”对话框。在对话框中完善数据源配置信息,如服务器地址及端口、账号、数据库类型等,确认无误后单击“OK”,如图3-19所示。

    {%}

    图3-19 ODBC连接信息窗口

    单击“确定”后进入编辑数据源界面,输入数据库表的名称,拖入右侧窗口,选择“转到工作表”,随即进入工作区界面,完成数据连接。

    和连接Microsoft Access一样,在Tableau中也可以通过新自定义SQL来完成数据连接,如图3-20所示。

    {%}

    图3-20 通过自定义SQL查询新建数据源

  3. 连接到Cloudera Hadoop

    选择位于“到服务器”标题下方的“Cloudera Hadoop”。在右侧输入服务器密码与端口号,并且在连接方式一栏完善信息,完成后单击“确定”,如图3-21所示。

    图3-21 登录Coudera Hadoop

    需要说明的是,只要安装了相应驱动,就可以使用Hive和Impala两种连接方式(从查询效率考虑,建议读者使用Impala),如图3-22所示。

    {%}

    图3-22 选择数据源

    然后,可以选择Hadoop中的表进行实时提取数据。虽然Hadoop不是传统意义上的SQL,但是借助Impala或Hive,也可以通过新自定义SQL来完成数据连接,并且从图3-23可以发现,Tableau从Hadoop中获得的数据和其他关系型数据源没有任何区别。

    {%}

    图3-23 连接Hadoop数据示例

3.2.3 连接云数据源

本节将以Google Analytics为例介绍Tableau连接云数据服务器的设置方法。

Google Analytics是Google的一款免费网站分析服务,可以对目标网站进行访问数据统计和分析,并提供多种参数供网站拥有者使用,只要在网站的页面上加入一段代码,就可以获取人们如何找到和浏览网站的数据和相应的图文报告,以提高网站投资回报率,增加转换,获取更多收益。Tableau可以直接连接其获取的数据,并进行更详尽的分析。

在“连接”下选择“Google Analytics”,使用电子邮件地址和密码登录GA,登录后选择“允许”,以便Tableau Desktop能够访问你的GA数据,如图3-24所示。

{%}

图3-24 授予Tableau Desktop权限

在数据源页面上,按照数据源页面顶部的步骤进行操作以完成连接,如图3-25所示。

{%}

图3-25 数据源页面

步骤1:使用下拉菜单选择“账户”“媒体资源”(即所监控的网站)和“数据视图”。

步骤2:为日期范围和“细分”选择筛选器。

  • 对于“日期范围”,可以选择其中一个预定义的日期范围或者选择特定日期。选择日期范围时,GA只能提供直至上一个整天的完整数据。例如,如果选择“前30天”,则将检索到截至昨天的过去30天的数据。
  • 对于“细分”,选择要筛选数据的细分内容。细分维度默认由Google定义,用户可在网站上进行自定义。通过细分,可获取特定平台(例如平板电脑)或特定搜索引擎(例如Google)的结果。

步骤3:使用“添加维度”和“添加度量”下拉菜单添加维度和度量,或者从“选择度量组”下拉菜单中选择预定义的一组度量。有些维度和度量不能一起使用。详细信息请参见Google开发人员网站上的维度和度量参考指南。

选择工作表标签以开始分析。选择工作表标签后,Tableau将通过创建数据提取来导入数据。请注意,Tableau Desktop只支持Google Analytics的数据提取,可通过刷新数据提取来更新数据。

3.2.4 复制粘贴输入数据

创建数据源的另外一种方式是将数据复制粘贴到Tableau中,Tableau会根据复制数据自动创建数据源。用户可以直接复制的数据包括Microsoft Excel和Word在内的Office应用程序数据、网页中HTML格式的表格、用逗号或制表符分隔的文本文件数据。

下面我们以本地某个Excel文件为例来进行说明。

(1) 打开本地“公司年龄信息表”Excel文件,并复制所有数据,如图3-26所示。

{%}

图3-26 复制数据

(2) 打开Tableau Desktop进入工作区界面,使用快捷方式Ctrl+V,或在初始页面右键选择“数据”“粘贴”进行操作,如图3-27所示。

{%}

图3-27 粘贴数据

(3) 从主页面可以看到,通过复制粘贴操作连接到了名称以“Clipboard”开头的新数据源。但通常情况下,对粘贴的数据字段属性无法准确识别,如图3-28所示,Tableau将各列命名为F1、F2、F3等,若需进行分析,还需对该字段重新命名。因此,对需后续分析或经常使用的大数据,不建议采取此种方式。

{%}

图3-28 以剪贴板复制方式连接数据

3.2.5 筛选数据

直接使用数据源的全量数据,在视图设计时可能会导致工作表响应迟缓。如果仅希望对部分数据进行分析,可以使用数据源筛选器。Tableau可以在新建数据源时选择筛选器,也可以在完成数据连接后,对数据源添加筛选器。

  1. 在数据连接时应用筛选器

    在新建数据源的界面中,选择“筛选器”下方的“添加”,如图3-29所示。

    {%}

    图3-29 选择“添加筛选器”

    在“编辑数据源筛选器”对话框中选择“添加”,随即进入“添加筛选器”对话框。例如,选择“职级”作为筛选字段,如图3-30所示。

    图3-30 添加“职级”为筛选器

    如果只需要分析职级为中级的员工,则需要在“筛选器[职级]”对话框中将“中级”选中,如图3-31所示。

    图3-31 添加职级数据源筛选器

    如果只想分析年龄大于30岁且小于50岁的员工的情况,则在回到“编辑数据源筛选器”对话框后再选择“年龄”,在“筛选器[年龄]”对话框中选择值范围为30~50岁,如图3-32所示。

    图3-32 添加职级数据源筛选器

    完成上述操作后,回到“编辑数据源筛选器”对话框,可以看到数据源的筛选字段和筛选内容,如图3-33所示。

    图3-33 完成数据源筛选器

    单击“确定”,回到“编辑数据源”界面,可以预览筛选后的数据,如图3-34所示。

    {%}

    图3-34 筛选后的数据

  2. 针对数据源应用筛选器

    在完成数据连接后,可以选择“数据”➤“<数据源名称>”➤“编辑数据源筛选器”,后续步骤与在数据连接时应用筛选器的步骤基本一致,这里不再赘述。

3.3 数据整合

上一节的示例主要说明了数据来自同一张数据表的情况,在实际分析过程中,数据可能来自多张数据表,也可能来自不同的文件或者服务器。Tableau的数据整合功能可实现同一数据源的多表联接(列合并)、多表合并(行合并)、多个数据源的数据融合(值合并),以及针对源数据的行列转换。

3.3.1 创建多表并集

在3.2.1节的例子中,已经添加了“公司年龄明细表”数据源中男职工的年龄数据,但是要开展进一步数据分析,还需要加入女员工的数据,Tableau可以将两个或多个表的数据合并为一张表,但表必须来自同一连接。

如同一个数据源中有多张表,在连接到数据之后,在数据源页面的左侧窗格中将显示“新建并集”的选项,如图3-35所示。

图3-35 新建并集

单击“新建并集”,从左侧窗格中将“年龄明细表-男”拖到“并集”对话框中,然后将“年龄明细表-女”拖到其正下方,若要同时向并集中添加多个表,请按Shift或Ctrl(在Mac上按Shift或 Command),在左侧窗格中选择想要合并的表,然后将其拖到第一个表的正下方,单击“应用”或“确定”进行合并,如图3-36所示。

{%}

图3-36 新建并集-特定(手动)

合并后的结果如图3-37所示,生成了一张名为“并集”(双击可进行重命名)的数据源,包含了来自两张表的数据,并标注了数据来源的工作簿(Table name)名称和工作表(Sheet)名称。注意,使用并集合并的表必须具有相同的结构,即每个表必须具有相同的字段数,并且相关字段必须具有匹配的字段名称和数据类型。

{%}

图3-37 并集结果

同时还可以使用搜索通配符的方式来新建并集,如图3-38所示,可以自动搜索左侧已连接的数据中包含或不包含某关键词的工作表或工作簿。

图3-38 新建并集-通配符(手动)

处理Excel、文本文件数据、JSON文件、.pdf文件数据时,也可以使用此方法来合并文件夹中的文件以及工作簿中的工作表。搜索范围限定于所选的连接。连接和连接中可用的表显示在“数据源”页面的左侧窗格上。如果想要合并位于当前文件夹(适用于Excel、文本、JSON、.pdf文件)之外或其他工作簿(适用于Excel工作表)中的更多表,请选中“并集”对话框中的“将搜索扩展到子文件夹”或“将搜索扩展到父文件夹”来扩展搜索范围。

3.3.2 创建多表联接

上一节实现了行的增加,但在数据分析中,通常需要增加新的字段,即增加列信息,例如需要在上述“并集”数据中新增职级信息。

使用鼠标将“职级”拖放到中心区域,Tableau会自动将“并集”与“职级”相联接,如 图3-39所示。

{%}

图3-39 添加联接关系

当两表之间无法自动生成表联接时,则显示告警信息,如图3-40所示。

图3-40 无法生成联接示例

如果不希望按照Tableau默认的方式进行表间数据联接,可以选择指定表联接方式,操作步骤如下。

单击“联接”图标,可以看到有4种联接类型,默认是“内部联接”,其他选项还包括左侧、右侧、完全外部联接等,如图3-41所示。

图3-41 指定联接方式

Tableau会自动从多张表中选择同名的字段作为关联字段,如果系统无法自动识别相关对应的字段,也可以手动选择进行关联字段,如图3-42所示。

图3-42 指定关联字段

完成表联接后,选择“转到工作表”,可以在工作区数据窗口中看到“并集”“职级”两张数据表的信息,如图3-43所示。

图3-43 转到工作区界面

联接类型分为内部、左侧、右侧、完全外部4种,下面以表3-1中不同地市的两项指标完成情况为例,介绍各种联接方式的差异。

表3-1 不同地市的两项指标完成情况

省市

地市

A指标

省市

地市

B指标

河南

安阳

1

河南

新乡

1.2

河南

郑州

2

河北

秦皇岛

2.2

河南

新乡

3

河北

唐山

3.3

河北

秦皇岛

4

山东

济南

4.2

河北

唐山

5

辽宁

大连

5.2

山东

济南

6

辽宁

沈阳

6.2

“内部”只列出与联接条件匹配的数据行,如果主键选择缺失,Tableau会自动选择右表第一“行”匹配数据,如图3-44所示。

{%}

图3-44 内部联接

“左侧”表示不仅包含查询结果集合中符合联接条件的行,而且还包括左表的所有数据行,对未匹配的字段以null值显示,如图3-45所示。

图3-45 左侧联接

“右侧”表示不仅包含查询结果集合中的符合联接条件的行,而且还包括右表的所有数据行;“完全外部”表示包含查询结果集合中的包含左、右表的所有数据行内部联接方式。

3.3.3 创建数据融合

如果要合并的数据存储在不同数据库中,并且两个数据源中的数据粒度不同,此时多表联接已无法满足数据合并的需求,就需要使用数据融合。下面我们以表3-2中不同省市的A指标和C指标的完成情况为例,介绍如何使用数据融合。

表3-2 省市指标完成情况

省市

地市

A指标

 

省市

C指标

河南

安阳

1

 

河南

3.5

河南

郑州

2

 

河北

4.7

河南

新乡

3

 

山东

6.3

河北

秦皇岛

4

 

江西

5.2

河北

唐山

5

 

 

 

山东

济南

6

 

 

 

首先连接到A指标数据源,单击“新建数据源”,接入C指标数据源。两个数据源接入后,单击工作表标签,开始构建视图。以C指标为主数据源(即在视图中首先使用的数据源)构建表格,数据源上的标记变为蓝色,表示是主数据源,如图3-46所示。

图3-46 以C指标为主数据源构建视图

在数据窗格中,选择A指标数据源,并将A指标拖到视图的标签中,如图3-47所示,A指标按照省市的维度进行聚合,并进行匹配,同时A指标数据源标记为橙色,表示辅助数据源,在联接字段旁边显示联接图标。联接字段有“激活”和“未激活”两种状态,已激活的联接字段用橙色图标{%}来指示,未激活的联接字段用灰色图标{%}来指示。处于未激活状态时,主、从数据源不使用该联接字段进行联接,单击图标可以进行状态切换。

图3-47 构建数据融合

说明 多维数据源(多维数据集)不能用作从数据源,只能用作主数据源。

可以选择“数据”➤“编辑关系”来创建或修改当前数据源关联关系,如图3-48所示。

{%}

图3-48 编辑关系

在弹出的“关系”窗口中,我们可以通过“主数据源”下拉菜单选择主数据源,并可单击左侧窗格中的数据源,选择辅助数据源。Tableau会自动识别出可关联的字段,或选择自定义关联字段,如图3-49所示。

{%}

图3-49 “关系”对话框

选择“自定义”,单击“添加”选项来创建新的自定义关系,如图3-50所示。

{%}

图3-50 创建自定义关系

简单地说,数据融合是将“聚合”后的字段值进行关联,一般数据融合应选择维度值较少的维度为关联字段,减少聚合的计算量,提高性能,如需要关联的字段为ID等主键时,建议采取数据联接模式。以A指标为主数据源,B指标为辅数据源,当关联字段为省市时,可以看出,B指标按照省市进行了聚合,并在表中重复出现;当关联字段为省市+地市时,数据内容与3.3.2节中左联接一致,如图3-51所示。

图3-51 不同关联字段下数据融合差异

3.3.4 行列转换

在使用Tableau进行数据分析时,有时我们需要将源数据中的不同列整合至同一列,Tableau 9.0及以上版本支持对源数据的行列转换。

在数据源窗口,按住Shift或Ctrl,同时选中需要进行转换的列,单击已选择的任一列右侧的{%}按钮,在弹出对话框中选择“数据透视表”,如图3-52所示。

{%}

图3-52 执行“行列转换”操作

执行完此操作后可发现,Tableau自动产生新列“数据透视表字段名称”,原列名称转换为该列的不同字段值,同时自动产生新列“数据透视表字段值”,原列的字段值转换至该列,用户可根据实际业务含义对列名进行修改,如图3-53所示。

{%}

图3-53 “行列转换”操作完成界面

3.4 数据加载

Tableau加载数据有两种基本方式:一种是实时连接,即Tableau从数据源获取查询结果,本身不存储源数据;另一种是数据提取,将数据提取到Tableau的数据引擎中,由Tableau进行管理。本节重点介绍数据提取。

在下列情况下,建议使用数据提取的方式。

  • 源数据库的性能不佳:源数据库的性能跟不上分析速度的需要,则可以由Tableau的数据引擎来提供快速交互式分析。
  • 需要脱机访问数据:如果需要在差旅途中脱机访问数据,则可以将相关数据提取到本地。
  • 减轻源系统的压力:如果源系统是重要的业务系统,那么建议将数据访问转移到本地,以减轻对源系统的压力。

而在下列情况下,则不建议选择数据提取方式。

  • 源数据库性能优越:IT基础设施支持快速数据分析。
  • 数据的实时性要求高:需要使用实时更新的数据进行分析。
  • 数据的保密要求高:出于信息安全考虑,不希望将数据保存在本地。

3.4.1 创建数据提取

Tableau有两种方式创建数据提取:一种是在完成数据连接之后,针对数据源进行提取数据操作;另一种是在新建数据源时选择“提取”方式。

  1. 对数据源进行“提取数据”操作

    在主界面选择“数据”➤“<数据源名称>”➤“提取数据”,进入提取数据对话框;也可以选择“数据”➤“<数据源名称>”➤“编辑数据源”➤“提取”➤“编辑”,如图3-54所示。

    {%}

    图3-54 进行提取数据操作

    在打开的提取数据对话框中可以看到筛选器、聚合、行数这3种提取选项,如图3-55所示。

    {%}

    图3-55 提取数据对话框

    选择“添加”,弹出添加筛选器对话框,选择用于筛选器的字段,如图3-56所示。

    图3-56 选择用作筛选器的字段

    可以选择“职级”和“年龄”作为此数据源的数据提取字段,如图3-57所示。

    图3-57 选择添加筛选器

    在此界面可以指定是否聚合可视维度,也可以选择从数据源提取前若干行。

    说明 在采用筛选器提取数据时,数据窗口中的所有隐藏字段将会自动从数据提取中排除。单击“隐藏所有未使用的字段”按钮可快速地将这些字段从数据提取中删除。

  2. 首次新建数据源时选择“提取”方式

    参考3.2.1节,在新建数据源的过程中,将连接方式从“实时”模式更改为“数据提取”模式。选择“转到工作表”后,将数据以.tde格式保存,即完成了数据提取的创建,如图3-58所示。

    {%}

    图3-58 选择提取数据

    创建数据提取后,当前工作簿开始使用该数据提取中的数据,而不是原始数据源。用户也可以在使用数据提取和使用整个数据源之间进行切换,方法是选择“数据”➤“<数据源名称>”➤“使用数据提取”进行切换。

    使用数据提取的好处是通过创建一个包含样本数据的数据提取,减少数据量,避免在进行视图设计时长时间等待查询响应,而在视图设计结束后,可以切回到整个数据源。

    需要移除数据提取时,可以选择“数据”➤“<数据源名称>”➤“数据提取”➤“移除”。当删除数据提取时,可以选择仅从工作簿删除数据提取,或者删除数据提取文件。后一种情况将会删除在硬盘中的数据提取文件,如图3-59所示。

    图3-59 移除数据提取

3.4.2 刷新数据提取

当源数据发生改变时,通过刷新数据提取可以保持数据更新,方法是“数据”➤“<数据源名称>”➤“刷新”,如图3-60所示。

{%}

图3-60 刷新数据提取

如在数据提取时设置了增量刷新方式,即在提取数据对话框中,选择“所有行”和“增量刷新”(只有在选择提取数据库中的所有行后,才能定义增量刷新),然后在数据库中指定将用于标识新行的字段,如图3-61所示。

图3-61 选择“增量刷新”

此时,数据提取的刷新包含两种方式,一种是完全数据提取,即将所有数据替换为基础数据源中的数据;另一种是增量数据提取,仅添加自上次刷新后新增的行,如图3-62所示。

图3-62 两种方式刷新数据提取

  • 完全数据提取:在默认情况下,将对数据提取进行完全刷新。这意味着在每次刷新数据提取时,所有行都会替换为基础数据源中的数据。这种刷新可确保数据提取是数据源的精确副本,但执行这种刷新有时需要大量耗费数据库性能。
  • 增量数据提取:可以将数据提取设置为仅添加自上次提取数据以来新增的行,而不是每次重新生成整个数据提取。

用户可以查看刷新数据提取的历史记录,方法是在“数据”菜单中选择数据源,然后选择“数据提取”➤“历史记录”。“数据提取历史记录”对话框将显示每次刷新的时间、类型和所添加的行数,如图3-63所示。

图3-63 查看数据提取历史记录

3.4.3 向数据提取添加行

Tableau可通过两种方式向数据提取文件添加新数据:从文件添加或从数据源添加。添加新数据行的前提是该文件或数据源中的列必须与数据提取中的列相匹配。

  1. 从文件添加数据

    当要添加数据的文件类型与数据提取的文件类型相同时,可以选择从文件数据源向数据提取文件添加新数据。另外一种方式是从Tableau数据提取(.tde)文件添加数据,选择“数据”➤“<数据源名称>”➤“数据提取”➤“从文件添加数据”,如图3-64所示。

    图3-64 从文件添加数据

    进入从文件添加数据对话框,选择所要添加的数据文件,单击“打开”,Tableau就会完成从文件添加数据的操作,并提示执行结果,如图3-65所示。

    图3-65 成功从文件添加数据

    要查看数据添加记录的摘要,可以选择“数据”➤“<数据源名称>”➤“数据提取”➤“历史记录”,如图3-66所示。

    图3-66 查看“添加到数据提取”历史记录

  2. 从数据源添加数据

    另一种添加行的方式是从工作簿中的其他数据源向所选数据提取文件添加新数据。方法是选择“数据”➤“<数据源名称>”➤“数据提取”➤“从数据源添加数据”。

    打开“从数据源追加数据”对话框,选择与目标数据提取文件兼容的数据源,Tableau就会完成从数据源追加数据的操作,并提示执行结果。

3.4.4 优化数据提取

如果要提高数据提取的性能,可以对数据提取进行优化,提高数据提取的查询响应速度。具体操作方法是选择“数据”➤“<数据源名称>”➤“数据提取”➤“优化”(如图3-67所示),采用以下方式进行优化。

{%}

图3-67 优化数据提取

  1. 计算字段的预处理

    进行数据提取优化后,Tableau提前完成计算字段的预处理,并存储在数据提取文件中。在视图中进行查询时,Tableau可以直接使用计算结果,不必再次计算。

    如果改变了计算字段的公式或者删除了计算字段,Tableau将相应地从数据提取中删除计算字段。当再次进行数据提取优化时,Tableau将重新进行计算字段的预处理。

    说明 部分函数无法实现预处理,如外部函数(如RAWSQL和R)、表计算函数以及无法提前处理的函数(例如NOW()TODAY())。

  2. 加速视图

    如果在工作簿内设置了筛选器操作,那么Tableau必须基于源工作表的筛选器,以此计算目标视图的筛选器取值范围。进行数据提取优化后,Tableau将创建一个视图以计算可能的筛选值并缓存这些值,从而提高查询速度。

3.5 数据维护

新建数据源是用户进行数据准备的第一步,在后续工作中,用户需要通过直接查看数据,验证数据连接是否成功;通过添加数据源筛选器,限定分析的数据范围;通过刷新数据源操作,保持分析的数据更新。

3.5.1 查看数据

查看数据源数据是用户最常见的需求,具体操作方法为选择“数据”➤“<数据源名称>”➤“查看数据”,如图3-68所示。

{%}

图3-68 查看数据

在查看数据界面,用户可以选择将数据复制到粘贴板,或全部导出,如图3-69所示。

图3-69 查看数据界面

3.5.2 刷新数据

当数据源中的数据发生变化后(包括添加新字段或行、更改数据值或字段名称、删除数据或字段),需要重新执行新建数据源操作,才能反映这些修改;另外,也可以执行刷新操作,在不断开连接的情况下即时更新数据,如图3-70所示。

{%}

图3-70 刷新数据源

说明 如果工作簿中视图所使用的数据源字段被移除,那么完成刷新数据操作后,将显示一条警告消息,说明该字段将从视图中移除。由于缺少该字段,工作表中使用该字段的视图将无法正确显示。

3.5.3 替换数据

如果希望使用新的数据源替换已有的数据,而不希望新建工作簿,那么可以进行替换数据源操作。具体方式是选择“数据”➤“替换数据源”,进入替换数据源对话框,如图3-71所示。

{%}

图3-71 替换数据源

将原有数据源替换为新数据源,单击“确定”,如图3-72所示。

图3-72 替换操作

完成数据源替换后,当前工作表的主数据源变更为新数据源,如图3-73所示。

{%}

图3-73 数据源替换完成

3.5.4 删除数据

使用了新数据源后,可以关闭原有数据源连接,具体方法是选择“数据”➤“<数据源名称>”➤“关闭”操作来直接关闭数据源,如图3-74所示。

{%}

图3-74 关闭数据源

执行关闭数据源操作后,被关闭数据源将从数据源窗口中移除,所有使用了被删除数据源的工作表也将被一同删除。

目录