본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 윈도우즈 유틸

pushcsv (Install)

0

pushcsv는 CSV 또는 TSV 파일의 데이터를 다양한 데이터베이스에 쉽게 전송할 수 있게 해주는 명령줄 도구입니다.

데이터 주입데이터베이스

소개

pushcsv는 CSV 또는 TSV 파일의 데이터를 다양한 데이터베이스에 쉽게 전송할 수 있게 해주는 명령줄 도구입니다. GitHub에서 eirannejad에 의해 개발 및 공개되었으며, PostgreSQL, MongoDB, MySQL, SQL Server, SQLite3 등 여러 인기 데이터베이스를 지원합니다. 이 프로그램은 데이터베이스 관리자나 개발자가 대용량 CSV 파일을 데이터베이스에 빠르고 효율적으로 주입할 때 유용합니다.

상세정보

지원 데이터베이스

pushcsv는 다양한 인기 관계형 및 비관계형 데이터베이스를 지원합니다:

  • PostgreSQL: github.com/lib/pq 드라이버 사용
  • MongoDB: gopkg.in/mgo.v2 드라이버 사용
  • MySQL: github.com/go-sql-driver/mysql 드라이버 사용
  • SQL Server: github.com/denisenkom/go-mssqldb 드라이버 사용
  • SQLite3: github.com/mattn/go-sqlite3 드라이버 사용

데이터 매핑 및 관리

CSV 파일의 헤더와 데이터베이스 테이블 컬럼 간의 매핑을 유연하게 설정할 수 있습니다. 예를 들어, CSV의 ‘name’ 필드를 데이터베이스의 ‘fullname’ 컬럼으로 매핑하는 것이 가능합니다. 또한 ‘–purge’ 옵션을 사용하여 데이터를 주입하기 전에 기존 테이블 데이터를 비울 수도 있습니다.

Windows 사용자를 위한 설치

Windows에서 가장 간편하게 설치하는 방법은 Chocolatey 패키지 관리자를 사용하는 것입니다. Chocolatey를 설치한 후 다음 명령어를 실행합니다:

choco install pushcsv

또한, GitHub 릴리스 페이지에서 컴파일된 바이너리 파일을 직접 다운로드하여 사용할 수도 있습니다.

소스에서 빌드하기

Go 언어 환경이 설정되어 있다면 다음 단계로 소스에서 빌드할 수 있습니다:

  1. 저장소를 클론합니다: git clone [email protected]:eirannejad/pushcsv.git
  2. 디렉토리를 변경합니다: cd pushcsv
  3. 의존성을 가져옵니다: go get -u ./...
  4. 프로그램을 설치합니다: go install .

바이너리 파일 크기를 줄이려면 go install -ldflags "-w" . 명령을 사용할 수 있습니다.

기본 사용법/명령어

pushcsv의 기본 사용법은 여러 줄에 걸쳐 밀어 넣을 데이터베이스 주소, 테이블 이름, CSV 파일 경로를 지정하는 것입니다. 다음은 PostgreSQL 데이터베이스에 사용자 데이터를 주입하는 예시입니다:

pushcsv postgres://user:[email protected]/mydb users ~/users.csv --headers --purge

위 명령어는 ~/users.csv 파일의 내용을 data.mycompany.com 서버의 mydb 데이터베이스에 있는 users 테이블로 전송합니다. ‘–headers’ 옵션은 CSV 파일의 첫 행이 헤더임을, ‘–purge’ 옵션은 주입 전 기존 데이터를 삭제함을 나타냅니다.

MongoDB를 사용할 때는 컬럼 매핑을 지정할 수도 있습니다:

pushcsv mongodb://user:pass@localhost:27017/mydb users ~/users.csv --map=name:fullname --map=email:userid

이 명령어는 CSV 파일의 ‘name’ 열을 ‘fullname’ 필드로, ’email’ 열을 ‘userid’ 필드로 매핑하여 MongoDB에 전송합니다.

이런 경우에 유용합니다

  • 데이터베이스 초기화 및 마이그레이션: CSV 형식으로 준비된 초기 데이터 세트나 마이그레이션 데이터를 한 번에 데이터베이스에 주입해야 할 때 유용합니다.
  • 대량 데이터 테스트: 테스트 환경을 위해 대용량의 샘플 데이터를 빠르게 데이터베이스에 생성해야 할 때 효과적입니다.
  • 크로스 데이터베이스 작업: 서로 다른 유형의 데이터베이스(PostgreSQL, MongoDB 등)에 동일한 CSV 데이터를 반복적으로 주입해야 하는 경우 명령어만 변경하여 작업할 수 있습니다.

제한 사항·확인 사항

  • Windows에서 소스 코드를 직접 빌드하려면 SQLite3 라이브러리 컴파일을 위해 GCC가 시스템에 설치되어 있어야 합니다.
  • 데이터베이스 연결을 설정할 때 사용자 이름, 비밀번호, 호스트 주소 등 올바른 연결 문자열을 정확히 지정해야 합니다.

시스템 요구사항

Windows에서 빌드하는 경우 SQLite3 라이브러리를 컴파일하기 위해 GCC가 필요합니다. 또는 제공된 바이너리를 사용하거나 Chocolatey 패키지 관리자를 통해 설치할 수 있습니다.