2016-07-07 2 views
0

필자는 약 200 개의 하이브 쪽 마루 테이블을 필요로하는 유스 케이스가 있습니다. 플랫 텍스트 파일에서이 쪽 마루 테이블을로드해야합니다. 그러나 우리는 평면 텍스트 파일에서 쪽매 테이블을 직접로드 할 수 없습니다. 다음 접근 방식을 사용 중입니다.반복적으로 하이브 테이블 생성 및 삭제의 영향

  1. 임시 관리되는 텍스트 테이블이 생성되었습니다.
  2. 텍스트 데이터가있는 임시 테이블이로드되었습니다.
  3. 생성 된 외부 쪽모이 세공 용 테이블.
  4. 선택한 쿼리를 사용하여 텍스트 테이블이있는 쪽지 테이블로드.
  5. 임시 텍스트 테이블의 텍스트 파일이 삭제되었지만 (메타 스토어에 테이블 유지).

이 접근 방식은 임시 저장소 (200 개의 테이블)를 메타 스토어에 보관하는 방식입니다. 그래서 두 번째 방법은 임시 텍스트 테이블을 hdfs의 텍스트 파일과 함께 삭제하는 것입니다. 그리고 다음에 임시 테이블을 다시 만들고 마루가 만들어지면 삭제하십시오.

이제 2 시간마다 200 개 테이블 모두에 대해 위의 단계를 수행해야하므로 메타 스토어에서 테이블을 만들고 삭제하면 생산 중 클러스터에 영향을 미칩니 까?

임시 저장소를 메타 스토어로 유지하고, 하이브 메타 스토어에서 테이블 (메타 데이터)을 만들고 삭제하는 방법은 어떤 것이 있습니까?

+0

* "평면 텍스트 파일에서 마루 테이블을 직접로드 할 수 없습니다"* - 정말요? 왜 그렇게 생각하니? EXTERNAL 테이블을 작성하여 입력 텍스트와 INSERT INTO Parquet ExtText로부터 SELECT를 생성 할 수 있습니까? –

+0

사이드 노트 : 필자는 어색한 LOAD 명령어를 구현하는 것이 FB의 잘못된 설계 선택이라는 것을 완전히 확신했습니다. 아마추어는 HDFS에서 하이브로 데이터를 "로드"해야한다고 생각합니다. 실제로 하이브는 모든 데이터를 HDFS에 저장합니다. –

+0

Samson에게 감사드립니다. _ "EXTERNAL 테이블을 만들어 입력 텍스트를 매핑하고 INSERT INTO Parquet SELECT ExtText에서 매핑 할 수 없습니까?"_ - 이것은 1에서 5까지 언급 한 것과 같은 내용입니다. 텍스트 파일에서 마루 테이블을로드하려면 먼저 텍스트 테이블을 작성해야만 마루 테이블을로드 할 수 있습니다. 그래서 매번 임시 텍스트 테이블을 만드는 것이 좋은 생각인지 아닌지입니다. 왜냐하면 지금 나는 이것을위한 어떤 대안도 보이지 않기 때문입니다. 다른 아이디어를 공유 할 수 있다면 감사하겠습니다. –

답변

0

어떤 방식 하이브 메타 스토어에서 테이블 (메타 데이터), 메타 스토어 임시 메타 데이터를 유지 생성 및 삭제, 생산에 영향을 미칠 수 있습니까?

아니요, 영향은 없습니다. HiveMetastore의 백엔드는 200 * n 시간당 변경을 쉽게 처리 할 수 ​​있어야합니다. 확실하지 않은 경우 50 개의 테이블로 시작하여 백엔드 DB 성능을 모니터링하십시오.

관련 문제