QHMM 셸 스크립트 사용
이 주제에서는 QHMM에서 진단 데이터 처리를 위해 두 개의 셸 스크립트인 qhmm_usr_export.sh 및 qhmm_import_sre.sh 를 사용하는 방법에 대해 설명합니다.
전제조건
관리자는 IBM 지원팀에서 QHMM 셸 스크립트를 받아야 합니다.
qhmm_usr_export.sh
이 스크립트를 통해 사용자는 QHMM 진단 버킷에서 진단 데이터 파일을 묶고 추가 분석을 위해 압축된 진단 파일을 지원팀과 공유할 수 있습니다. (이 작업은 향상된 고객 데이터 저장소(ECuRep)에 업로드하여 수행할 수 있습니다.) 이 스크립트는 구성을 위한 명령줄 인수를 허용하거나 기본값으로 실행할 수 있습니다.
-
-e: ENDPOINT(기본값: 없음)- 스토리지 엔드포인트입니다.
-
-r: REGION(기본값: 없음)- 저장 영역입니다.
-
-b: BUCKET_NAME(기본값: 없음)- 버킷의 이름입니다.
-
-a: ACCESS_KEY(기본값: 없음)- 스토리지의 액세스 키입니다.
-
-s: SECRET_KEY(기본값: 없음)- 스토리지의 비밀 키입니다.
-
-i: WXD_INSTANCE_ID(기본값: 없음)- WXD의 인스턴스 ID입니다.
-
-t: 엔진 유형(기본값: 없음)- 엔진 유형입니다(예: Presto).
-
-d: ENGINE_ID(기본값: 없음)- 엔진의 ID입니다.
--data-type- 내보낼 데이터(Dump, QueryEvent,, QueryHistory 지원).
-
-p: DOWNLOAD_DIR(기본값: /root/data)- 다운로드한 파일의 대상 폴더입니다.
-
-x: START_DATE(기본값: 최근 24시간)- 개체를 필터링할 시작 날짜입니다.
-
-y: END_DATE(기본값: 현재 날짜)- 객체 필터링의 종료일입니다.
-
-h, --base-path- 버킷의 기본 경로입니다.
명령 예제:
./qhmm_usr_export.sh -e <ENDPOINT> -r <REGION> -b <BUCKET_NAME> -a <ACCESS_KEY> -s <SECRET_KEY> -i <WXD_INSTANCE_ID> -t <ENGINE_TYPE> -d <ENGINE_ID> -p <DOWNLOAD_DIR> -x <START_DATE> -y <END_DATE>
qhmm_import_sre.sh
이 스크립트는 지원팀이 향상된 고객 데이터 리포지토리(ECuRep)에서 진단 데이터를 검색하여 추가 분석을 위해 지원팀 버킷에 업로드하기 위한 것입니다. 첫 번째 스크립트와 마찬가지로 명령줄 인수를 사용하여 구성하거나 기본값으로 실행할 수 있습니다.
-
-e: ENDPOINT(기본값: 없음)- 스토리지 엔드포인트입니다.
-
-r: REGION(기본값: 없음)- 저장 영역입니다.
-
-b: BUCKET_NAME(기본값: 없음)- 버킷의 이름입니다.
-
-a: ACCESS_KEY(기본값: 없음)- 스토리지의 액세스 키입니다.
-
-s: SECRET_KEY(기본값: 없음)- 스토리지의 비밀 키입니다.
-
-i: WXD_INSTANCE_ID(기본값: 없음)- WXD의 인스턴스 ID입니다.
-
-t: 엔진 유형(기본값: 없음)- 엔진 유형입니다(예: Presto).
-
-d: ENGINE_ID(기본값: 없음)- 엔진의 ID입니다.
-
-p: 압축 파일(기본값: /root/data/bundle.zip)- 압축 파일의 소스 폴더입니다.
명령 예제:
./qhmm_import_sre.sh -e <ENDPOINT> -r <REGION> -b <BUCKET_NAME> -a <ACCESS_KEY> -s <SECRET_KEY> -i <WXD_INSTANCE_ID> -t <ENGINE_TYPE> -d <ENGINE_ID> -p <COMPRESSED_FILE>
bucket_data_migration.sh
이 스크립트를 통해 사용자는 소스 버킷에서 대상 버킷으로 QHMM 데이터를 전송할 수 있습니다. 마이그레이션 스크립트는 다음 명령줄 인수를 사용하여 구성하거나 기본값으로 실행할 수 있습니다:
-se: --source-endpoint- 소스 S3-compatible 저장소의 엔드포인트 URL (기본값: http://localhost:9000 )
-se: --source-endpoint- 소스 S3-compatible 저장소의 엔드포인트 URL (기본값: http://localhost:9000 )
-sr: --source-region- 소스 S3-compatible 저장소의 지역(기본값: us-east-1 )
-sb: --source-bucket- 소스 버킷의 이름(필수)
-sa: --source-access-key- 소스 저장소용 액세스 키(필수)
-ss: --source-secret-key- 소스 저장용 비밀 키(필수)
-sbp: --source-base-path- 소스 버킷의 기본 경로(기본값: qhmm)
-de: --dest-endpoint- 대상 S3-compatible 저장소의 엔드포인트 URL (기본값: http://localhost:9000 )
-dr: --dest-region- 대상 S3-compatible 스토리지의 지역(기본값: us-east-1 )
-db: --dest-bucket- 대상 버킷의 이름(필수)
-da: --dest-access-key- 대상 스토리지의 액세스 키(필수)
-ds: --dest-secret-key- 대상 저장소의 비밀 키(필수)
-dbp: --dest-base-path- 대상 버킷의 기본 경로(기본값: qhmm)
-bp: --base-path- 버킷의 기본 경로(기본값: qhmm)
-
-i: --instance-id- 인스턴스 ID(필수)
-
-t: --engine-type- 엔진 유형(필수)
-
-d: --engine-id- 엔진 ID(필수)
-
-x: --start-date- 개체 필터링 시작 날짜(DD-MM-YYYY, 선택 사항)
-
-y: --end-date- 개체 필터링 종료 날짜(DD-MM-YYYY, 선택 사항)
-
--data-type- 내보낼 데이터(지원되는 유형: 덤프, QueryEvent, QueryHistory, 선택 사항)
-
--max-size- 최대 다운로드 크기(MB) (기본값: 500MB )
-
--help- 이 도움말을 표시하고 종료합니다
명령 예제:
./bucket_data_migration.sh \
--source-endpoint <source-endpoint> \
--source-bucket <source-bucket> \
--source-access-key <source-access-key> \
--source-secret-key <source-secret-key> \
--source-base-path <source-base-path> \
--dest-endpoint <dest-endpoint> \
--dest-bucket <dest-bucket> \
--dest-access-key <dest-access-key> \
--dest-secret-key <dest-secret-key> \
--dest-base-path <dest-base-path> \
--instance-id <instance-id> \
--engine-type <engine-type> \
--engine-id <engine-id> \
--start-date <start-date> \
--end-date <end-date> \
--data-type <data-type> \
--max-size <max-size>
수동 방법으로 진단 데이터 관리하기
- 다음 명령을 실행하여
qhmm_import_sre.sh을 사용하여 생성된 쿼리 이벤트 데이터를 저장할 테이블을 만듭니다:
` CREATE TABLE IF NOT EXISTS <catalog>.diag.query_event_raw (
record VARCHAR,
dt VARCHAR
)
WITH (
external_location = 's3a://<bucket>/qhmm/<instance-id>/<engine>/<engine-id>/QueryEvent/',
format = 'textfile',
partitioned_by = ARRAY['dt']
);`
- 다음 명령을 실행하여 쿼리 기록 데이터를 JSON 형식으로 저장하는 테이블을 만듭니다:
` CREATE TABLE IF NOT EXISTS <catalog>.diag.query_history(
query_id VARCHAR,
query VARCHAR,
state VARCHAR,
source VARCHAR,
created VARCHAR,
started VARCHAR,
"end" VARCHAR,
dt VARCHAR,
user VARCHAR)
WITH (
external_location = 's3a://<bucket>/qhmm/<instance-id>/<engine>/<engine-id>/QueryHistory/',
format = 'JSON',
partitioned_by = ARRAY['dt','user']
);`