跳转至

Vertica 集成 Tableau 完整指南

本文整合了 Vertica 官方 KB 的四篇 Tableau 集成文章:连接指南、技巧与最佳实践、以及两个 QuickStart 示例,合并为一篇结构化的完整参考。

关于 Vertica 连接指南

Vertica 连接指南提供将第三方合作伙伴产品连接到 Vertica 的基本说明,基于 Vertica 与合作伙伴产品的实际测试。

最新测试版本

组件 版本
Tableau Desktop 2023.1.4(Windows)
Tableau Server 2023.1.5(Windows / Linux)
Tableau Cloud 2023.3.0(SaaS)
Tableau Bridge Client 2023.2.1(Windows 64-bit)
Vertica 客户端 ODBC Driver 23.3.0
Vertica 服务器 Vertica Analytic Database 23.3.0-1

兼容性说明:Vertica ODBC 驱动向前兼容,较新版本的客户端可连接较旧版本的服务器,反之亦可(需确认具体版本)。详情见 Client Driver and Server Version Compatibility


1. Tableau 产品体系与 Vertica 连接架构

1.1 Tableau 产品线

Tableau 提供完整的多层 BI 产品栈:

产品 部署模式 适用场景
Tableau Desktop Windows / MacOS 桌面 分析师创建可视化和交互式仪表板
Tableau Server 本地或云端自部署 多用户协作、共享、权限管控
Tableau Cloud(原 Tableau Online) SaaS 云端托管 免运维的 Server 替代方案
Tableau Public 免费云端 公开数据可视化(无安全/隐私保障)
Tableau Mobile 移动端 移动端访问仪表板
Tableau Reader 桌面(免费) 离线查看打包的 workbook(不连接数据库)

1.2 连接架构总览

所有到 Vertica 的连接均通过 ODBC 协议实现:

Tableau Desktop  ──ODBC──►  Vertica 集群
Tableau Server   ──ODBC──►  Vertica 集群
Tableau Cloud    ──► Tableau Bridge ──ODBC──►  Vertica 集群
Tableau Mobile   ──► Tableau Server  ──ODBC──►  Vertica 集群
Tableau Reader   (离线快照,不连数据库)

关键要点:

  • Tableau Desktop / Server 直接通过 ODBC 连接 Vertica,不需要预先创建 DSN
  • Tableau Cloud 不能直接访问本地 Vertica,必须通过 Tableau Bridge 客户端作为桥接层
  • Tableau Bridge 运行在可访问 Vertica 的机器上,该机器必须安装 Vertica ODBC 驱动
  • Tableau Reader 仅打开已经打包数据的 .twbx 文件,不涉及数据库连接

2. 环境准备 — ODBC 驱动安装

无论使用哪种 Tableau 产品,连接 Vertica 前必须在对应的机器上安装 Vertica ODBC 驱动。

2.1 Windows / MacOS

  1. 访问 Vertica Client Drivers 页面
  2. 下载与 Vertica 服务器版本兼容的 ODBC 客户端包
  3. 双击安装程序,选择仅安装 ODBC 驱动即可(客户端包中其他组件如 ADO.NET 等非必需)

从 Tableau 连接到 Vertica 不需要创建 DSN。

2.2 Linux(Tableau Server)

  1. 下载 ODBC 驱动:
  2. CentOS / RHEL:下载 RPM 包
  3. Ubuntu:下载 TAR 文件
  4. 安装:
    # CentOS / RHEL
    sudo rpm --nodeps -ivh <driver_name>.rpm --force
    
    # Ubuntu
    sudo tar -C / -xzvf <driver_name>.tar.gz
    
  5. /etc/odbcinst.ini 中追加驱动定义:
    [Vertica]
    Driver=/opt/vertica/lib64/libverticaodbc.so
    
  6. 重启 Tableau Server

Linux 环境同样不需要 odbc.inivertica.ini,只需 odbcinst.ini 中正确定义驱动路径。


3. 连接配置

