본문 바로가기
DataBase

[DataBase] PostgreSQL의 GUI tool, pgAdmin4에 csv파일 업로드 오류 해결

by 배써니 2024. 9. 6.

필자가 임의로 생성한 'sample_sample'이라는 table에 csv파일을 업로드하고자 한다.

Import Data

왼쪽 탭에서 "원하는 Database 선택  >  'Schemas'  >  'public'  >  'Tables'  >  원하는 table 우클릭" 
다음과 같은 과정을 거치면 위와 같이 'Import/Export Data'라는 옵션을 확인할 수가 있다. 

위와 같이 File name(경로)과 Format, Encoding 선택을 해주고 
Header 항목에도 체크표시를 해준 뒤 OK 버튼을 누르면 아래와 같은 에러가 뜬다.

관련 에러를 해결하기 위해 다양한 정보를 찾아보았는데 마땅치가 않아서 내가 해결한 방법을 정리해보고자 한다.

오류 해결을 위한 여러 시도 속에서도 또 다른 오류들이 발생해서 정확히 어떤 것 때문에 이런 오류가 발생했는지는 밝혀내지 못했지만, 아래와 같은 방식으로 진행했더니 오류가 해결되었다. 

※ 본 게시글에서 table 명은 'temp_sample'과 'sample_sample' 두 가지가 혼용되어 사용되었다.
이는 실제 자료 이미지를 캡처하는 과정에서 오류상황을 가정하기 위해 새로운 table을 만들었기에 두 가지가 혼용되어 사용된 것이기에, 둘 다 동일한 table이라고 생각한 뒤 적용해주면 된다.


01. 권한 문제 해결 process

1) 클라이언트(local file)에서 직접 실행하여 psql에 접속함으로써 권한 문제 해결

PowerShell 접속 → psql -U username -d dbname 코드 입력

psql -U username -d dbname

위와 같은 코드를 입력하면 아래와 같은 결과가 나온다.

결과 화면 (psql 서버에 접속하였음을 알 수 있다.)

참고로 필자는 이 과정에서도 오류가 발생했었다. 

## 발생오류 ##

psql : 'psql' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다.
이름이 정확한 지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.
위치 줄:1 문자:1 + psql -U postgres -d test + ~~~~ +
CategoryInfo : ObjectNotFound: (psql:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

이 오류에 대한 해결 방법은 아래 링크를 참고하길 바란다.
https://blog.naver.com/ilsan_ilsan/221493158294

 

2) local에 저장된 File을 DB Server에 복사해 넣는다.

'test=#'와 같이 떴다면 psql 서버 접속에 성공한 것이다. 
그럼 이어서 아래와 같은 코드를 입력하여 파일을 복사해 넣으면 된다.

\copy 'table명' FROM '경로' WITH CSV HEADER DELIMITER ',' QUOTE '"';


코드 입력 결과는 아래와 같다.

 

3) 해당 파일이 저장된 위치(경로)에 따라 copy가 진행되지 않는 경우가 발생한다.

해당 오류의 정확한 의미는 잘 모르겠지만, 이런 경우에는 파일의 위치를 달리해주면 된다.
필자의 경우, OneDrive(D:\OneDrive\ ~)에 저장된 파일을 로컬디스크(C:\User ~)로 옮겨주었더니 해결되었다.


02. Data 자체의 문제 해결 process

1) Data preprocessing

기존에 위와 같이 저장되어있는 csv 파일에 문제가 생겨 python을 이용하여 공백을 제거하는 전처리를 진행해주었다.
앞서 import하는 단계에서 문제가 생겼던 원인들 중에 하나가 데이터의 형태 때문이었고, 이를 해결하기 위해 데이터의 형태를 정제해준 것이다.

최종 저장된 데이터는 아래와 같다.

 

02) table 생성 시에 column 추가

처음 table을 생성할 때 적절한 column명들과 각 column에 들어올 데이터들의 Data Type을 입력해주어야 한다.


위와 같은 과정을 통해 성공적으로 csv 파일에 import하여 확인할 수 있었다.


csv 파일을 import하여 데이터를 db에 저장하는 단계에 무사히 성공했습니다.
PostgreSQL의 GUI 중 하나인 pgAdmin4를 사용하여 간단한 시각화도 손쉽게 진행할 수 있었습니다.

성공적 ,,^_^,,

이제 다음 단계로는 db와 실시간 시각화 tool을 연결하여
DB에 들어오는 데이터들을 실시간으로 시각화할 수 있도록 할 예정입니다.

제가 성공할 수 있을까요? 궁금하시다면 다음 게시글에서 만나요 안녕

'DataBase' 카테고리의 다른 글

[DataBase] MariaDB 알아보기 / DBeaver란?  (1) 2024.09.04
[DataBase] MongoDB 파헤치기  (3) 2024.03.07
[DataBase] PostgreSQL 파헤치기  (0) 2024.03.04