터미널에서 CSV 데이터를 SQL 데이터베이스로 가져오기
6366 단어 sqlcsvdatascience
전제 조건
이를 위해 Python 패키지를 사용할 것입니다. 가상 환경에서 작업하는 것이 좋습니다. The Real Python's 가상 환경에 대한 기사는 필요한 경우 좋은 리소스입니다. 나는 당신이 Python3을 사용하고 있다고 가정합니다.
pip install PyMySQL psycopg2 csvkit
PyMySQL: 이것은 Python을 사용하여 MySQL 데이터베이스에 연결하는 데 도움이 되는 순수한 Python MySQL 드라이버입니다.
psycopg2: 가장 널리 사용되는 Python용 Postgresql 데이터베이스 어댑터입니다.
csvkit: CSV로 변환하고 CSV로 작업하기 위한 명령줄 도구 모음입니다. CSV 파일에서 데이터를 가져오는 데 사용할 csvsql 모듈을 제공합니다.
이 튜토리얼을 위해 내가 소개하는 이 도구를 테스트하는 데 사용할 수 있는 일부 고객 정보가 포함된 CSV 파일을 업로드했습니다. 다운로드하려면 여기link를 클릭하세요.
데이터 가져오기
빠른 접근.
이 접근 방식은 CSV 데이터에서 스키마를 자동으로 생성하고, 테이블을 생성하고, 데이터를 테이블에 삽입합니다.
db_user: 생성한 테스트 데이터베이스에 대한 액세스 권한이 있는 데이터베이스 사용자입니다.
비밀번호: 사용자의 비밀번호입니다.
MySQL의 경우
csvsql --db 'mysql+pymysql://db_user:password@localhost/test' --tables customer_info --insert customer_info.csv
PostgreSQL의 경우
csvsql --db 'postgresql:///test' --tables customer_info --insert customer_info.csv
더 길고 안전한 접근 방식.
MySQL의 경우
csvsql -i mysql customer_info.csv
예상 결과:
CREATE TABLE customer_info (
`contractId` DECIMAL(38, 0) NOT NULL,
`AccountNumber` DECIMAL(38, 0) NOT NULL,
`CreatedAt` TIMESTAMP NULL,
`Amount` DECIMAL(38, 0) NOT NULL,
`Count` DECIMAL(38, 0) NOT NULL,
`Duration` DECIMAL(38, 0) NOT NULL
);
위의 결과는 테스트 데이터베이스에 customer_info 테이블을 생성하는 데 사용할 쿼리입니다. 생성된 스키마를 필요에 맞게 편집할 수 있습니다. 이 튜토리얼에서 그대로 두겠습니다.
PostgreSQL의 경우
csvsql -i postgresql
예상 결과:
CREATE TABLE customer_info (
"contractId" DECIMAL NOT NULL,
"AccountNumber" DECIMAL NOT NULL,
"CreatedAt" TIMESTAMP WITHOUT TIME ZONE,
"Amount" DECIMAL NOT NULL,
"Count" DECIMAL NOT NULL,
"Duration" DECIMAL NOT NULL
);
각 데이터베이스가 쿼리를 예상하는 방식의 차이에 유의하십시오. MySQL은 작은 따옴표로 묶이지만 Postgresql은 큰 따옴표로 묶습니다.
데이터를 테이블로 가져옵니다.
MySQL에서
csvsql --db 'mysql+pymysql://db_user:password@host/test' --no-create --insert customer_info.csv
PostgreSQL에서
csvsql --db 'postgresql:///test' --no-create --insert customer_info.csv
요약
우리는 csvkit 패키지를 사용하여 CSV 파일의 데이터를 MySQL 및 Postgresql 데이터베이스의 테이블로 가져오는 방법을 배웠습니다. 테이블을 자동으로 생성하고 데이터를 삽입하는 직접적인 접근 방식을 취할 수 있습니다. 더 길고 안전한 접근 방식은 테이블을 생성하는 쿼리를 생성하고 생성된 스키마를 검사 및 편집하고 데이터를 테이블로 가져옵니다.
CSVKIT는 모든 데이터 과학자가 도구 상자에 있어야 하는 강력한 도구입니다.
Reference
이 문제에 관하여(터미널에서 CSV 데이터를 SQL 데이터베이스로 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mupati/import-csv-data-into-sql-databases-from-the-terminal-1apb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
csvsql --db 'mysql+pymysql://db_user:password@host/test' --no-create --insert customer_info.csv
csvsql --db 'postgresql:///test' --no-create --insert customer_info.csv
우리는 csvkit 패키지를 사용하여 CSV 파일의 데이터를 MySQL 및 Postgresql 데이터베이스의 테이블로 가져오는 방법을 배웠습니다. 테이블을 자동으로 생성하고 데이터를 삽입하는 직접적인 접근 방식을 취할 수 있습니다. 더 길고 안전한 접근 방식은 테이블을 생성하는 쿼리를 생성하고 생성된 스키마를 검사 및 편집하고 데이터를 테이블로 가져옵니다.
CSVKIT는 모든 데이터 과학자가 도구 상자에 있어야 하는 강력한 도구입니다.
Reference
이 문제에 관하여(터미널에서 CSV 데이터를 SQL 데이터베이스로 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mupati/import-csv-data-into-sql-databases-from-the-terminal-1apb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)