[HADOOP] 하나의 insert 문을 사용하여 여러 파티션에 데이터 삽입
HADOOP하나의 insert 문을 사용하여 여러 파티션에 데이터 삽입
테이블 A와 테이블 B가 있는데, 여기서 B는 X라는 필드를 사용하는 A의 분할 된 테이블입니다.
A에서 B로 데이터를 삽입하려면 일반적으로 다음 명령문을 실행합니다.
INSERT INTO TABLE B PARTITION(X=x) SELECT <columnsFromA> FROM A WHERE X=x
이제 달성하고자하는 것은 X 범위를 삽입 할 수 있다는 것입니다. x1, x2, x3을 말합시다. 하나의 문장으로 어떻게 이것을 달성 할 수 있습니까?
해결법
-
==============================
1.동적 파티션로드를 사용하십시오.
동적 파티션로드를 사용하십시오.
set hive.exec.dynamic.partition=true; set hive.exec.dynamic.partition.mode=nonstrict; INSERT OVERWRITE TABLE table_B PARTITION(X) select col_1, col_2, ... col_N, X --partition column is the last one from table_A where X in ('x1', 'x2', 'x3'); --filter here
또는 A와 B의 열 순서가 동일한 경우 select * from table_A를 사용하십시오. 파티션 열 (X)은 마지막 열이어야합니다.
from https://stackoverflow.com/questions/48901332/insert-data-in-many-partitions-using-one-insert-statement by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 프라이빗 클라우드에서 Cloudera Manager를 사용하는 HDFS (0) | 2019.09.16 |
---|---|
[HADOOP] pyhs2를 통해 Python을 통해 Hadoop Hive에 연결하는 방법은 무엇입니까? (0) | 2019.09.16 |
[HADOOP] 체적 이미지 데이터의 분산 처리 (0) | 2019.09.16 |
[HADOOP] Hive / SparkSQL에 대한 최대 절전 모드? (0) | 2019.09.15 |
[HADOOP] S3에서 여러 쪽모이 세공 파일 위에 Hive 테이블 만들기 (0) | 2019.09.15 |