쉘 스크립트에 다음 쿼리가 있습니다.
mysql -e "use hive; select DISTINCT TAB.DB_NAME, TAB.TABLE_NAME from
TABLE_PARAMS INNER JOIN TAB ON TABLE_PARAMS.TBL_ID = TAB.TBL_ID
where PARAM_KEY = 'numRows'" -u root -p$Pass
명령줄에서 실행하면 형식이 훌륭하게 작동합니다. 그런데 결과를 이메일로 보내면
| mail -s "Missing compute stats" [email protected] >/dev/null 2>&1
어디에나. 결과를 이메일로 형식화하는 쉬운 방법이 있습니까? 나는 시도했습니다: 쿼리 끝에 \G를 넣으면 훌륭하게 작동하지만 세로 형식으로 유지하는 것이 좋습니다.
감사해요
편집: 내 이메일의 결과는 다음과 같습니다.
DB_NAME TABLE_NAME
customer_touch tbldatelookup
customer_touch_archive_bb bb_comm_camphist_ltd
customer_touch_archive_bb bb_comm_camphist033114
customer_touch_archive_bb bb_ed_camphist
customer_touch_archive_bb camphist
customer_touch_archive_bb cd_drop
내가 보고 싶은 것:
+---------------------------------+-----------------------------+
| DB_NAME | TABLE_NAME |
+---------------------------------+-----------------------------+
| customer_touch | tbldatelookup |
| customer_touch_archive_bb | bb_comm_chist_ltd |
| customer_touch_archive_bb | st_cla_sa |
| customer_touch_archive_bb | st_cla_a |
| customer_touchpoint_archive_stg | tier_r_prod_h27 |
+---------------------------------+-----------------------------+
답변1
클라이언트 와 함께 --table
또는 사용 :-t
mysql
mysql -t -D hive -u root -p"$Pass" \
-e "SELECT DISTINCT TAB.DB_NAME, TAB.TABLE_NAME
FROM TABLE_PARAMS
INNER JOIN TAB ON TABLE_PARAMS.TBL_ID = TAB.TBL_ID
WHERE PARAM_KEY = 'numRows'" |
mail -s etc. etc.
(그런데 이 SQL은 좀 이상하지 않나요? 어디서 나온 SQL인가요 TAB
?)
매뉴얼에서:
--table
,-t
출력을 표 형식으로 표시합니다. 이는 대화형 사용을 위한 기본값이지만 일괄 처리 모드에서 테이블 출력을 생성하는 데 사용할 수 있습니다.