---
schema_version: "1"
id: b273b531e3ff08fef8334c852c98603d03501a669c2f8da2c07d88b2ca4c3639
title: Tableau Prep Builder 疑难解答
collection: tableau
version: next
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/next/zh-cn/prep/prep_troubleshoot.md
canonical_url: https://help.tableau.com/v0.0/prep/zh-cn/prep_troubleshoot.htm
source_site: help.tableau.com
content_type: documentation
content_hash: b00931fb1436235e9d3ac9f164a24e6b1feb5dc71cf2028b7702cc04f1bd961e
description: Troubleshoot Tableau Prep Builder issues and collect logs and crash dumps.
---
[跳转到主要内容](#main-content)

# Tableau Prep Builder 疑难解答

本文列出了您在使用 Tableau Prep Builder 时可能遇到的问题以及有关如何解决这些问题的建议。

在对流程问题进行故障排除时，无论是自己调试还是联系支持人员，您通常都需要收集日志文件和崩溃转储文件进行分析，并记录重现错误所需的步骤。提供在错误发生之前采取的确切步骤以及提供流程文件是帮助开发人员或支持团队诊断问题的最佳方式。

## 收集日志和崩溃转储文件

Tableau Prep 日志文件存储在“我的 Tableau Prep 存储库”文件夹中。默认情况下，该位置为：

**Windows**： `C:\Users\<username>\Documents\My Tableau Prep Repository\Logs`。

**MacOS**： `/users/<username>/Documents/My Tableau Prep Repository/Logs`

为了正确诊断问题，您需要收集所有日志文件。如果运行的是 Tableau Prep Builder，则这是“我的 Tableau Prep 存储库/Logs”文件夹中的所有内容。如果通过命令行运行 Tableau Prep，则包括“我的 Tableau Prep 存储库/Command Line Repository/Logs”中的日志文件。

下表描述了生成的不同日志文件。

<table style="width: 100%;" class="simple-table"><colgroup><col><col><col></colgroup><tbody><tr><th>日志文件名</th><th>生成日志文件的进程</th><th>描述</th></tr><tr><td>app.log</td><td>Tableau Prep.exe</td><td>用户界面日志文件。这是由 Electron 进程中运行的 JavaScript 代码生成的。</td></tr><tr><td>backendProcessManager.log</td><td>Tableau Prep.exe</td><td>这是由启动和监视 Java 进程的 JavaScript 代码生成的。</td></tr><tr><td><p>preprestapi.log</p></td><td><p>Java.exe</p></td><td><p>这是 Java 代码生成的日志文件。有关 rest api 使用、编译、缓存管理以及 tabminerva（以前称为 prepservice）进程的启动和关闭的日志条目应在此处。</p></td></tr><tr><td>log.txt</td><td><p>prepservice.exe</p><p>tabminerva.exe</p></td><td><p>此日志由 C++ 代码生成。</p><p>此日志包括与 Tableau 共享技术堆栈的所有交互，包括与数据库的连接、查询、执行、外部缓存、查询管道、协议等。</p></td></tr><tr><td>tdeserver.txt</td><td>tdeserver64.exe</td><td><p>这是旧 Tableau 数据引擎创建的日志文件。Tableau Prep 仍然使用 Tableau 数据引擎。</p></td></tr><tr><td>tabprotosrv.txt</td><td>tabprotosrv.exe</td><td><p>协议服务器日志。使用托管数据库驱动程序的任何内容都将在此文件中生成日志行。</p></td></tr><tr><td>hyperd.log</td><td>hyperd.exe</td><td><p>hyper 日志。此处显示了查询以及与查询相关的错误。</p></td></tr></tbody></table>

### 启用查询日志记录

从Tableau Prep Builder版本 2026.2 开始，您可以在“帮助”\>“设置和性能”菜单下打开“启用查询日志记录”设置，而无需重新启动应用程序。启用后，此设置将为 Tableau Prep Builder 运行的每个查询生成一个 XML 查询文件。这在诊断流程问题时很有帮助。将生成日志并将其存储在 Query 文件夹中。

![Tableau Prep 中的“帮助”菜单，显示“设置和性能”菜单选项。](/tableau/next/zh-cn/prep/zh-cn/Img/prep_enable_query_logging.png)

您可以在以下目录中找到这些查询日志：

**Windows**： `C:\Users\<username>\Documents\My Tableau Prep Repository\Query`

**MacOS**：`/users/<username>/Documents/My Tableau Prep Repository/Query`

### 运行 LogShark

LogShark 是一个免费的开源命令行实用程序，您可以使用它从 Prep 日志文件中提取信息以进行故障排除并深入了解错误和使用情况。使用 LogShark `Prep.twbx` 插件，您可以生成带有错误和流程仪表板的工作簿，以帮助您分析和可视化 Prep 问题。

有关安装和运行 LogShark 的信息，请参见[为您的计算机设置 LogShark](https://tableau.github.io/Logshark/docs/logshark_prefunc) 。

### 创建崩溃转储文件

除了日志文件外，您还需要收集崩溃转储文件。此处可能详细介绍了日志文件中未包含的任何内容，这些内容有助于解决应用程序启动、异常或查询 .hyper 时出现的问题。

创建崩溃转储文件时，为以下进程创建这些文件非常有用。

<table style="width: 100%;" class="simple-table"><colgroup><col><col></colgroup><tbody><tr><th>进程</th><th>描述</th></tr><tr><td>tabminerva.exe（以前名为 prepservice.exe）</td><td>这是承载 Tableau Prep 业务逻辑其余部分的本机进程。它也是包含共享的 Tableau 原生技术（包括数据库连接器）的进程。</td></tr><tr><td>hyperd.exe</td><td>这是 hyper 数据库进程。查询失败的任何时候。当发生故障时，hyper 的崩溃转储可能很有用，因为 Tableau Prep 执行的大部分操作都涉及对 hyper 的查询。</td></tr></tbody></table>

若要创建崩溃转储文件，请执行以下操作，具体取决于您的操作系统。

#### Windows

1. 打开任务管理器。
2. 右键单击列标题，并选择“进程名称”和“命令行”。这将显示不同的进程，并使您能够选择要用于创建崩溃转储文件的进程。
3. 右键单击 tabminerva.exe 进程（以前名为 prepservice.exe）。
4. 选择“创建转储文件”。
    
    此时将打开一个对话框，其中显示崩溃转储文件在系统上的位置。

#### MacOS

在 MacOS 上，有两种类型的诊断文件可用于对 Tableau Prep 进行故障排除：

- 崩溃报告 — 记录发生崩溃时的调用堆栈，类似于堆栈跟踪。
- 核心文件 — 终止时进程内存的完整快照。

两者都需要终止 Tableau Prep 进程。收集这些文件后，您将需要重新启动 Tableau Prep。

**先决条件**：核心文件收集需要管理员访问权限。

**步骤 1**：创建崩溃报告

1. 打开终端。
2. 运行命令： `pgrep tabminerva | xargs kill -SEGV`
    
    这将通过向 tabminerva.exe 进程发送分段故障信号来终止该进程，从而导致 MacOS 自动生成崩溃报告。
3. 在以下位置查找已保存的崩溃报告： `~/Library/Logs/DiagnosticReports/`
    
    文件名采用 tabminerva\_YYYY-MM-DD-HHMMSS\_machinename.crash 或 tabminerva\_YYYY-MM-DD-HHMMSS\_machinename.ips 格式

将此文件发送给 Tableau 支持部门或开发团队时，请确保声明您有意发送了分段故障信号来生成报告。这将其与真正的崩溃区分开来。

**步骤 2**：创建核心文件

使用以下选项之一来创建核心文件：

**创建核心文件并终止 Tableau Prep 会话**

1. 打开终端。
2. 运行命令 `sudo chmod 1777 /cores` 以授予对核心文件目录的写入访问权限。
3. 运行命令 `ulimit -c unlimited` 以移除当前终端会话的核心文件大小限制。
4. 运行命令 `pgrep tabminerva | xargs kill -SEGV` 以终止进程并生成核心文件。
5. 在 `/cores/` 中找到名为 `core.<process_id>` 的核心文件。

**创建核心文件并保持 Tableau Prep 运行**

此选项使用 gcore 实用工具来捕获正在运行的进程的核心转储，而不会结束该进程。此过程需要安装 Xcode 命令行工具。若要检查是否安装了此选项，请打开终端并运行 `Bash xcode-select --install`。

1. 打开终端。
2. 运行命令：`sudo gcore -o /tmp/tabminerva.core $(pgrep tabminerva)`
    
    这会将核心文件保存到 `/tmp/tabminerva.core`。Tableau Prep 继续正常运行。

## 使用命令行运行流程时的常见错误

您可以从命令行中运行流程来刷新输出文件，而不是打开 Tableau Prep Builder 以手动方式运行每个流程。尽管此过程可帮助提高流程进程的效率，但如果语法不正确，或者缺少连接或输出位置的凭据，则在运行此过程时会出现错误。

有关 Tableau Prep 中支持的所有命令行选项的列表，请参见 [Tableau Prep 命令行参考](https://help.tableau.com/current/prep/zh-cn/prep_command_line_reference.htm)。

下表描述了常见错误以及如何解决这些错误。有关如何从命令行中运行流程的信息，请参见[通过命令行刷新流程输出文件](https://help.tableau.com/v0.0/prep/zh-cn/prep_run_commandline.htm)。

<table style="width: 100%;" class="simple-table"><colgroup><col><col><col></colgroup><tbody><tr><th>错误</th><th>原因</th><th>如何修复</th></tr><tr><td>“Missing arguments”（缺少参数）</td><td>缺少必需的命令行参数之一。</td><td>使用“tableau-prep-cli -help”来查看命令行参数的列表。</td></tr><tr><td>“Unable to read the connections file.”（无法读取连接文件。）</td><td>输入连接的 credentials.json 文件中的语法或格式存在错误。</td><td>请检查 .json 文件中输入连接的语法。有关详细信息和示例，请参见<a href="https://help.tableau.com/v0.0/prep/zh-cn/prep_run_commandline.htm" target="_blank" class="xref">通过命令行刷新流程输出文件</a>。</td></tr><tr><td><p>“There are errors in the flow.Unable to run the flow.</p><p>Check that the credentials .json file includes all required credentials.Open the flow in Tableau Prep Builder to view error details.”（流程中存在错误。无法运行流程。请检查 credentials .json 文件是否包括所有必需的凭据。在 Tableau Prep Builder 中打开流程以查看错误详细信息。）</p></td><td><p>输入连接的 credentials.json 文件中缺少凭据，或者流程包含错误。</p></td><td><p>请检查 .json 文件是否具有所有连接的凭据，并在 Tableau Prep Builder 中打开流程文件，确定流程中是否存在任何错误。</p><p>如果流程有错误，您必须修复这些错误并将流程重新发布到 Tableau Server，然后再次尝试运行该过程。</p></td></tr><tr><td>“Could not find match for &lt;hostname of inputConnections &gt;”（找不到 &lt;输入连接的主机名&gt; 的匹配项）</td><td>credentials.json 文件缺少主机名（服务器名称）条目。</td><td><p>请确保 credentials.json 文件包括主机名（服务器名称）的正确凭据。</p><p>有关详细信息和示例，请参见<a href="https://help.tableau.com/v0.0/prep/zh-cn/prep_run_commandline.htm" target="_blank" class="xref">通过命令行刷新流程输出文件</a>。</p></td></tr><tr><td>“We don't have credentials of all connections in tfl/tflx file.The following connection(s) were not found: &lt;hostname of inputConnections&gt;”（tfl/tflx 文件中没有所有连接的凭据。找不到以下连接：&lt;输入连接的主机名&gt;）</td><td>credentials.json 文件缺失，或包含的凭据对于错误消息中显示的主机名（服务器名称）不正确。</td><td><p>请确保 credentials.json 文件包括错误消息中所列主机名（服务器名称）的正确凭据。</p><p>有关详细信息和示例，请参见<a href="https://help.tableau.com/v0.0/prep/zh-cn/prep_run_commandline.htm" class="xref">通过命令行刷新流程输出文件</a>。</p></td></tr><tr><td>“Error signing in server &lt;serverUrl&gt; as a user &lt;userName&gt;.Please check the credentials.”（以用户 &lt;用户名&gt; 身份登录到服务器 &lt;服务器 URL&gt; 时出错。请检查凭据。）</td><td>credentials.json 文件包含的凭据对于 Tableau Server 不正确。</td><td><p>请确保 credentials.json 文件包括适用于输出连接的所有正确凭据和元素。</p><p>有关详细信息和示例，请参见<a href="https://help.tableau.com/v0.0/prep/zh-cn/prep_run_commandline.htm" class="xref">通过命令行刷新流程输出文件</a>。</p></td></tr><tr><td>“Could not sign in successfully as &lt;userName&gt; to server &lt;serverUrl&gt;(&lt;contentUrl&gt;)”（无法以 &lt;用户名&gt; 身份成功登录到服务器 &lt;服务器 URL&gt;(&lt;内容 URL&gt;)）</td><td>credentials.json 文件包含的凭据对于 Tableau Server 不正确。</td><td><p>请确保 credentials.json 文件包括适用于输出连接的所有正确凭据和元素。</p><p>有关详细信息和示例，请参见<a href="https://help.tableau.com/v0.0/prep/zh-cn/prep_run_commandline.htm" class="xref">通过命令行刷新流程输出文件</a>。</p></td></tr><tr><td>“We don't have credentials for Tableau Server to publish extract for one or more output nodes in tfl/tflx file.”（tfl/tflx 文件中没有用于为一个或多个输出节点发布数据提取的 Tableau Server 凭据。）</td><td>credentials.json 文件未作为命令行参数传入，或者其缺少输出连接的凭据。</td><td><p>请确保在命令行中包括 credentials.json 文件的路径，并验证 credentials.json 文件是否包括适用于输出连接的所有正确凭据和元素。</p><p>有关详细信息和示例，请参见<a href="https://help.tableau.com/v0.0/prep/zh-cn/prep_run_commandline.htm" class="xref">通过命令行刷新流程输出文件</a>。</p></td></tr><tr><td>“Loom rest api server not started”（Loom rest api 服务器未启动）</td><td>安装或环境设置不正确。</td><td><p>请确保正确安装了 Tableau Prep Builder，并且您以管理员身份运行命令。</p><p>有关如何安装 Tableau Prep Builder 的信息，请参见<a href="https://help.tableau.com/current/desktopdeploy/zh-cn/desktop_deploy_download_and_install.htm" target="_blank">通过用户界面安装 Tableau Desktop 或 Tableau Prep Builder</a>。</p></td></tr><tr><td>“Error.Flow file does not exist.”（错误。流程文件不存在。）</td><td>流程文件的路径不正确。</td><td>请确保在命令行中包括流程文件的正确路径。</td></tr><tr><td>“Error.Connections file does not exist.”（错误。连接文件不存在。）</td><td>credentials.json 文件的路径不正确。</td><td>请确保在命令行中包括 credentials.json 文件的正确路径。</td></tr><tr><td>“Could not find match for &lt;mapr01:5181&gt;,&lt;mapr02:5181&gt;,&lt;mapr03:5181&gt;”（找不到 &lt;mapr01:5181&gt;、&lt;mapr02:5181&gt;、&lt;mapr03:5181&gt; 的匹配项）</td><td>使用 ZooKeeper 连接到 Apache Drill 时，您必须指定具体端口 ID。</td><td>在命令行中包括为输入凭据指定“端口”31010 的 credentials.json 文件。</td></tr></tbody></table>

## Tableau Prep 常见错误

下表描述了使用 Tableau Prep 时可能遇到的一些常见错误，以及可以尝试的解决方案。

<table style="width: 100%;" class="simple-table"><colgroup><col><col><col><col></colgroup><tbody><tr><th>错误</th><th>原因</th><th>如何修复</th><th>知识文章</th></tr><tr><td>无法连接到 Tableau Server。检查服务器是否正在运行并且 URL 是否正确。<code>tableauErrorCode=0xD5A9A6F9; tableauStatusCode=UNAUTHENTICATED; exceptionName=VizportalAuthenticationException</code></td><td>代理或防火墙阻止 Tableau Prep Builder 的嵌入式浏览器完成 Tableau Cloud 登录握手。</td><td><p>与 IT 部门合作，通过代理将 Tableau Cloud URL 放入安全列表。</p><p>在 Tableau Prep Builder 中注销并重新登录。</p><p>如果存在自动代理配置脚本，请验证它是否在不提示输入凭据的情况下处理身份验证。</p></td><td><a href="https://kb.tableau.com/articles/issue/Unable-to-sign-in-to-Tableau-Online-from-Tableau-Prep-Builder-in-an-authentication-required-Proxy-environment?lang=zh-cn" target="_blank">无法在需要身份验证的代理环境中从 Tableau Prep Builder 登录到 Tableau Online</a></td></tr><tr><td><p>所需的 SSL 证书可能缺失或与 [serverhostname] 的 Tableau Server 证书不匹配。</p><p>在服务器上运行流程时，也显示为“找不到流程 ID 的请求证书路径”。</p></td><td>Tableau Server 上缺少 SSL 证书链文件，或者运行 Tableau Prep Builder 的计算机上未安装链文件。在某些情况下，问题是由使用不兼容 TLS 策略的 AWS 负载平衡器引起的。</td><td><p>确保将 SSL 证书链文件上载到 Tableau Server。</p><p>在运行 Prep Builder 的计算机上安装证书（如果双击并选择“安装证书”返回“The file is invalid for use as the following: Security Certificate”（该文件不能用作以下用途：安全证书），则证书文件本身可能格式不正确。与 IT 部门合作以导出有效的链文件。</p><p>如果在 AWS 负载平衡器后面，请将策略降级为 ELBSecurityPolicy-TLS-1-2-2017-01。</p></td><td><a href="https://kb.tableau.com/articles/issue/error-the-required-ssl-certificate-might-be-missing-or-doesn-t-match-the-tableau-server-certificate-for-serverhostname-signing-in-from-tableau-prep?lang=zh-cn" target="_blank">错误 - 所需的 SSL 证书可能缺失或与 Tableau Server 证书不匹配 - 从 Tableau Prep 登录</a></td></tr><tr><td><p>Tableau Prep Builder 由于基础进程意外停止而停止运行。如果问题仍然存在，请尝试重新安装产品。</p></td><td><p>这可能由多种因素触发：VPN/网络配置（通过 Cato Network VPN 阻止本地主机通信确认）、防病毒干扰或打开特定 .tfl 文件时的端口文件损坏。</p><p><b>注意</b>：Tableau Prep Builder 决不应安装在 Tableau Server 节点上。这是此错误的已知原因。</p></td><td><p>重新安装，检查 AV 排除项，验证本地主机 IPv4/IPv6 通信</p><p>如果特定于 VPN，则使用备用 VPN 进行测试以隔离；委托网络团队检查 localhost 块</p><p>如果绑定到特定的 .tfl 文件，请收集 Prep 日志和 IPS 转储以调查 tabminerva 进程崩溃</p><p>确保未在任何 Tableau Server 节点上安装 Tableau Prep Builder。</p></td><td><a href="https://kb.tableau.com/articles/issue/error-tableau-prep-stopped-running-because-an-underlying-process-stopped-unexpectedly-when-starting-tableau-prep?lang=zh-cn" target="_blank">错误：Tableau Prep 停止运行，因为在启动 Tableau Prep 时基础进程意外停止</a></td></tr><tr><td>AqlProcessor 评估失败：已取消 — 流程在转置步骤后失败</td><td>在转置步骤之后更改转置列的值时的已知问题。</td><td><p>注意：此修复方法适用于版本 2022.2及更高版本。</p><p>升级到修复方法涵盖的版本。</p><p>作为旧版本的解决方法，请避免在转置的下游步骤中修改转置的列值。</p></td><td><a href="https://kb.tableau.com/articles/Issue/error-system-error-an-error-occurred-while-communicating-with-data-source-loomdatasource-occurs-when-changing-the-value-of-a-pivoted-column-after-the-pivot-step?lang=zh-cn" target="_blank">错误：系统错误 - 与数据源 (LoomDataSource) 通信时发生错误，在转置步骤之后更改转置列的值时发生错误</a></td></tr><tr><td>此流程需要的内存多于当前分配用于执行此操作的内存。请考虑筛选数据或将流程分成较小的部分。</td><td>流程的大小或复杂性需要的内存多于在 Tableau Cloud 中完成流程作业的可用内存。</td><td><p>简化流程。尝试移除未使用的字段、应用筛选器、在联接之前移动筛选器或聚合以缩小表。</p><p>尝试将流程拆分为较小的流程，并使用流程输出作为最终流程的输入。</p><p>有关更多想法，请参见<a href="https://www.tableau.com/zh-cn/blog/best-practices-authoring-data-preparation-flow" target="_blank">提高数据准备流程性能的最佳做法</a>。</p></td><td><a href="https://help.salesforce.com/s/articleView?id=001474406&amp;type=1" target="_blank">尝试运行流程时出现“无法分配 ###### 字节的内存：已超出 ###### 字节的全局内存限制”错误</a></td></tr><tr><td>无法发布数据源 - 流程在本地或输出到 .hyper 文件时成功运行，但在发布到 Tableau Cloud 时失败。</td><td>流程由于临时文件的大小超过 Tableau Cloud 限制而失败。当流程因与内存相关的 SQL 错误（例如，大型联接操作）失败时也会出现，这些错误仅出现在 Tableau Cloud 中，而不是本地。</td><td><p>将输出切换到本地 .hyper 文件，以确认问题是特定于云的。</p><p>降低流程复杂性、分成更小的流程、移除未使用的列或使用实时连接。</p></td><td>不可用</td></tr><tr><td>Prep Builder 无法在 Windows 上打开；调试日志显示与相对临时文件夹路径相关的错误。</td><td><p>Windows TEMP 环境变量设置为相对路径（例如 <code>%USERPROFILE%\AppData\Local\Temp</code>）或包含重复的路径条目。</p><p>Tableau Prep Builder 需要绝对路径。</p></td><td><p>验证 Windows TEMP 环境变量是否设置为绝对路径（例如，<code>C:\Users[username]\AppData\Local\Temp</code>）</p><p>从 TEMP 变量中移除任何重复条目。</p></td><td>不可用</td></tr></tbody></table>

## 此部分中的其他文章