hive 이전 데이터 이전 및 클 러 스 터 백업
오늘 은 데이터 이전 을 말 할 때 가장 멍청 한 방법 도 가장 효과 적 입 니 다. 우선 우리 의 시 계 는 파 티 션 표 입 니 다. 예 를 들 어 client 가 있 습 니 다.nmbr batch 두 개의 파 티 션 입 니 다. 우 리 는 A 클 러 스 터 에서 내 보 냅 니 다. B 클 러 스 터 로 가 져 올 때 모두 대량으로 가 져 옵 니 다. 모든 물고기 가 어느 파 티 션 의 재 삽입 인지 검증 할 수 없습니다. 이렇게 효율 이 비교적 낮 기 때문에 우 리 는 A 클 러 스 터 에서 내 보 낼 때 그 가 어느 파 티 션 인지 잘 해 야 합 니 다. 파 티 션 에 따라 단독 파일 을 만들어 야 합 니 다.이렇게 해서 우리 가 B 클 러 스 터 를 가 져 올 때 파일 로 파 티 션 을 대표 하여 대량으로 기록 합 니 다.
또한 나중에 데이터 이전 이 정시 작업 이 되 어 백업 을 해 야 한다 면 우 리 는 전체 백업 이 아니 라 증분 백업 을 해 야 합 니 다. 증 가 를 어떻게 판단 합 니까? 위의 두 필드 를 사용 해도 할 수 없습니다. 그러면 우 리 는 파 티 션 에 어떻게 증 가 를 표시 해 야 하 는 지 고려 해 야 합 니 다. 정 답 은 시간 필드 입 니 다. 만약 에 제 가 3 월 20 일 에 백업 을 한 적 이 있다 면...한 달 에 한 번 백업 하면 저 는 4 월 20 일 에 백업 을 하려 고 할 때 3 월 21 일 에 새로 추 가 된 결 과 를 백업 해 야 합 니 다. 그러면 증 가 량 은 표 시 를 할 수 있 고 공간 과 시간 을 절약 할 수 있 습 니 다.
구체 적 으로 파 티 션 을 통 해 백업 하 는 방법 은 hive 가 우리 에 게 제공 하 는 몇 가지 명령 show tables 를 보십시오.show partitions tablename; 다음은 셸 의 위조 코드 를 볼 수 있다.
#! /bin/bash
ex_dir=export_zip
mkdir ./$ex_dir
for table in `hive -e 'use fkdb,show tables'`;do
dirsub=_data;
mkdir -p ./$table$dirsub;
for partition in `show partitions $table`;do
# partition=client_nmbr=AA108/batch=p1
cli_bat=`echo $partition |grep -o --color '[0-9]*'`
client_nmbr=${cli_bat[0]};
batch=${cli_bat[1]};
ex_file=$table$partition
touch ./$table$dirsub/$ex_file
hive -e 'select * from $table where client_nmbr=$client_nmbr and batch=$batch' >> ./$table$dirsub/$ex_file
zip_extension=.zip
zip -r ./$ex_dir/$table$dirsub$zip_extension ./$table$dirsub
이 셸 스 크 립 트 를 통 해 이 표 파 티 션 의 데이터 파일 을 대량으로 내 보 낼 수 있 습 니 다. 멋 있 지 않 습 니까? 그리고 zip 파일 로 포장 할 수 있 습 니 다.
이후 이 파일 들 을 B 클 러 스 터 에 업로드 하고 파일 이름 의 정규 를 파 티 션 에 일치 시 킨 후 스 크 립 트 for 변 수 를 hiv 창고 에 대량으로 삽입 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.