[HADOOP] executeSQL에서 SelectHiveQL 아파치 NiFi에 동적으로 값을 전달하는 방법
HADOOPexecuteSQL에서 SelectHiveQL 아파치 NiFi에 동적으로 값을 전달하는 방법
나는 하이브 default.dept 기타와 MySQL test.employee에서 두 테이블 하나가 나는 HDFS에 하이브 테이블 및 저장 데이터를 쿼리 매개 변수로 test.employee 테이블의 EMPID를 전달하려는
ExecuteSQL -> test.employee에서 EMPID 선택 (10 개 개의 레코드를 제공합니다)
SelectHiveQL -> default.dept * FROM을 선택할 경우 EMPID = $ {EMPID} (10 개 레코드를 검색한다)
여기에 이미지 설명
해결법
-
==============================
1.당신은 다음 작업을 수행 할 수 있습니다 :
당신은 다음 작업을 수행 할 수 있습니다 :
이것은 EMPID 각 값의 하이브 SELECT를 실행한다는 점에 유의 SelectHiveQL 실행할 때마다 하나의 레코드를 생성한다. 나는 그것이는 "상수 표"및 하이브 테이블 간의 조인의 종류이기 때문에하지 NiFi 처리가 더 언급, 하나의 HiveQL 문을 얻는 방법 (예를 들어, IN 절에 주어진 HiveQL 의미) 확실하지 않다 단지 당신이 SplitJson을 싶지 않을 것입니다 가능성 번에 모든 레코드를 처리 할 것 같은 (ExecuteScript, 예를 들면 포함)
-
==============================
2.
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}
from https://stackoverflow.com/questions/41057483/how-to-pass-values-dynamically-in-apache-nifi-from-executesql-to-selecthiveql by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] HBase를, zookeeper.MetaTableLocator 소개 : HBase를의 실패 검증 : 메타, .NotServingRegionException (0) | 2019.10.20 |
---|---|
[HADOOP] DataFrame 개체는 데이터를 표시하지 않습니다 (0) | 2019.10.20 |
[HADOOP] Sqoop2 서버를 시작 하둡 구성 클래스를 찾을 수 없습니다 (1.99.7) (0) | 2019.10.20 |
[HADOOP] 일식을 통합하고 2.6 하둡하는 방법 (0) | 2019.10.20 |
[HADOOP] 하둡에 ElasticSearch 쿼리를 전달하는 방법 (0) | 2019.10.20 |