데이터로그😎

[데이터리안_플젝1] 유저 인게이지먼트 하락 원인 분석 ① 본문

SQL/프로젝트

[데이터리안_플젝1] 유저 인게이지먼트 하락 원인 분석 ①

지연v'_'v 2024. 1. 1. 14:41

*아래의 데이터리안 무료강의를 바탕으로 각색하여 진행한 내용입니다.

 

[지금 무료] [백문이불여일타] 데이터 분석을 위한 SQL 실전편 (무료 미니 코스) 강의 - 인프런

인프런 누적 수강생 10,000명 이상, 풍부한 온/오프라인 강의 경험을 가진 데이터리안의 SQL 실무 강의. SQL은 실무에서 어떻게 활용되고 있을까요? Microsoft의 Yammer 서비스의 실제 데이터를 이용하여

www.inflearn.com


데이터리안 무료 SQL 실전 강의에서 yammers의 fake data를 사용하여 분석하는 프로젝트를 진행했다. 상세한 내용과 강의는 위의 링크를 들어가면 볼 수 있다.

 

이 프로젝트는 SQL 스킬을 배우는 것이 아닌, "데이터 분석가가 현업에서 어떤 사고 루트를 거치는가?" 를 주로 다룬다. 특정 문제가 발생했을 때, 데이터 분석가는 어떠한 사고 흐름으로 문제를 정의하고 해결하는지를 보여준다.  문제 상황 파악 > 분석 진행의 흐름으로 강의는 진행된다.

 

원래 강의에서는 MODE라는 사이트에서 SQL 분석을 진행했다. 그러나, 나는 해당 사이트에서 제공하는 yammers 데이터를 export하였고, mysql에 적재하여 분석을 진행하려 한다.

 

먼저 Python을 활용해 csv파일을 MySQL에 적재함으로써 프로젝트를 준비하려 한다.


1. MySQL에 csv파일 적재하기

Python에서 csv파일을 가져와 MySQL에 적재하려 한다.

 

1-1. 함수 생성

먼저, MySQL과 python을 연결하려면 engine을 만들어야 한다. (create_connection함수)

그 후 load_csv 함수를 통해 csv를 mysql에 적재한다.

나는 CLOUDY 라는 사용자 이름으로 localhost로 접속을 할 것이고, 테이블을 적재할 데이터베이스의 이름은 yammers이다. 

from sqlalchemy import create_engine


def create_connection(host, user, password, database):
    engine = create_engine(f'mysql+mysqlconnector://{user}:{password}@{host}/{database}')
    return engine

def load_csv(path, tb_name):
    engine = create_connection('localhost','CLOUDY','1234','yammers')
    df = pd.read_csv(path)
    df.to_sql(name= tb_name,
                con = engine,
                if_exists = 'replace',
                index = False)

 

1-2. 함수 실행 (데이터 적재)

load_csv('./yammers_data/yammer_emails.csv', 'emails')
load_csv('./yammers_data/yammer_events.csv', 'events')
load_csv('./yammers_data/yammer_users.csv', 'users')

 

 

1-3. MySQL에서 테이블 확인

MySQL에서 스키마를 확인해보면, yammers라는 데이터 베이스에 세개의 테이블이 잘 적재되어 있는 것을 확인할 수 있다. 시간도 30초밖에 안걸린다!

 

이제 mysql에까지 모든 테이블을 적재했으니 분석 준비 완료~~

다음 글에서 이어서 분석을 진행하겠다.