Skip to content

Latest commit

 

History

History
91 lines (78 loc) · 2.97 KB

File metadata and controls

91 lines (78 loc) · 2.97 KB

gpload는 Greenplum의 병렬 로딩 유틸리티로, 대용량 데이터를 매우 빠르고 효율적으로 세그먼트들에 분산하여 적재할 수 있게 해줍니다.
YAML 형식의 제어 파일(control file)을 사용하여 로딩 작업을 정의하는 것이 특징입니다.

gpload 사용을 위한 3가지 구성 요소

데이터 파일: 로딩할 원본 데이터 (예: user_data.csv)
타겟 테이블: 데이터가 적재될 Greenplum 테이블
YAML 제어 파일: 로딩 작업의 모든 규칙을 정의하는 파일

단계별 사용 예시

1단계: 데이터 파일 및 타겟 테이블 준비

  1. 데이터 파일 생성 (user_data.csv) 쉼표(,)로 구분된 간단한 CSV 파일을 준비합니다.

코드 스니펫

1,John Doe,john.doe@email.com
2,Jane Smith,jane.smith@email.com
3,Peter Jones,peter.jones@email.com
  1. Greenplum에 타겟 테이블 생성 데이터가 들어갈 테이블을 미리 만들어 둡니다.

SQL

DROP TABLE users;
CREATE TABLE users (
    id INT,
    name TEXT,
    email TEXT
)
Distributed by (id);

2단계: YAML 제어 파일 작성 (load_users.yml)

로딩 작업을 정의하는 YAML 파일을 작성합니다. 이 파일이 gpload의 핵심입니다.

YAML

VERSION: 1.0.0.1
DATABASE: gpadmin
USER: gpadmin
HOST: mdw
PORT: 5432
GPLOAD:
   INPUT:
     - SOURCE:
         LOCAL_HOSTNAME:
           - localhost
         PORT: 8081 # gpload가 내부적으로 사용하는 포트
         FILE:
           - /path/to/your/user_data.csv # 1단계에서 만든 데이터 파일의 전체 경로
     - COLUMNS:
         - id: int
         - name: text
         - email: text
     - FORMAT: csv
     - DELIMITER: ','
     - QUOTE: '"'
     - ERROR_LIMIT: 25

   OUTPUT:
     - TABLE: public.users
     - MODE: insert # 데이터를 추가하는 모드

YAML 파일 주요 항목 설명:

DATABASE, USER, HOST, PORT: Greenplum 접속 정보

INPUT:

FILE: 로딩할 데이터 파일의 절대 경로를 지정합니다.
COLUMNS: 데이터 파일의 각 열이 테이블의 어떤 컬럼과 타입에 매핑되는지 정의합니다.
FORMAT: 데이터 파일의 형식 (csv 또는 text).
DELIMITER: 구분자 (CSV의 경우 ,).

OUTPUT:

TABLE: 데이터가 적재될 테이블 이름 (스키마명.테이블명).
MODE: 데이터 적재 방식.
insert: 데이터를 추가합니다.
update: 기존 데이터를 업데이트합니다. (MATCH_COLUMNS, UPDATE_COLUMNS 필요)
merge: 데이터가 있으면 업데이트, 없으면 추가합니다. (MATCH_COLUMNS, UPDATE_COLUMNS 필요)

3단계: gpload 실행

이제 터미널에서 gpload 명령어를 -f 옵션과 함께 실행하여 로딩 작업을 시작합니다.

Bash

gpload -f load_users.yml

명령어를 실행하면 gpload가 제어 파일의 내용을 읽어 병렬 데이터 로딩을 수행합니다.
작업이 완료되면 로딩된 행 수와 처리 속도 등의 요약 정보가 출력됩니다.