티스토리 뷰

반응형

0. 엑셀은을 접속해 봤다.

 

지난번 포스트에서는 엑셀을 불러와 보았습니다. 이번에는 조금 더 나아가 다양한 데이터를 접근하는 방식에 대해서 알아보도록 하겠습니다. 

 

잉? 엑셀이면 되는데~

 

엑셀이면 보통 업무를 보시는데 어려운 점이 없습니다. 그렇지만, 경우에 따라, 더 확장된 형태의 데이터 접근이 필요로 합니다. 사실 이 부분은 파이썬을 좀 더 배운 후에 학습해도 늦은건 아닙니다. 

 

하지만, 여러분이 엑셀을 넘어 데이터베이스에 접속해 대형의 데이터를 다룰 수 있다면, 더 큰 데이터 처리를 수행하실 수 있습니다. 그리고 더 다양한 데이터를 이용할 수 있다는 "그 설렘"을 통해 프로그램 고 공부를 좀 더 열심히 할 수 있지 않을까 하는 마음에 포스트를 준비해 보았습니다. 

 

모든 지식이 그렇듯 사실 알면 별거아니지만 프로그래밍도 마찮가지 입니다. 하나하나 차근차근 시작해 보세요~

 

1. PosgtgreSQL 파이썬 접속

 

PostgresSQL을 통해 파이썬을 접속하기 위해서는 psycopg2의 라이브러리를 이용해야만 합니다. Psycopg는 Python에서 가장 널리 사용되는 PostgreSQL 데이터베이스 어댑터입니다. 이 라이브러리의 큰 특징은 멀티스레드에 안정적을 작동한다는 점입니다. 자 그러면 연결을 해보도록 할까요?

 

[소스코드]

 

import psycopg2

import pandas

 

#접속정보를 이용해서, 데이터베이스에 접속하는 코드

conn = psycopg2.connect(  host="192.168.0.3", #ip주소 또는 URL을 입력합니다. 

                                     port = "5432",

                                     database="SecurityExam",                 

                                     user="postgres",

                                     password="password"

                                   )   

 

위와 같이 pycopg2.connect 메소드를 이용해 작성된 것과 같이 host, port, database, user, password를 입력하면 원하는 데이터베이스에 손쉽게 연결을 생성(?)할 수 있습니다. 

 

여기서 잠깐!!

연결했으면 연결했지, 연결을 생성한다는 것은 뭐지?

conn이라는 변수를 보면 이해하실 수 있습니다. psycopg2.connect의 호출은 파라미터를 통해 연결을 시키기 위한 것이고, 그 결과를 conn에 할당하면, 연결생성한 것입니다. 이 차이는 연결생성한 것은 나중에 반드시 종료를 시켜야 하며, 프로그래머들은 흔히 이를 DB세션이 생성되었다고 이해합니다. 

 

python을 통해 데이터베이스에 접속하기 위해서는 먼저, SQL connection(연결)을 생성해야만 합니다. 생성이 완료되었다면, 이제 쿼리를 통해 테이블에서 자료를 불러올 수 있습니다. 

 

자 그럼 다시 아래 코드를 살펴보죠~


import psycopg2
import pandas
import pandas.io.sql as pgsql  #pandas를 이용해 SQL를 호출할 때 사용되는 서브 라이브러리

#접속정보를 이용해서, 데이터베이스에 접속하는 코드
conn = psycopg2.connect(  host="192.168.0.3", #ip주소 또는 URL을 입력합니다. 
                                     port = "5432",
                                     database="SecurityExam",                 
                                     user="postgres",
                                     password="password"
                                   )   

SQL = 'select * from public."/Opt/"'

pgdataframe = pgsql.read_sql_query(SQLconn)

print(pgdataframe)

 

이 코드는 print 문을 제외하고, 3줄이 추가 되었습니다. 

 

첫 번째, 바로 pandas.io.sql 입니다.

pandas.io.sql는 pandas의 서브라이브러리로, SQL쿼리를 padas에서 읽는 read_sql_query 메소드를 이용하기 위해, 선언을 해주는 것입니다.

 

두 번째, 쿼리문자열인 SQL 입니다. 

SQL은 'select * from public./"Opt/"' 문자열을 담고 있습니다. 여기서  public./"Opt/"는 public 스키마의 하위 Opt테이블의 의미하는 것으로 여기서 주의해야할 점은 postgrepg를 처음 설치하고 테이블을 만들면, 위와 같이 표현이 필요합니다. 물론 연결생성 시, 스키마를 지정해 주면,  'select * from Opt' 이렇게 직관적으로 표현할 수 있습니다.(이 부분은 추후에 다시 다루겠습니다.) postgresSQL로 개발시 이 부분이 헛갈리 수 있어 주의가 필요합니다. 이 부분은 /" 쌍따옴표를 문자열로 표시한 것으로 실제 (HeidiSQL과 같은 툴에서 SQL)을 작성할 때에는 select * from public."Opt"와 같은 의미이니 이점 참고 부탁드립니다.

 

세 번째, 마지막으로 연결된 conn에서 SQL을 실행시키는 pgsql.read_sql_query 입니다. 이 명령어는 SQL을 실행시켜 그 결과를 읽고 dataframe인 pgdataframe에 저장하는 것을 의미합니다.

 

자 결과를 확인해 볼까요? 

 

아래와 같이 제가 저장한 테이블을 잘 읽어오는 것을 확인해 볼 수 있습니다. 내용은 여러분들에게 크게 중요하지 않아 간단하게 스크린을 캡쳐하였습니다. 

 

        

 

 

2. 맺음말

 

이번 포스트에서는 postgresSQL에 접속해서, 데이터를 불러오는 것을 수행해 보았습니다. 이번 포스트에서 알 수 있듯 데이터베이스에 연결하는 것도 크게 어렵지 않고, pandas가 매우 다양하게 이용되는다는 것을 알게 되셨을 것입니다. 자 그럼 이번포스트는 여기서 마무리하고 다음 포스트에 다시 뵙겠습니다.

 

파이썬으로 다양한 데이터분석을 할 수 있는 그날까지 많은 관심 가져주시고, 오늘도 칼퇴하시길 기원합니다. 

 

좋아요 구독은 많은힘이 됩니다. 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함