注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

数据连接常见问题

以下是一些关于数据连接的常见问题。

有关一般信息,请查看我们的数据连接文档


计划任务从未运行

一个任务被安排在特定时间运行,但它没有尝试运行。

要排查问题,请执行以下步骤:

  1. 是否有另一个同步正在运行这个数据集和分支?验证没有其他任务同时运行,因为无法在同一个数据集和分支上同时运行两个同步。

  2. 计划是否已暂停?在该数据集的计划概览页面上验证此计划未被暂停。您可以通过同步的在调度器中编辑视图或数据集预览的管理计划选项访问此页面。

  3. 此同步的代理是否被禁用?导航到与此同步源相关的代理,验证代理未被禁用。

返回顶部


在运行SNAPSHOT事务时,摄取导致数据集中出现重复行

一个同步运行后导致出现重复行。

  1. 创建新的同步时,选择运行APPEND类型同步而不是Snapshot
  2. 声明增量设置时,如果last_upd_in_appl_ts是唯一且不断增加的列,则将其设置为该列,然后选择一个小于该列中所有其他值的值。
  3. 之后无需额外操作,因为数据连接会跟踪已同步的最新值,并仅引入额外的新行。新行意味着大于先前值,新时间戳大于旧时间戳。

返回顶部


增量加载运行时信息

我运行增量同步时使用了什么值?

要排查问题,请执行以下步骤:

  1. 转到数据集。
  2. 在屏幕顶部附近选择历史记录
  3. 在屏幕左侧选择您感兴趣的相关事务。
  4. 查看搭建
  5. 查看事务
  6. 展开屏幕底部的自定义元数据部分。
  7. 查看incrementalMetadata块并验证正确性。

返回顶部


列类型在数据库和数据集之间不一致

我的类型与同步后出现在数据集上的类型不同。

要排查问题,请执行以下步骤:

  1. 如果列是TIMESTAMP,验证在Foundry中的结果类型是否为LONG。如果是LONG,需要使用您选择的数据准备工具(代码库、准备或其他应用程序)将其解析为TIMESTAMP。这是许多数据库创建者提供的驱动程序的副作用,其中类型会恢复到最安全的表示形式。
  2. 如果列是DECIMAL且其精度与原始数据库不同,建议在数据库查询中将数字转换为特定的精度和刻度,或在查询中将列转换为VARCHAR,然后在Foundry中重新转换。

返回顶部


查询运行状态

查询开始运行后,我如何检查其状态?

要排查问题,请执行以下步骤:

  1. 打开任务追踪器应用程序并选择正在运行的同步。
  2. 这里显示了同步的最详细状态。
  3. 如果可能,验证源数据库中的查询行为。

返回顶部


同步因架构不匹配而失败

如果文件或JDBC表的架构在增量APPEND事务之间发生变化,您的数据集将开始因架构不匹配而失败。数据连接确实会推断JDBC提取的架构,仅传播基于文件的提取的现有架构。在这种情况下,如果架构相同,您需要再次应用架构推断。如果架构在APPEND事务之间确实发生了变化,则需要为新架构创建一个新数据集。

要排查问题,请执行以下步骤:

基于文件

  1. 如果文件是XLSX或CSV表格数据,可能可以在同步的数据集中重新推断架构而不会有问题。如果此架构与之前匹配,数据集将添加附加行而不会有问题。

  2. 如果在推断架构后仍然遇到架构错误(无论是在数据集预览中还是其他应用程序中),则需要将此新文件同步到一个新数据集中,因为它代表了表的一个根本不同的视图。

  3. 如果数据集中已经添加了新架构,建议联系Palantir支持以恢复此事务。此外,需要通过进入同步概览页面暂停与此同步相关的任何计划来暂停文件到当前数据集的同步。

  4. 具有新架构的后续文件应同步到与原始数据集不同的数据集中,因此建议将原始同步的信息复制到一个新同步中,但将目标数据集替换为不同的一个(在数据集名称中注明新版本)。

  5. 此外,最好删除原始同步,以避免将来发生任何架构不匹配错误并损坏Foundry中的现有数据。

JDBC

  1. 如果您期望架构在某个时间点发生变化并以其新形式持续存在,最好将原始表放入一个名称指示架构版本的数据集中。(例如account_transactions_v1.0)。
  2. 如果同步执行前原始表中的架构发生变化:
    • 暂停同步的计划(如果存在)
  3. 如果同步执行后原始表中的架构发生变化:
    • 暂停同步的计划(如果存在)
    • 联系Palantir支持以恢复可能已损坏目标数据集的此事务
  4. 在同步暂停后,并且您准备迁移到新架构时,必须首先将新架构放入一个新数据集中:
    • 将同步克隆到一个新同步中,并将目标数据集替换为新数据集(例如account_transactions_v1.1)。然后可以将此新数据集与原始数据集合并以包含完整的数据集。
    • 如果您的应用案例需要,可以在验证新同步中正确行为后删除原始同步。这确保了旧数据集中没有可能损坏数据的可能性,但代价是减少了对先前加载配置的透明度。

返回顶部


Bootvisor状态是Unknown

我的Bootvisor卡在Unknown状态,无法停止/启动。

在继续之前联系Palantir支持以检查您的设置。以下步骤将暂时阻止在此代理上运行同步。确保源的多个代理或在维护窗口期间执行这些步骤以防止停机。

  1. 暂停代理上的同步。
  2. 等待所有当前运行的同步完成。
  3. 停止代理(此步骤可能会根据代理的当前状态失败)。
  4. SSH进入代理机器。
  5. kill所有与数据连接相关的JVM进程。
  6. 使用./service/bin/init.sh start启动Bootvisor。
  7. 在数据连接中启动代理,验证代理也未暂停

返回顶部