3.1 Tableau Desktop → Vertica

  1. 打开 Tableau Desktop,在 Connect 页面中 To a ServerMore...Vertica
  2. 输入连接信息:
  3. Server:Vertica 节点 IP 或主机名
  4. Port:默认 5433
  5. Database:目标数据库名
  6. Authentication:认证方式(默认用户名/密码)
  7. Username / Password
  8. 点击 Sign in 连接
  9. 从 Schema 下拉列表选择要使用的 schema
  10. 推荐操作:将表拖拽到 Drag tables here 区域来定义数据源(而非写 Custom SQL)——Tableau 会自动识别外键关系
  11. 选择连接类型:Live(实时连接) 为默认推荐,或 Extract(数据提取)
  12. 点击 Sheet1 开始可视化分析

3.2 Tableau Cloud → Vertica(通过 Tableau Bridge)

Tableau Cloud 不能直接连接本地数据库,需通过 Tableau Bridge 桥接。

前置条件: - 在可访问 Vertica 的机器上安装并激活 Tableau Bridge 客户端 - 该机器上安装 Vertica ODBC 驱动

发布工作簿到 Tableau Cloud:

  1. 确保 Tableau Bridge 处于活动状态
  2. 在 Tableau Desktop 中创建/打开工作簿
  3. Server → Publish Workbook → 登录 Tableau Cloud
  4. 在发布对话框中,Data Sources 部分点击 Edit
  5. Publish Type 选择 Publish Separately(默认 "Embedded in workbook" 会转为 Extract,不支持 Live)
  6. 选择 Maintain connection to a live data source
  7. 勾选 Show sheets as tabs,点击 Publish
  8. 切换到 Tableau Cloud,查看 Data Sources 选项卡确认实时连接已建立

发布独立数据源到 Tableau Cloud:

  1. 确保 Tableau Bridge 活跃
  2. Tableau Desktop 中:Server → Publish Data Source → 选择要发布的数据源
  3. 登录 Tableau Cloud
  4. 勾选 Maintain connection to a live data source
  5. 点击 Publish
  6. 此后可在 Tableau Cloud 中使用该数据源创建工作簿,查询实时在 Vertica 中运行

4. 性能优化

这是全文最重要的章节。以下优化策略按影响面从大到小排列。

4.1 连接池与并行查询

工作原理

Tableau 为每个具有唯一连接字符串的数据源创建独立的连接池,默认池内最大连接数为 16。Tableau 自动将独立查询分配到不同连接并行执行,依赖前序结果的查询则串行发送。

多个数据源共享同一连接池的前提:连接字符串(服务器、数据库、用户名/密码)完全相同。若用户名不同,则各使用独立连接池。

按数据源控制连接数:connection-configs.xml

在 Tableau Server 或 Desktop 上创建配置文件,精细控制每个 Vertica 实例的连接上限:

  • Tableau Server:放置在 config\vizqlserver 目录(集群所有节点的该目录均需复制)
  • Tableau Desktop:放置在 Tableau 安装目录
<?xml version='1.0' encoding='utf-8' ?>
<connection-list>
   <connection class='vertica' server='15.126.227.222' dbname='verticanow'>
      <limit max='4'></limit>
   </connection>
   <connection class='vertica' server='172.16.116.45'>
      <limit max='10'></limit>
   </connection>
   <!-- 兜底规则:所有其他 Vertica 连接 -->
   <connection class='vertica'>
      <limit max='12'></limit>
   </connection>
</connection-list>

匹配优先级:server + dbname 精确匹配 > server 匹配 > 类级别兜底。

全局控制连接数

# Tableau Desktop:启动时限制所有连接为 2
"C:\Program Files\Tableau\Tableau <version>\bin\tableau.exe" -DConnectionLimit=2

# Tableau Server:全局禁用并行查询(全部串行)
tabadmin set native_api.connection.limit.globallimit 1

Vertica 侧:MaxClientSessions

Vertica 每个节点的默认最大并发连接数为 50(受物理 RAM 限制)。如果 Tableau 的并发连接数 + 其他客户端连接数接近此值,会出现连接拒绝。用 MaxClientSessions 参数调整。

实践建议:估算 Tableau并发用户数 × 单用户并发连接数 + 其他应用连接,确保不超 MaxClientSessions × 节点数

4.2 实时连接 vs 数据提取

核心原则:优先使用实时连接(Live),仅在特定场景使用数据提取(Extract)。

