목차
[Pymongo] 엑셀파일 mongodb에 업로드하기(Excel to mongoDB)
이번 포스트에서는 엑셀파일에 있는 데이터를 파이썬의 pymongo 라이브러리를 사용해서 Mongodb에 올려보겠습니다. 코드 실행에 앞서 아래 작업들이 선행되어있다고 생각하고 진행하겠습니다.
- 파이썬 설치
- mongodb 설치 (윈도우 버전, windows)
- pymongo 라이브러리 설치
mongodb 연결은 localhost로 연결할 것이고 Port는 기본 default에서 변경하지 않은 27017번으로 사용 합니다.
[Pymongo] MongoDB에 연결하기
예제 코드>>
import pymongo
def Connect_DB():
connect_to = pymongo.MongoClient("localhost", 27017)
mdb = connect_to.vehicle
collection = mdb.v_data
return collection
collection = Connect_DB()
위 코드를 진행하고 에러 메세지가 발생하지 않았다면 정상적으로 연결된 것입니다.
4번 라인은 localhost 27017포트를 통해 pymongo에 연결하는 명령입니다. 연결된 결과를 connect_to에 저장하였습니다.
결과>>
최근 MongoDB Compass라는 소프트웨어를 사용하면 DB를 쉽게 GUI에서 확인 가능 합니다.
MongoDB Compass는 MongoDB와 함께 자동 설치 되니 별도 설치는 필요 없습니다.
위에 Databases 항목에서 vehicle이 생겼음을 알 수 있습니다.
[Pymongo] Excel 파일 읽고 DB에 쓰기
Excel 파일은 openpyxl 이라는 라이브러리를 사용해서 읽어 옵니다. 설치가 되지 않았다면 pip install로 설치하여야 합니다.
예제 코드>>
import pymongo
from openpyxl import load_workbook
def Connect_DB():
connect_to = pymongo.MongoClient("localhost", 27017)
mdb = connect_to.vehicle
collection = mdb.v_data
return collection
def excel_to_DB(collection):
wb = load_workbook("test.xlsx")
ws = wb.active
for x in range(1, ws.max_row+1):
db_data = {
"time": ws.cell(row=x, column=2).value,
"vel": ws.cell(row=x, column=3).value,
"acc": acc,
"n_vel": ws.cell(row=x, column=3).value
}
collection.insert_one(db_data)
collection = Connect_DB()
excel_to_DB(collection)
load_workbook을 사용해서 xlsx 파일을 불러 오고 내용을 하나씩 읽으면서 insert_one을 사용해서 DB에 하나씩 값을 집어 넣습니다.
결과>>
위처럼 8만개 이상의 빅데이터(Big Data)가 DB에 들어 갔습니다. 업로드 속도는 느렸지만 업로드가 완료된 뒤 DB에서 Data 처리는 빠르게 진행 됩니다.
'데이터베이스(db)' 카테고리의 다른 글
[Python] Pymongo 데이터베이스 생성, 삭제, 변경, 정렬 (Collection, Database) (0) | 2021.12.01 |
---|---|
파이썬에서 DB에 비밀번호 암호화(hash)해서 저장하기(flask,mongodb) (0) | 2021.06.19 |
flask와 mongodb를 사용해서 회원가입페이지 간단히 만들어보기(signup) (11) | 2021.06.18 |
[Python] MongoDB 설치, 파이썬과 연동(robomongo/robo 3t) (0) | 2021.06.16 |
[Python] MySql 생성, 삭제, 검색 (pymysql, create, delete, search 예제 포함) (0) | 2021.06.10 |