StreamSets JDBC 查询使用者 - 未定义的列。列名=0

StreamSets JDBC Query Consumer - Undefined column. columnName=0

我需要使用 StreamSet 将 Phoenix table 中的记录转换为 JSON 文件。出于最初的 POC 目的,我正在尝试从 Phoenix 简单地提取到一个文件中。源是一个指向 Phoenix 的 JDBC Query Consumer,目前,它直接连接到 Local FS 目的地。在实际实现中,当然中间还会有一些像Jython Evaluator这样的组件。

它验证得很好。但是当我尝试 运行 它时,出现以下错误:

Pipeline Status: RUNNING_ERROR: com.streamsets.pipeline.api.StageException: JDBC_77 - ColumnNotFoundException attempting to execute query 'SELECT <columns I had selected> FROM <schema>.<table>'. Giving up after 1 errors as per stage configuration. First error: SQLState: 42703 Error Code: 504 Message: ERROR 504 (42703): Undefined column. columnName=0

我基本上没有任何使用 StreamSets 或 Phoenix 的经验(是的,我想在这里稍微发挥一下)。出现此错误是因为我将 JDBC 对象直接连接到本地 FS 吗?在 Informatica 中,我们必须为 Source 对象创建一个列模板。我在 JDBC 对象中没有看到任何选项。除了以下字段外,我几乎将所有内容都保留为默认值:

它变得如此令人沮丧。请帮忙!

我认为问题在于您将 0 作为 偏移列 - 这应该是偏移列的名称。事实上,如果您不执行增量查询,我认为您根本不需要偏移量,因此您可能只想删除这些设置。