앎을 경계하기

[가짜연구소3기] Data Engineer

[가짜연구소 3기] 데이터엔지니어링 32 - Introduction to databases

양갱맨 2021. 9. 4. 21:12

주제

관계형데이터베이스 파이프라인을 구축하는 법에 대해 배웠다.


관계형 데이터베이스

  • 엔티티에 대한 데이터를 테이블로 구성한다.
  • 각 레코드, 행은 엔티티의 인스턴스이다.
  • 각 컬럼은 속성에 대한 정보이다.
  • 테이블은 고유 키를 통해 테이블들을 연결시킬 수 있다.
  • 데이터의 퀄리티 조정과 더 많은 데이터를 처리하고 동시 사용자를 지원한다.
  • 각 컬럼에 구체적은 데이터 타입을 적용한다.
  • SQL을 사용해 데이터베이스와 상호작용한다.

데이터베이스 연결

  1. 데이터베이스를 연결하는 방법을 만든다.
  1. SQL 또는 Pandas로 쿼리한다.

이 작업을 위해 SQLAlchemy 라이브러리를 사용한다.

create_engine() 을 사용하면 데이터베이스 연결을 다룰 수 있다.

연결하기 위해서는 DB의 URL 주소가 필요하다.

URL은 데이터베이스마다 다른 패턴이다.

SQLite URL 형식은 sqlite:///filename.db이다.


데이터베이스 쿼리하기

pd.read_sql(쿼리, 엔진)을 사용해서 데이터베이스로부터 데이터를 읽을 수 있다.

  • 인수
    • 쿼리 : SQL 쿼리문이거나 테이블 이름을 넣으면 전체 테이블을 로드할 수 있다.
    • 엔진 : 데이터베이스에 연결하는 엔진 객체이다.

SQL : SELECT 예제

SELECT 컬럼이름 FROM 테이블이름;

#전체 데이터를 가지고 온다면
SELECT * FROM 테이블이름;

데이터베이스로부터 데이터 가져오기

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine("sqlite:///data.db")

weather = pd.read_sql("weather", engine)

# 또는
weather = pd.read_sql("SELECT * FROM weather", engine)

data.db 데이터베이스에서 날씨 테이블 전체를 가져오는 작업을 실행한다.