2024. 3. 21. 19:03ㆍ전처리/PYTHON
01 관계형데이터베이스에서 데이터 추출하기
- 정형 데이터(숫자)는 높은 확률로 둘 중 하나이다. 클라우드 환경, 온프레미스 환경 2가지로 나눠진다.
- 클라우드 환경은 인터넷만 연결된다면 언제 어디서든 불러올 수 있다. (구글 빅쿼리 위주로 배움.)
- 회사 내부의 자체적으로 DB가 구축된 경우가 있다. (mysql:it기업/오픈소스/보안이슈, oracle:은행/보안)
- "데이터 가져오는 환경" 이해하기: 집에서 "택배"를 받는 것과 유사하다.
- 주소 알아야하고, 공통 현관 비밀번호 알아야 하겠지?
- 주소/아이디/패스워드를 알아야 한다.
- 디비버는 어플리케이션임.
- 호스트:주소 /포트:버스노선 같은건데 고정값 /데이터베이스 정의
- 데이터베이스를 마음대로 수정하면 안되니까 단계별 권한이 있음.
- SQLD에서 배운 것 그대로 (DML:데이터단위 < DDL:테이블단위 < DCL:권한부여)
- 데이터는 누가 예쁘게 만들어서 가져다 주는 경우가 잘 없다. (다들 바쁨) → 만들어보기
02 SQL 연결하기
1. "서비스"를 검색하면 윈도우에서 실행되고 있는 서비스를 보여준다.
2. SQL 확인 가능. 우린 매번 컴퓨터 켤 때마다 MySQL 80이 켜질 것이다. 중지 시킬 수도 있고 마치 내 로컬 자체가 서버가 된 것이라고 생각하면 된다.
3. 내컴퓨터가 MySQL이 떠있지만 연결하는 건 주소를 따로 정확히 줘야한다.
- Server Host: 내 컴퓨터에서 MySQL연결하는거라 localhost라고 명명한다.
- Prot: 그대로
- Username: 보통 root (다를 수 있음)
- Password: 보통 까먹음. 리셋 가능.
4. 보통 작업관리자 들어가면 프로세스 중에 MySQL있거든 계속 CPU 점유하고 있으니까 싫으면 작업 끝내기 하거나 서비스에서 삭제 할 수 있음.
5. 디비버는 SQL만 칠 수 있으니까 데이터 시각화나 (파이썬으로 하는 ) 전처리를 할 수 없으니까 로컬에서 파이썬 주피터 노트북으로 연동이 가능하다.
03 연결하기 2
- (pip install) sqlalchemy라는 모듈을 사용해서 연결할 수 있다.
- 항상 먼저 버전을 확인해야 한다. (import sqlalchemy > sqlalchemy.__version__)
- 버전에 따라 기능이 달라질 수 있고, 디버깅(에러 잡기)도 버전 별로 다를 수 있다.
- 버전 별로 이해하는 방법: 메이저.마이너.완전 마이너 업데이트
- colab은 내장되어 있어서 결과물이 동일하니 안되도 슬퍼하지 말자.
- 그리고 코드 쓰면 됨.
- 이제 데이터베이스 접속 정보만 알 수 있으면 어디서든 파이썬으로 접근할 수 있다.
04 우리가 처음에 코드를 처음 볼 때 어떻게 공부할 수 있을까?
1. type(create_engine)도 보고 별 거 없네 싶으면
2. help(create_engine)도 본다. 제작사 측의 간단한 안내, 예시가 들어있음.
3. help(pd.read_sql_query)도 봐보고 "sql을 읽어서 데이터프레임으로 가지고 온다." 고 하네?
4. 공식문서랑 내용 같으니까 귀찮을 때 help로 보면 된다.
05 API란?
- 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘이다.
- 예를 들면, 김밥 천국의 형식에 맞춰 주문하는 주문서와 같다. 그대로 출력해주니까.
- 주의: 인증키는 개인적인 것이기 때문에 블로그, 깃허브에 올리면 안된다.
- tip: github에서 연동 시 gitignore파일에 추가하면 연동이 되지 않는다.
- csv는 1회성 파일, json, xml이 open api로 받는 파일 형식이다.
- 공공 api의 단점은 업데이트가 잘 안된다. 그 중에 쓸만한 거 찾으면 돼.
- 주유소 데이터 open api : Opinet 어플리케이션 참고하기
- 그외) 네이버지도 api, 롤(riotgames api)... 원하는 기업의 api 수집-포트폴리오b
06 대기업의 open api 자선사업의 이유는? (서버비, 인건비, 시간비)
1. 3rd party tool이 활성화된다. 기업의 서비스에 더욱 몰두하게 된다.
2. 추가적으로 개발해주기에 사용자의 이용 퀄리티가 상승할 수 있다.
3. 서비스에 대한 아이디어를 얻어 모기업의 서비스로 발전시킬 수 있음.
4. api서비스 자체가 좋아서 그게 수익원이 될 수 있음.
5. 호출 수당 과금을 부여하면 수익원이 된다. ex) 지도api
07 처음 보는 api 코드(해봐)
08 XML이란?
1. eXtensible Markup Language이란?
- 웹에서 데이터를 전송할 목적으로 미리 약속해둔 형식으로 만들어진 언어이다.
- 트리구조, 계층구조라고 한다.
ex) document>condition>에는 내가 서버에 요청하는 정보가 담겨있고
data>데이터가 요청을 받아서 내게 return 하는 값이 담겨있는 등의 구조
- 계층구조를 이해하면 데이터 추출이 편해진다.
- HTML에 한계가 있어서 만들어진 언어이다.
2. HTML이란?
- 웹 페이지 구조를 정의하는 언어이다.
- F12누르면 나오는 개발자 도구를 참고.
- 데이터 수집의 가장 어려운 부분이다.
'전처리 > PYTHON' 카테고리의 다른 글
정규 표현식(import re) 알아보기 (0) | 2024.04.25 |
---|---|
Python 라이브러리 : Streamlit 실습 (0) | 2024.04.14 |
파이썬 코드카타 : 37, 38, 39, 40번🥹🥳 (0) | 2024.03.14 |
느낀점: 사용자 정의 함수 만들기의 중요성 (0) | 2024.03.12 |
파이썬 코드카타 36번 : isdecimal (0) | 2024.03.04 |