场景 推荐方式 原因
利用 Vertica 分析能力 Live Extract 绕过 MPP 计算引擎
大数据量(TB 级) Live 提取不现实
使用 RAWSQL 透传函数 Live Extract 无法执行数据库函数
近实时分析需求 Live Extract 有延迟
需要行级安全控制 Live Extract 丢失权限模型
离线访问(无网络) Extract Live 不可行
大量用户访问静态数据 Extract 避免重复查询

4.3 Join Culling(连接裁剪)

这是最容易被忽视但收益极高的优化机制。

Tableau 不会在所有查询中执行数据源定义的全部 JOIN。如果某个 JOIN 不影响当前可视化结果(连接的表未被使用),Tableau 会自动丢弃该 JOIN——这就是 Join Culling。

启用前提: - 数据库中定义了外键关系(推荐方式) - 或 Tableau 中勾选 Data → Assume Referential Integrity

实现方式:

  • ✅ 拖拽表构建数据源:Tableau 自动启用 Join Culling
  • ❌ 自定义 SQL(Custom SQL)无法使用 Join Culling(因为 Tableau 将整个 Custom SQL 视为子查询)

折中方案:如果确实需要复杂的 SQL,在 Vertica 中创建 VIEW,然后从 Tableau 连接该 VIEW 并拖拽其他表。

4.4 筛选器策略

不同类型的筛选器对数据库的查询次数差异巨大,选择不当会严重影响性能。

筛选器卡片(Quick Filter)类型对比

筛选器类型 触发额外查询? 建议
通配符匹配(Wildcard) 首选
自定义值列表(Custom Value List) 推荐
相对日期筛选器 推荐
浏览期间日期筛选器 推荐
多值列表 / 单值列表 / 紧凑列表 大量值时加 Apply 按钮
滑块 / 度量筛选器 同上
范围日期筛选器 优于离散日期

上下文筛选器

Tableau 将上下文筛选器的结果写入临时表,后续筛选器仅处理该临时表。使用条件:

  1. 必须显著减小数据集(通常应筛选掉 85% 以上数据)
  2. 应作用于变化缓慢的维度(频繁变化会导致临时表反复重建)

优先使用 TDC 配置 CAP_QUERY_SUBQUERY_QUERY_CONTEXT=yes 将上下文筛选器实现为子查询而非临时表。

操作筛选器(Action Filter)

相比筛选器卡片,操作筛选器更加高效:使用可视化元素(如点击柱状图)来筛选其他可视化,Tableau 向 Vertica 发送的查询更少。勾选 "Exclude all values" 可进一步减少查询数量。

筛选器最佳实践总结

  • 筛选维度:通配符筛选器 > 含 Apply 按钮的列表筛选器;范围值 > 离散值列表;避免 "仅保留" 和 "排除"
  • 筛选度量:范围值 > 离散值;大数据源先建 Set 再筛选
  • 筛选日期:相对日期 / 范围日期 > 离散日期(离散日期生成大量 OR 条件)
  • 跨数据源筛选器:Tableau 向每个数据源分别发送查询,尽量减少使用

4.5 计算下推策略

这是性能优化的核心原则:让计算在 Vertica 中执行,而不是在 Tableau 本地执行。

计算执行位置对照

在 Vertica 中执行(快)                    在 Tableau 本地执行(慢)
─────────────────────────                ────────────────────────
非粗体内置函数(ABS, DATE, CONTAINS...)    粗体内置函数(ASCII, CHAR, FIRST, INDEX, ISDATE)
LOD 表达式                                表计算(RUNNING_SUM, WINDOW_SUM, MOVING_AVG)
透传函数(RAWSQL_*)                       Set(集)相关计算
数据源筛选器                               上下文筛选器(临时表模式)

LOD 表达式 vs 表计算

表计算(Table Calculation)完全在 Tableau 本地执行,大数据集会被整体拉出 Vertica。处理大数据时优先使用 LOD(Level-of-Detail)表达式,LOD 表达式生成的 SQL(包含子查询 + 内连接/交叉连接)在 Vertica 中执行。

透传函数(RAWSQL)

当 Tableau 内置函数无法满足需求时,使用透传函数直接向 Vertica 发送 SQL:

-- 例如:计算中位数(Tableau 无内置 MEDIAN)
RAWSQLAGG_REAL("MEDIAN(%1)", [Sales])

-- 取模运算(Tableau 无内置 MOD)
RAWSQL_INT("MOD(%1, %2)", [Value], [Divisor])

为非 DBADMIN 用户启用透传函数:

ALTER USER tableau_user SEARCH_PATH public, tableau_user_s;

正则表达式映射

Tableau 的正则表达式内置函数会转换为 Vertica 对应函数:

Tableau 函数 Vertica 实际执行 差异
REGEXP_MATCH(str, pattern) REGEXP_LIKE(str, pattern) 行为相同
REGEXP_REPLACE(str, pattern, rep) REGEXP_REPLACE(str, pattern, rep) 行为相同
REGEXP_EXTRACT(str, pattern) REGEXP_SUBSTR(str, pattern, 1, 1, '', 1) 返回第一个捕获组
REGEXP_EXTRACT_NTH(str, pattern, n) REGEXP_SUBSTR(str, pattern, 1, 1, '', n) 可指定捕获组索引

4.6 仪表板设计技巧

  • 结合使用操作筛选器 + 数据源筛选器 + 参数,减少筛选器卡片数量
  • 避免过多文本表(交叉表),如必须使用则保持小尺寸
  • 复杂计算在 Vertica 中做聚合(如 Live Aggregate Projections),Tableau 只负责可视化
  • 仪表板设计完成后,隐藏数据源中所有未使用的列——这会显著加快加载速度
  • 使用通配符文本框替代含长值列表的下拉框

4.7 Vertica 侧调优

Database Designer

将 Tableau 生成的查询提交给 Database Designer 以优化物理设计:

-- 找 10 条最慢的查询作为输入样本
SELECT request FROM v_monitor.query_requests
WHERE request_type = 'QUERY'
ORDER BY request_duration_ms DESC LIMIT 10;

-- 找 10 条最高频的查询
SELECT request FROM (
  SELECT request, COUNT(request) cnt
  FROM v_monitor.query_requests
  WHERE request_type = 'QUERY'
  GROUP BY request
) T ORDER BY cnt DESC LIMIT 10;

检查生成的投影是否按 WHERE 子句重要列排序,低基数列应进行编码。

Live Aggregate Projections(实时聚合投影)

对基表的聚合数据做预计算,Tableau 直接读取聚合结果而非基表原始数据:

-- 创建实时聚合投影后,需刷新数据
SELECT START_REFRESH();

-- 为 Tableau 创建访问视图
CREATE VIEW <projection_name> AS SELECT * FROM <projection_name>;

专用资源池

为 Tableau 连接创建独立的资源池,实现负载隔离:

-- 创建专用资源池
GRANT USAGE ON RESOURCE POOL tableau_pool TO tableau;
ALTER USER tableau RESOURCE POOL tableau_pool;

级联资源池(超时保护)

设置 RUNTIMECAP 超时后自动切换到辅助池继续执行:

CREATE RESOURCE POOL tableau_pool_backup RUNTIMECAP '5 minutes';
ALTER RESOURCE POOL tableau_pool CASCADE TO tableau_pool_backup;

本地连接负载均衡

将客户端连接开销分散到所有节点:

-- Vertica 服务器侧启用负载均衡(需要服务器端配置)
-- 然后在 Tableau TDC 文件中添加:
-- <customization name='odbc-connect-string-extras' value='ConnectionLoadBalance=1' />

升级 Vertica 版本

最新版 Vertica 优化了 Tableau 的元数据查询(系统表扫描),升级可获得更快的连接初始化和字段加载速度。


5. TDC 文件配置

TDC(Tableau Data source Customization)文件是精细控制 Tableau-Vertica 连接行为的核心配置。TDC 文件对所有到 Vertica 的连接全局生效,需手动维护。

5.1 创建与位置

My Tableau Repository/Datasources/ 目录下创建 .tdc 文件(Tableau Desktop),或 Tableau Server 的对应数据源配置目录。

5.2 TDC 能力(Capabilities)自定义

自定义名称 推荐值 说明
CAP_CREATE_TEMP_TABLES no 禁止 Tableau 创建临时表
CAP_SELECT_INTO no 禁止 Tableau 即时建表
CAP_QUERY_SUBQUERY_QUERY_CONTEXT yes 上下文筛选器用子查询代替临时表
CAP_ISOLATION_LEVEL_READ_COMMITTED yes 强制 Read Committed 隔离级别(仅在遇到锁问题时启用)
CAP_ODBC_EXPORT_ALLOW_CHAR_UTF8 yes 允许单字节 char 绑定 Unicode 字符串为 UTF-8
CAP_ODBC_METADATA_SUPPRESS_EXECUTED_QUERY yes 适用于 Vertica 7.1 之前版本

5.3 ODBC 连接属性(odbc-connect-string-extras

⚠️ 此自定义项区分大小写,必须全小写。

<!-- 设置会话标签(便于 Vertica 侧追踪) -->
<customization name='odbc-connect-string-extras' value='Label=tableau_session_label' />

<!-- 增大结果缓冲区(解决 "Multiple commands cannot be active" 错误;0 = 无限) -->
<customization name='odbc-connect-string-extras' value='ResultBufferSize=500000' />

<!-- 启用本地连接负载均衡 -->
<customization name='odbc-connect-string-extras' value='ConnectionLoadBalance=1' />

<!-- 指定隔离级别 -->
<customization name='odbc-connect-string-extras' value='TransactionIsolation=Read Committed' />

<!-- 启用 SSL 服务器认证 -->
<customization name='odbc-connect-string-extras' value='SSLMode=require' />

多个参数用分号连接:

<customization name='odbc-connect-string-extras'
  value='Label=tableau_session_label;ConnectionLoadBalance=1;BackupServerNode=10.0.50.153,10.0.50.151' />

5.4 完整 TDC 文件示例

<connection-customization class='vertica' enabled='true' version='any value'>
  <vendor name='vertica' />
  <driver name='vertica' />
  <customizations>
    <!-- 能力自定义 -->
    <customization name='CAP_QUERY_SUBQUERY_QUERY_CONTEXT' value='yes' />
    <customization name='CAP_CREATE_TEMP_TABLES' value='no' />
    <customization name='CAP_SELECT_INTO' value='no' />
    <customization name='CAP_ODBC_EXPORT_ALLOW_CHAR_UTF8' value='yes' />
    <!-- ODBC 连接属性 -->
    <customization name='odbc-connect-string-extras'
      value='Label=TableauLbl;ConnectionLoadBalance=1;BackupServerNode=10.0.50.153,10.0.50.151' />
  </customizations>
</connection-customization>

5.5 验证 TDC 是否生效

  1. 删除 My Tableau Repository\Logs 中的所有日志文件
  2. 打开 Tableau Desktop 并连接到 Vertica 表
  3. 关闭 Tableau
  4. 打开日志文件,搜索自定义名称确认是否被加载

6. Kerberos 单点登录(SSO)

6.1 工作原理

在 Active Directory 域环境下,Tableau 可通过 Kerberos 实现从浏览器到 Vertica 的全链路单点登录:

用户登录域 → Tableau Server (Kerberos) → Vertica (Kerberos)

6.2 Kerberos 受限制委派

Tableau Server 支持 Kerberos Constrained Delegation,使 Server 以服务账户运行的同时,可代表工作簿的查看者在 Vertica 中执行查询。域用户/查看者会显示在 Vertica 的 SESSIONS 系统表中,实现审计追踪。

6.3 配置条件

  • Vertica 和 Tableau Server 均配置为 Kerberos 认证
  • 单域环境(用户、Tableau Server、Vertica 在同一域)经测试确认可用
  • 跨域环境未经官方测试验证
  • 配置正确后,在 Tableau Desktop 中发布工作簿时可选择 Viewer Credentials 认证方式

测试基于 Windows 上的 Tableau Server(Linux 也支持,但官方未测试)。


7. 已知限制

7.1 数据类型限制

数据类型 限制 说明
LONG VARCHAR 最多 65,000 字符 超出部分截断
TIMETZ / TIMESTAMPTZ 不显示毫秒和时区值 右侧设置 Default Properties → Date Format 可调整格式
TIME / TIMETZ 格式化为 HH:mm:SS 无毫秒精度
NUMERIC 最高 15 位精度 超出精度的右侧数字被截断(非四舍五入)

7.2 跨数据库连接

Tableau 支持跨多个 Vertica 数据库 JOIN 表,但性能陷阱严重:

  • Tableau 不会将跨数据库 JOIN 推送到 Vertica
  • 对每个数据库分别查询,将所有数据传输到 Tableau Data Engine 后在本地做 JOIN 和聚合
  • 性能取决于连接的数据库数量和传输的数据量,大数据场景下几乎不可用

建议:跨数据库查询应该通过 Vertica 侧的 ETL / External Table / COPY 等方式将数据集中到单个数据库再访问。

7.3 Custom SQL 的限制

  • 无法利用 Join Culling
  • Tableau 会将 Custom SQL 包裹为子查询,外层添加 GROUP BY / ORDER BY / WHERE

建议:将复杂 SQL 创建为 Vertica VIEW,然后从 Tableau 连接到该 VIEW 并拖拽其他表。


8. 故障排查

8.1 常见问题

问题一:Multiple commands cannot be active on the same connection

现象

An error occurred during query preparation: Multiple commands cannot be active
on the same connection. Consider increasing ResultBufferSize or fetching all
results before initiating another command.

原因:Vertica 单个连接不支持同时执行多个查询。Tableau 在同一连接上并发推送查询时触发此错误。

解决:在 TDC 文件中增大 ResultBufferSize0 = 无限缓冲):

<customization name='odbc-connect-string-extras' value='ResultBufferSize=500000' />

问题二:表锁 / 事务冲突

解决:强制 Read Committed 隔离级别:

<!-- TDC 文件方式 -->
<customization name='CAP_ISOLATION_LEVEL_READ_COMMITTED' value='yes' />
<customization name='CAP_SET_ISOLATION_LEVEL_VIA_ODBC_API' value='yes' />

<!-- 或 ODBC 连接属性方式 -->
<customization name='odbc-connect-string-extras' value='TransactionIsolation=Read Committed;' />

-- vsql 会话级设置
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ COMMITTED;

8.2 性能诊断工具

Tableau Performance Recorder

录制 Tableau 生成的查询及其性能,帮助区分瓶颈在数据库查询还是可视化渲染:

  • 瓶颈在查询执行 → 遵循本文第 4 章 Vertica 侧调优策略
  • 瓶颈在可视化渲染 → 遵循本文 4.6 节仪表板设计建议

录制结果也是提交给 Vertica Database Designer 的理想查询样本来源。

识别并行查询

使用以下工具确认 Tableau 实际发送到 Vertica 的并发查询: - Tableau Performance Recorder - Vertica 系统表:QUERY_REQUESTS

会话标签

为 Tableau 连接设置标签,便于在 Vertica 日志和系统表中识别:

<customization name='odbc-connect-string-extras' value='Label=tableau_session_label' />

8.3 日志文件位置

日志 路径 / 启用方式
Vertica ODBC Driver Windows:注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\ODBC\Driver 的 LogLevel / LogPath 参数;MacOS/Linux:编辑 vertica.ini
ODBC Tracing ODBC 数据源管理器 → Tracing 选项卡 → 启用
Vertica 数据库日志 /home/dbadmin/vmart/v_vmart_node0001_catalog/vertica.log
Tableau Desktop 日志 C:\Users\<user>\Documents\My Tableau Repository\Logs\log.txt
Tableau Server 日志 C:\ProgramData\Tableau\Tableau Server\data\tabsvc\Logs\vizqlserver

8.4 仪表板缓慢的诊断流程

仪表板加载慢
  ├─ 用 Performance Recorder 录制
  │   ├─ 查询执行时间长?
  │   │   ├─ 执行计划不佳? → Database Designer 优化投影
  │   │   ├─ 资源不足? → 调整资源池 / 级联超时
  │   │   ├─ 网络延迟? → 检查 ODBC ResultBufferSize
  │   │   └─ 未用 LAP? → 创建 Live Aggregate Projection
  │   └─ 渲染时间长?
  │       ├─ 大量表计算? → 改用 LOD 表达式
  │       ├─ 使用 Set? → 改 SQL 视图
  │       ├─ 筛选器卡片过多? → 改用操作筛选器
  │       └─ 未隐藏未使用列? → 隐藏无用字段
  └─ 确定瓶颈后对症优化

