Skip to content

채용 공고 데이터 파이프라인 구축을 통한 개발 스택 트렌드 분석

Notifications You must be signed in to change notification settings

RecruitRadar/RecruitRadar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RecruitRadar

채용 공고 데이터 파이프라인 구축을 통한 개발 스택 트렌드 분석

Project Duration

2023.08.04 ~ 2023.09.04

Team Members & Roles

Field \ Name 김민석 서대원 유하준 정희원
각자 기여도 25%
ETL (웹 스크래핑) Scraper 제작 (jumpit) Scraper 제작 (wanted) Scraper 제작 (rallit), CI/CD, unittest Scraper 제작 (jobplanet)
Scheduling Airflow 구축 및 DAG 운영 (ELT, Redshift Spectrum) Airflow 구축 및 DAG 운영 (ETL,Glue)
ETL (전처리, 정규화&비정규화) Glue 2차 전처리 Glue 2차 전처리, Glue Crawler 세팅 Glue 1차 전처리, Athena 관련 작업 및 데이터 모델링 Glue 1차 전처리
ELT (비정규화) + Visualization 데이터마트 쿼리 작성, 대시보드 구성 데이터마트 쿼리 작성, 대시보드 구성
Event Logging S3, Glue 모니터링

Results of This Project

AllCategory

MajorMiddleSubCategory

Project Architecture

System Architecture

ERD

1. raw_data_external schema

2. analytics schema

Airflow Flowchart

Click here!

Tech Stack

Field Stack
API Back-end
Data Warehouse
ETL & ELT
Dashboard
CI/CD
Event Logging
ETC

Usage

Repository Structures

.
├── .github
│   ├── workflows
│   │   ├── scraper.yml
│   │   └── test.yml
├── README.md
├── airflow
│   ├── Dockerfile.mac
│   ├── Dockerfile.ubuntu
│   ├── README.md
│   ├── dags
│   │   ├── sqls
│   │   │   ├── athena
│   │   │   │   ├── create_company_detail.sql
│   │   │   │   ├── create_daily_jd_table.sql
│   │   │   │   ├── create_jd_preferred_english_nouns.sql
│   │   │   │   ├── create_jd_preferred_korean_nouns.sql
│   │   │   │   ├── create_jd_primary_responsibility_english_nouns.sql
│   │   │   │   ├── create_jd_primary_responsibility_korean_nouns.sql
│   │   │   │   ├── create_jd_required_english_nouns.sql
│   │   │   │   ├── create_jd_required_korean_nouns.sql
│   │   │   │   ├── create_jd_skills.sql
│   │   │   │   ├── create_jd_welfare_english_nouns.sql
│   │   │   │   └── create_jd_welfare_korean_nouns.sql
│   │   │   ├── redshift
│   │   │   │   ├── create_unique_jds.sql
│   │   │   │   ├── drop_schema.sql
│   │   │   │   ├── drop_unique_jds.sql
│   │   │   │   └── initialize_external_schema.sql
│   │   ├── athena_query.py
│   │   ├── glue_crawler.py
│   │   ├── glue_etl_job.py
│   │   ├── glue_nlp_job.py
│   │   ├── jobplanet_api_call.py
│   │   ├── jumpit_api_call.py
│   │   ├── rallit_api_call.py
│   │   ├── redshift_elt_query.py
│   │   └── wanted_api_call.py
│   ├── docker-compose.mac.yaml
│   ├── docker-compose.ubuntu.yaml
│   ├── plugins
│   │   ├── aws_athena_operator.py
│   │   ├── aws_redshift_operator.py
│   │   └── long_http_operator.py
│   └──  requirements.txt
├── appspec.yml
├── eda
│   ├── Dockerfile
│   ├── EDA-spark.ipynb
│   ├── EDA.ipynb
│   ├── docker-compose.yml
│   ├── font
│   │   └── applegothic.ttf
│   └── requirements.txt
├── glue
│   ├── 1st_preprocessing
│   │   ├── de1_1_1st_preprocessing_notebook.ipynb
│   │   └── de1_1_1st_preprocessing_script.py
│   └── 2nd_preprocessing
│       └── de1_1_2nd_preprocessing_script.py
├── scraper_server
│    ├── Dockerfile
│    ├── api
│    │   └── scraper.py
│    ├── docker-compose.yml
│    ├── main.py
│    ├── plugin
│    │   ├── jobplanet_class.py
│    │   ├── jumpit_class.py
│    │   ├── rallit_class.py
│    │   └── wanted_class.py
│    ├── requirements.txt
│    ├── server.py
│    └── test_app.py
└── monitoring
     ├── s3_event_rule.json
     ├── s3_alert_lambda.py
     ├── glue_job_event_rule.json
     ├── glue_job_alert_lambda.py
     └── glue_job_read_iam.json

Summary

Directory Explanation
.github github actions 관련 파일
airflow/dags airflow dag 관련 파일
airflow/dags/sqls athena 및 redshift 쿼리 모음
eda eda 모음
glue 1차 & 2차 전처리 glue job 관련 파일
scraper_server 각종 플랫폼으로부터 데이터를 스크래핑하는 Fast API 파일 모음. $ python server.py
monitoring 이벤트 로깅(모니터링) 관련 파일

About

채용 공고 데이터 파이프라인 구축을 통한 개발 스택 트렌드 분석

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •