본문 바로가기

Database/PostgreSQL

처음 사용자를 위한 PostgreSQL 사용 샘플 - 5. 데이터 업로드

"처음 사용자를 위한 PostgreSQL 사용 샘플"이라는 제목의 시리즈로, 저처럼 PostgreSQL을 처음 접하는 사용자를 위한 기본적인 개념, 사용 샘플을 설명드립니다.

이전글

[Database/PostgreSQL] - 처음 사용자를 위한 PostgreSQL 사용 샘플 - 4. pgAdmin 설치 & DB 접속

 

아래 자료를 참조했습니다.

PostgreSQL Domcumentation
The Internals of PostgreSQL
PostgreSQL Tutorial

PSQL을 통한 데이터 로딩

이번에는 PSQL 유틸리티를 통해 데이터베이스를 만들고, 샘플 스키마를 생성하고 데이터를 로딩해 보겠습니다.

PostgreSQL Tutorial 사이트에서 제공하는 샘플 스키마를 활용합니다. 먼저 아래 링크로 샘플 데이터베이스를 다운로드합니다. 해당 스키마의 ERD도 다운로드하실 수 있습니다.

Download DVD Rental Sample Database

Download the Printable ER Diagram

 

"wget https://www.postgresqltutorial.com/wp-content/uploads/2019/05/dvdrental.zip"으로 샘플 스키마 dvdrental의 스크립트와 데이터 파일이 포함된 압축파일 (dvdrental.zip)을 다운로드하고 "unzip dvdrental.zip" 명령으로 unzip 압축을 해제합니다.

dvdrental 스키마는 아래와 같은 데이터 모델로 되어 있습니다.

 

OS에서 "createdb dvdrental" 명령으로 데이터베이스를 만들고, "pg_restore -U postgres -d dvdrental /var/lib/pgsql/dvdrental.tar" 와 같이 pg_restore 유틸리티로 tar 파일에 압축된 스크립트와 데이터 파일을 통해 데이터를 업로드합니다. -U 옵션은 PostgreSQL 데이터베이스 호스트로 접속한 OS 유저, -d 옵션은 업로드할 타깃 데이터베이스 이름입니다.

 

참고로 pg_restore는 tar 파일 안의 restore.sql을 실행해서 스키마를 만들고 *.dat 데이터 파일들을 읽어 데이터를 로딩합니다. 아래는 dvdrental.tar 내 파일들과 tar 파일에 포함된 restore.sql 스크립트 일부 내용입니다.

restore.sql 스크립트에 보면 Type, Function, Sequence 등 여러가지 데이터베이스 오브젝트를 만들고 있습니다. 그 중 테이블을 살펴보면 테이블 생성 후, COPY 명령으로 데이터를 업로드 하는 것을 알 수 있습니다. COPY는 PostgreSQL 서버가 파일을 읽어 데이터베이스에 직접 기록하는 명령으로 STDIN 또는 STDOUT이 지정되면 데이터는 클라이언트와 서버 간의 연결을 통해 전송됩니다. 

...

...

 

pg_restore 유틸리티로 스키마를 업로드하고 나면, "dvdrental"이라는 이름의 데이터베이스가 생성되어 있습니다.

 

"\c dvdrental" 명령으로 dvdrental 데이터베이스에 접속해서 "\dt" 명령을 실행하면 생성된 테이블들을 볼 수 있습니다. 테이블을 조회해 보면 데이터가 로딩된 것을 확인할 수 있습니다.

 

이번에는 pgAdmin에서 데이터를 업로드할 해 보겠습니다. 이를 위해 먼저 OS에서 "dropdb dvdrental" 명령으로 기존 "dvdrental" 데이터베이스를 삭제합니다.

 

pgAdmin에서 "dvdrental" 데이터베이스를 새로 생성합니다. 왼쪽 메뉴의 Database를 왼쪽 클릭하고, Create > Database...을 클릭합니다.

 

"dvdrental"로 데이터베이스 이름을 입력하고 "Save"를 클릭합니다.

 

데이터베이스가 생성되고 나면, 왼쪽 메뉴에서 "dvdrental"을 선택하고 왼쪽 클릭을 하면 나타나는 목록에서 "Restore"를 클릭합니다.

 

Filename에 사전에 다운로드 받아 zip 압축을 해제한 tar 파일 위치를 지정하고 "Restore"를 클릭합니다.

 

작업 진행 상황이 팝업창을 통해 출력됩니다. 작업이 끝나면 팝업창을 닫습니다.

 

이제 왼쪽 메뉴 "dvdrental" 데이터베이스 아래 Schema > public > Tables를 선택하면, 생성된 테이블들을 볼 수 있습니다.

 

상단의 Tools > Query Tool을 클릭하면 쿼리를 수행할 수 있는 화면이 나타납니다.

 

 

 

pgAdmin에서도 PSQL 유틸리티를 사용할 수 있습니다. Tools > PSQL Tool 화면에서 수행합니다.

 

<끝>