9. 示例应用(QuickStarts)

Vertica 提供两个免费的 Tableau QuickStart 示例应用,用于演示和教育目的(不适合生产部署)。

9.1 Vertica QuickStart for Tableau(零售分析)

基于 VMart 示例数据库的零售分析仪表板集,包括以下仪表板:

仪表板 分析内容
Executive Dashboard 高层营收视图(2005/2006 年在线和门店销售)
Online Sales Overview 在线业务(按交易类型:购买/退货)
Store Sales Overview 实体店业务(按季度/月度)
Customer Overview 客户画像(年龄、性别等维度)
Call Center & Employee 销售/呼叫中心人员绩效
Product Overview 产品和类别的营收分布
Vendor Performance 供应商绩效(平均交货天数、订购量等)
Inventory Overview 库存分析(产品类别、仓库等维度)

前置条件:Vertica 集群 + VMart 示例数据库 + Tableau Desktop。 下载:https://www.vertica.com/quickstart/vertica-quickstart-for-tableau/

9.2 Vertica Partner QuickStart for Tableau(工单追踪)

由 Tableau 开发、Vertica 适配的工单追踪 BI 应用:

仪表板 分析内容
Ticket Overview 工单状态概览 + 月度分布(可下钻到具体月份)
Service Desk 按地理位置的工单优先级分布(颜色编码区分优先级)

前置条件:Vertica 集群 + Support Schema(SupportTicketTrackingScript.sql)+ CSV 数据导入 + Tableau Desktop。 下载:https://www.vertica.com/quickstart/vertica-partner-quickstart-tableau/


10. 交付检查清单

在实际项目中交付 Tableau 集成 Vertica 时,建议逐项确认:

连接层

  • [ ] ODBC 驱动已安装在所有需要的机器(Desktop / Server / Bridge)
  • [ ] Linux Server 的 /etc/odbcinst.ini 已配置 [Vertica] 条目
  • [ ] Tableau Cloud 场景已安装并激活 Tableau Bridge
  • [ ] 防火墙已开放 Vertica 端口(默认 5433)

性能层

  • [ ] 优先使用拖拽表创建数据源(而非 Custom SQL)
  • [ ] 数据库外键已定义(或启用 Assume Referential Integrity)
  • [ ] 默认选择 Live 连接(非必要不用 Extract)
  • [ ] 表计算已尽可能替换为 LOD 表达式
  • [ ] Tableau 专用资源池已创建
  • [ ] ConnectionLoadBalance=1 已启用
  • [ ] 仪表板设计完成后已隐藏未使用列

调优层

  • [ ] 慢查询已提交 Database Designer
  • [ ] LAP(Live Aggregate Projections)已用于高频聚合场景
  • [ ] 级联资源池已配置(RUNTIMECAP + CASCADE TO)
  • [ ] TDC 文件已创建并验证生效
  • [ ] Vertica 已升级到较新版本

安全层

  • [ ] 如需要,Kerberos SSO + 受限制委派已配置
  • [ ] SSL 加密已启用(SSLMode=require
  • [ ] 会话标签已配置(便于审计追踪)

总结

Tableau 与 Vertica 的集成通过 ODBC 实现,架构简洁但优化空间巨大。核心优化理念可以归纳为三点:

  1. 尽量让 Vertica 干活:Live 连接、LOD 表达式、RAWSQL 透传、LAP 预聚合、Database Designer 优化投影——把计算留在 MPP 引擎里
  2. 减少不必要的工作:Join Culling 免去无用的 JOIN,操作筛选器减少查询次数,Context Filter 提前过滤掉大量数据
  3. 控制并发与资源:连接池上限、专用资源池、级联超时——防止 Tableau 的并发查询拖垮 Vertica

TDC 文件是连接 Tableau 最佳实践和 Vertica 最佳实践之间的胶水层,合理配置是交付高质量 BI 方案的关键。


原文来源:https://www.vertica.com/kb/Vertica-Integration-with-Tableau-Desktop-Connection-Guide/Content/Partner/Vertica-Integration-with-Tableau-Desktop-Connection-Guide.htm