我正在构建一个查询 HBaseState 的 Trident 拓扑。我正在使用 org.apache.storm.hbase 包。
我的理解(如果我错了,请纠正我)是 HBaseQuery 读取给定 rowKey 的所有列值(或在 projectionCriteria 中指定的值),并使用 Fields("columnName","columnValue") 单独输出每一列。
例如,如果我有一张宠物表,其中 rowKey 是宠物名称,一列是“type”,一列是“age”,stateQuery 将接收带有 Values("Fido") 的输入元组,并输出两个单独的元组:
值(“Fido”,“类型”,“狗”)
价值观(“Fido”,“年龄”,11)
一些问题:
有没有办法在一个查询中从多个列中获取值?意思是,我可以使用 Fields("Name","column1Value","column2Value")获得单个输出吗?
如果有一种方法可以将多个列中的值获取到一个元组中,如果它们是不同类型的(例如,一个是字符串,一个是整数),是否仍然可以这样做?
最终,我的目标是能够使用 Fields("Name") 获取输入元组,并使用 Fields("Name","Type","Age") 获取单个输出元组,例如 Values("Fido","Dog ",11) 和价值观("Mr. Kibbles","Cat",4)。如果使用上述方法是不可能的,那怎么可能?
TIA 寻求帮助!