8-3. Database Operations on the Command Line
가짜연구소 dsf-2기로 활동중이며, 데이터 엔지니어 8코스-3) Database Operations on the Command Line 를 수강하고 그에 관련 내용을 적어보았다.
csvkit 라이브러리가 제공해야 하는 모든 것에 대해 더 깊이 알아봅시다. 특히 테이블 생성, 데이터 풀 및 다양한 ETL 변환을 포함하여 명령줄에서 수행할 수 있는 데이터베이스 작업에 중점을 둡니다.
🌱 출처 : Datacamp data enigneering track
모르는 부분이나 헷갈렸던 부분은 계속 추가될 수 있다!
Database Operations on the Command Line
1. Pulling data from database
2. Manipulationg data using SQL syntax
3. Pushing data back to database
1. Pulling data from database
sql2csv
- csvkit 라이브러리에 있는 명령
- MS SQL, mySQL, Oracle, Postgres 및 Sqlite 를 포함하여 널리 사용되는 다양한 SQL 데이터베이스에 엑세스
Pgadmin 같은 데이터베이스 클라이언트를 거치지 않고서도 SQL 명령 실행가능하다.
sql2csv -h
가독성을 위해 백슬래시를 사용하여 여러 줄로 나눕니다.
sql2csv -db "sqlite:///SpotifyDatabase.db" \ --query "SELECT * FROM Spotify_Popularity" \ > Spotify_Popularity.csv
- 데이터베이스에 연결하는 방법
--db
사용함- SQLite:
sqlite:///
.db
- Postgres & MySQL:
postgres:///
ormysql://
하지만 마지막에 .db 확장자 필요없음.
- SQL 쿼리 전달
--query
인수사용- 데이터베이스마다 SQL 구문이 조금씩 다름
- 쿼리의 길이와 복잡성에 관계없이 한줄로 써야한다.
- output 저장
>
인수 사용
역추적 및 로그를 인쇄하기 위해서는 sql2csv -v
인수 사용한다.
2. Manipulationg data using SQL syntax
csvsql
- 내부적으로 csvsql이 메모리 내 sql을 생성하기 때문에 작동함
- 처리 중인 전체 csv파일을 임시로 호스팅하는 데이터베이스
- 편리하나 대용량 파일처리나 복잡한 sql에는 적합하지 않음.
아래는 데이터의 첫 번째 행을 인쇄한다.
csvsql --query "SELECT * FROM Spotify_MusicAttributes LIMIT 1" \ Spotify_MusicAttributes.csv | csvlook
csvsql 먼저 쿼리를 가져옵니다. 이 쿼리는 데이터베이스에 로드된 테이블인 것처럼 작성된다.
현재 파일 디렉토리를 기준으로 참조하는 데이터 파일의 위치를 정확히 알려줘야한다. csvsql은 데이터 파일을 찾을 위치를 알지 못하기 때문이다.
| csvlook
을 사용하여 더 가독성있게 볼 수 있음- 조인 하여 여러 csv 를 사용가능
csvsql --query "SELECT * FROM file_a INNER JOIN file_b..." file_a.csv file_
3. Pushing data back to database
데이터를 데이터베이스에 다시 푸시하는 방법을 알아봅시다.
csvsql
- sql문이 있는 로컬 csv 데이터를 데이터베이스에 다시 업로드 및 푸시함.
--insert
--db
: 데이터베이스 연결--no-inference
&-no-constraints
csvsql --no-inference --no-constraints \ --db "sqlite:///SpotifyDatabase.db" \ --insert Spotify_MusicAttributes
일반적으로 새 파일을 데이터베이스의 테이블로 업로드하는 데는 여러 단계가 있다.
SQL 클라이언트 또는 사용자 인터페이스에 따라 테이블 스키마를 지정하고 테이블에 키를 입력한 다음 행별로 데이터를 씁니다.
insert옵션은 db옵션이 있어야만 사용가능 하다.
csvsql
은 숫자, 날짜 또는 문자열처럼 보이는 모든 열을 텍스트로 처리 합니다.
-no-constraints
의 경우 문자 길이 제한 없이 테이블을 생성할 수 있습니다. 제한은 특히 큰 데이터 테이블에 유용하며 삽입 프로세스에 속도를 높인다.
오류를 발생시키지 않고 모든 null 데이터를 포함하는 열을 생성할 수 있다.
Author And Source
이 문제에 관하여(8-3. Database Operations on the Command Line), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@heidi/8-3.-Database-Operations-on-the-Command-Line저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)