我需要使用 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
- 根字段类型:列表映射
它变得如此令人沮丧。请帮忙!