1

我需要使用 StreamSets 将 Phoenix 表中的记录转换为 JSON 文件。出于初始 POC 目的,我正在尝试从 Phoenix 进行简单的提取到文件中。源是指向 Phoenix 的 JDBC 查询消费者,目前,它直接连接到本地 FS 目标。在实际实现中,当然会有更多的组件,比如 Jython Evaluator。

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

管道状态:RUNNING_ERROR:com.streamsets.pipeline.api.StageException:JDBC_77 - ColumnNotFoundException 试图执行查询'SELECT <我选择的列> FROM <模式>。<>'。根据阶段配置在 1 个错误后放弃。第一个错误:SQLState: 42703 错误代码:504 消息:错误 504 (42703):未定义的列。列名=0

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

  • JDBC 连接字符串:jdbc:phoenix:ip-< some_ip >-south-1.compute.internal:2181/hbase-unsecure,ip-< some_ip >.ap-south-1.compute.internal:2181/hbase-unsecure, ip-< some_ip >.ap-south-1.compute.internal:2181/hbase-unsecure
  • SQL 查询:SELECT <我选择的列> FROM <模式>.<>
  • 使用凭证增量模式:未选中
  • 初始偏移偏移列:0
  • 根字段类型:列表映射

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

4

1 回答 1

2

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

于 2018-06-14T23:59:09.177 回答