[TIL]21.07.13 PostgreSQL 접속, MongoDB Example

Seung Joo·2021년 7월 13일
0

TIL

목록 보기
25/31
post-thumbnail

🐘Dbeaver를 통한 PostgreSQL 접속


준비

ElephantSQL을 통해 Cloud database 생성

1. 새 데이터 베이스 연결

2. PostgreSQL 선택

3. 데이터베이스 서버정보 입력

4. 데이터베이스 연결 확인

연결이 되었다면 ✅가 표시됩니다. 아니라면 ❌가 표시됩니다.

🐳Docker를 통한 PostgreSQL 접속


1. docker hub에서 postgres image 찾기

2. 도커 postgres 이미지 가져오기

docker pull postgres

3. 도커 컨테이너 실행

docker run --name test_postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

-e POSTGRES_PASSWORD 를 통해 비밀번호를 설정하지 않으면 데이터 베이스가 제대로 생성되지 않을 수 있음
mysecretpassword는 자신이 사용하고자 하는 비밀번호 입력

4. 데이터베이스 서버접속

docker exec -it test_postgres psql -h test.db.elephantsql.com -U username

-h : 호스트 이름 (test.db.elephantsql.com 에 ElephantSQL Server를 기입)
-U : 유저 아이디 (username에 ElephantSQL User & Default database 기입)

접속이 되면 비밀번호를 기입해야하는데 비밀번호 붙여넣기를 insert키로 했는데 안된다면 마우스 우클릭으로 대신해볼 것

🍃MongoDB Example


1. MongoDB Atlas 가입 후 새 클러스터 생성

MongoDB Atlas를 통해 가입

2. 지역선택 후 클러스터 생성

3. 데이터 베이스 접속 ID를 생성

4. 클러스터 접속 ip 지정


접속할 ip를 지정하여 StatusActive 된 것을 확인

5. 클러스터 접속 방법 선택

6. 클러스터 접속 코드 확인

제 경우엔 python pymongo를 사용하여 접속할 것이기 때문에 Connect your application 을 선택해주었습니다.

root부분은 제 데이터 베이스 접속 아이디입니다.
<password\> 부분에 접속 아이디의 비밀번호를 입력합니다.
myFirstDatabase부분에 앞으로 쓸 데이터베이스명을 입력합니다.

7. pymongo를 통해 작성한 예시

titanic dataset을 예시로 작성했습니다.

from pymongo import MongoClient
import pandas as pd

def return_list(df, col):
    return df[col].tolist()

df = pd.read_csv('titanic.csv')
# mongodb 접속
client = MongoClient("mongodb+srv://id:password@cluster0.nyxzh.mongodb.net/Titanic?retryWrites=true&w=majority")

# 데이터 베이스 생성 혹은 접근
db = client['Titanic']
# 콜렉션 생성 혹은 접근
col = db['Passengers']

# 각 데이터 요소들 정의
surv = return_list(df, 'Survived')
pcl = return_list(df, 'Pclass')
name = return_list(df, 'Name')
sex = return_list(df, 'Sex')
age = return_list(df, 'Age')
ssa = return_list(df, 'Siblings/Spouses Aboard')
pca = return_list(df, 'Parents/Children Aboard')
fare = return_list(df, 'Fare')

# 데이터 전송
for i in range(len(df)):
    datas = datas = {'Survived' : surv[i], 'Pclass' : pcl[i], 'Name' : name[i], 'Sex' : sex[i], 'Age' : age[i], 
                    'Siblings/Spouses Aboard' : ssa[i], 'Parents/Children Aboard' : pca[i],
                    'Fare' : fare[i]}
    # collection에 데이터 묶음 하나를 보냅니다.
    # insert_many()를 통해서 데이터 묶음 여러개를 보낼 수 있습니다.
    col.insert_one(datas)

8. 클러스터 콜렉션을 통해 데이터 수집확인

📌참고

pymongo tutorial

profile
조금씩 천천히

0개의 댓글