복붙노트

[HADOOP] Hive의 모든 테이블에서 특정 열 이름을 어떻게 찾을 수 있습니까?

HADOOP

Hive의 모든 테이블에서 특정 열 이름을 어떻게 찾을 수 있습니까?

Hive의 모든 테이블에서 특정 열 이름을 어떻게 찾을 수 있습니까?

이 쿼리를 하이브로 실행했습니다. retail.columns에서 select table_name, column_name 여기서 column_name은 '% emp %'; (소매는 데이터베이스입니다).

그러나 그것은주고있다 :

쿼리를 시도했습니다 : column_name = 'emp'(기본값은 광산 데이터베이스)입니다 .default.columns에서 distinct table_name을 선택하십시오. 그러나 오류가 발생합니다.

이것에 대해 검색했는데 SQL 데이터베이스에 대한 쿼리를 작성했습니다.

그러나 하이브 데이터베이스에서 검색하고 싶습니까? 하이브를 얻는 방법?

동일한 질문이 전에 요청되었지만 상황이 변경되었을 수 있으며 직접적인 해결책이 있다고 생각합니다.

주어진 열 이름을 가진 모든 테이블을 어떻게 검색하고 Hadoop / Hive에서이 열 이름을 가진 테이블을 반환 할 수 있습니까?

Hive에서 테이블 및 열 검색

해결법

  1. ==============================

    1.아래 셸 스크립트는 원하는 결과를 제공합니다.

    아래 셸 스크립트는 원하는 결과를 제공합니다.

    hive -S -e 'show databases'|
    while read database
    do
       eval "hive -S -e 'show tables in $database'"|
       while read line
       do
    if eval "hive -S -e 'describe $database.$line'"| grep -q "<column_name"; then
      output="Required table name: $database.$line"'\n';
    else
    output=""'\n';
    
    fi
    echo -e "$output"
     done
    done
    
  2. ==============================

    2.메타 스토어에서 사용할 수있는 쿼리는 다음과 같습니다.

    메타 스토어에서 사용할 수있는 쿼리는 다음과 같습니다.

    TBLS에서 TBL_NAME, COLUMN_NAME, TYPE_NAME을 (를) 선택하십시오. CD_ID = TBL_ID에서 COLUMNS_V2의 왼쪽 조인은 COLUMN_NAME입니다 ( '열').

    여기서 'column'은 찾고있는 열 이름입니다.

  3. from https://stackoverflow.com/questions/48321736/how-can-i-find-a-particular-column-name-within-all-tables-in-hive by cc-by-sa and MIT license