Tableau Server计划刷新失败:无效数据类型错误排查求助
Tableau Server 计划刷新失败(ODBC数据类型错误)解决方案
问题场景
- 通过市场名称做全外连接,关联MapInfo Tab格式空间文件与SQL Server自定义查询数据(空间文件提供区域信息,查询提供数值数据)
- Tableau Desktop内可正常刷新、筛选,但发布至Tableau Server后每日计划刷新失败,报错如下:
- PDS模式:未知失败(状态码=1003,
[Microsoft][ODBC Driver 17 for SQL Server]Invalid SQL data type) - 嵌入工作簿模式:无连接失败(状态码=10000,
[Microsoft][ODBC Driver 17 for SQL Server]Invalid SQL data type)
- PDS模式:未知失败(状态码=1003,
- 已排查:用户名/密码、数据类型、数据量、查询性能均无异常
针对性解决方案
1. 强制统一连接字段的数据类型
MapInfo Tab文件的「市场名称」字段可能为固定长度字符串(CHAR),而SQL Server侧为可变长度(VARCHAR/NVARCHAR),Tableau Desktop会自动兼容,但Server的ODBC驱动校验更严格:
- 在SQL查询中显式转换字段类型,匹配MapInfo侧的格式:
SELECT CAST(市场名称 AS CHAR(50)) AS 市场名称, 其他数值字段 FROM 你的数据源表 - 或在Tableau数据源中,右键MapInfo侧的「市场名称」字段→更改数据类型为字符串(String)
2. 更换ODBC驱动版本
ODBC Driver 17对跨数据源空间关联场景存在兼容性bug:
- 降级至ODBC Driver 11/13或升级至最新的ODBC Driver 18
- 确保Tableau Server所在服务器已安装对应驱动,且数据源连接配置中指定正确驱动
3. 切换为提取(Extract)模式刷新
实时跨数据源连接易触发驱动类型校验问题,改用提取模式可规避:
- 在Tableau Desktop中将数据源转为提取(顶部菜单栏→数据→提取数据)
- 发布至Server后,设置计划刷新提取文件,提取会预先处理数据类型匹配逻辑
4. 检查Tableau Server的空间数据支持
- 确认Server已安装MapInfo Tab文件的驱动组件(Desktop默认包含,Server需手动验证)
- 若MapInfo文件存放在本地路径,确保Tableau Server服务账户拥有该路径的读取权限;若为网络路径,需配置可信位置
5. 调整连接逻辑绕过全外连接限制
跨数据源全外连接易触发驱动bug,可调整实现方式:
- 在SQL侧先将数值数据处理为视图/临时表,再与MapInfo文件做左连接/内连接(根据业务需求调整)
- 改用Tableau数据融合(Data Blending):以「市场名称」为融合字段,分别连接两个数据源,替代跨数据源直接连接
6. 查看Server日志定位具体问题字段
登录Tableau Server,查看backgrounder和vizqlserver日志,定位触发类型错误的具体字段:
- Windows日志路径:
C:\ProgramData\Tableau\Tableau Server\data\tabsvc\logs\backgrounder - Linux日志路径:
/var/opt/tableau/tableau_server/data/tabsvc/logs/backgrounder
根据日志中明确的字段,针对性调整类型转换逻辑
内容的提问来源于stack exchange,提问作者Marcus
相关产品推荐
相关产品推荐

