csvkit 라이브러리가 SQL과 같은 기능을 명령 줄에 제공하는 방법을 배운다.
sql2csv
csvkit 라이브러리 명령
다양한 SQL 데이터베이스 및 방언에 액세스한다.
데이터베이스 클라이언트를 거치지 않아도 된다.
sql2csv 결과를 CSV 파일로 저장한다.
sql2csv --db "sqlite:///SpotifyDatabase.db"\
--query "SELECT * FROM Spotify_Popularity"\
> Spotify_Popularity.csv
- 데이터베이스 연결 방법을 설정한다.
--db
: 데이터베이스 연결 및 위치를 나타내는 따옴표로 묶기
- 쿼리 작성
--query
: SQL 쿼리 작성, 항상 한 줄로 작성해야한다.
- 결과 저장리디렉션하지 않으면 터미널에 출력한다.
- 리디렉션 기호를 사용하여 결과를 csv에 저장할 수 있다.
복잡한 SQL문을 작성하기에 적합하지 않다.
csvsql
하나 이상의 로컬로 저장된 csv 파일에 sql과 같은 명령문을 적용한다.
처리 중인 csv 파일을 임시로 호스팅하는 메모리 내에 sql 데이터베이스를 생성한다.
큰 파일 처리나 복잡한 SQL 쿼리에는 적합하지 않다.
csvsql --query "SELECT * FROM Spotify_MusicAttributes LIMIT 1" Spotify_MusicAttributes.csv
LIMIT 1을 사용했기 때문에 위에서 1개의 레코드를 출력한다.
파이프 연산을 사용하여 csvsql 쿼리 결과를 csvlook으로 출력할 수 있다.
csvs2ql --query "SELECT * FROM Spotify_MusicAttributes LIMIT 1" data/Spotify_MusicAttributes.csv | csvlook
결과를 저장하려면 리디렉션 기호를 사용하면 된다.
csvs2ql --query "SELECT * FROM Spotify_MusicAttributes LIMIT 1" data/Spotify_MusicAttributes.csv > OneSongFile.csv
여러 개의 csv파일을 사용하려면 간단하게 파일을 나열해서 작성해주면 된다.
여러가지 옵션 확인하기
--insert
: 연결된 데이터베이스가 있어야지만 데이터베이스에 데이터 삽입이 가능함. 항상--db
와 같이 사용함
--db
--no-inference
&--no-consgtraints
csvsql --db "sqlite:///SpotifyDatabase.db"\
--insert Spotify_MusicAttributes.csv
Uploaded by Notion2Tistory v1.1.0