2017-10-31 4 views
1

많은 임팔라 쿼리를 실행하고 각 쿼리를 실행하는 데 걸린 시간을 반환 할 수 있기를 원합니다. 임팔라 쉘을 사용하여, 나는 다음과 같은 명령을 사용하여이 작업을 수행 할 수 있습니다임팔라 쿼리 실행 및 쿼리 시간 받기

impl -q "select count(*) from database.table;" 

이 나에게 출력 내가 그 마지막 줄을 가져오고 시간을 추출 할 수 있도록하려는

Using service name 'impala' 
SSL is enabled. Impala server certificates will NOT be verified (set --ca_cert to change) 
Connected to *****.************:21000 
Server version: impalad version 2.6.0-cdh5.8.3 RELEASE (build c644f476b774db9db87a619628f7a6ecc5f843e0) 
Query: select count(*) from database.table 
+----------+ 
| count(*) | 
+----------+ 
| 1130976 | 
+----------+ 
Fetched 1 row(s) in 0.86s 

을 제공합니다. 그것은 어떻게 중요하지 않습니다. 그래서 내가 언어에 태그를 추가하지 않았습니다. 나는 grep을 다음과 같이 사용하려고 시도했다 :

impl -q "select count(*) from database.table" | grep -Po "\d+\.\d+" 

그러나 테이블을 제거하는 것은 아무것도하지 않는다. 쿼리를 파이썬 스크립트에 넣고 서브 프로세스를 사용하면 impl을 명령으로 찾을 수없고 스칼라에서도 마찬가지입니다. impala-shell가 표준 출력보다는 stderr로 해당 메시지를 덤프 것을

답변

1

이상한 것은 그렇게 긍정적 인 것을

impala-shell -q "query string" 2>&1 | grep -Po "\d+\.\d+(?=s)" 

공지 사항을 stdout에 표준 오류 리디렉션, 당신이 2>&1를 추가해야합니다 마지막 행을 가져올 수있다 lookahead (?=s)은 아마도 버전 번호를 캡처하지 않아야합니다.

+0

'stderr'에 호의를 표합니다! 문제를 즉시 해결했습니다. 스크립팅 언어 (bash 제외)에서이 작업을 수행 할 수있는 방법이 있는지 알고 계십니까? 파이썬에서 호출해도 여전히 오류가 발생합니다. – bendl

+0

@bendl 어떤 종류의 오류 메시지가 나타 납니까? 필자는 이전에 임팔라 셸에서 파이썬 3을 지원하지 않는 유사한 문제를 가지고있었습니다. – etopylight

+0

'impl'은 명령이 아니 었습니다 ...'impl'을 사용하여'impl'이 짧고 – bendl