我在mysql test.employee中有两个表,在hive中有两个表default.dept 我想传递test.employee表的empid作为参数在hive表中查询并将数据存储到HDFS中
ExecuteSQL - >从test.employee中选择empid(给出10条记录)
SelectHiveQL - > SELECT * FROM default.dept其中empid = $ {empid}(应检索10条记录)
答案 0 :(得分:1)
您可以执行以下操作:
请注意,这会为每个empid值执行Hive SELECT,因此每次执行SelectHiveQL都会生成一条记录。我不确定(例如,给出IN子句的HiveQL语义)如何获取单个HiveQL语句,因为它是“常量表”和Hive表之间的连接,更不用说NiFi处理更多了复杂,因为你不想要SplitJson,并且可能必须一次处理所有记录(例如,使用ExecuteScript)
答案 1 :(得分:0)
ExecuteSQL ->SplitAvro ->ConvertAvroToJson -> EvaluateJsonPath -> ReplaceText ->SelectHiveQL -> PutHDFS
ExecuteSQL ==> Query -> select empid from employees
EvaluateHsonPath ==> destination ->flowfile-attribute
==> empid = $.empid
ReplaceText ==> ReplacementValue -> ${empid}
SelectHiveQL -> select * from dept where empid = ${empid}