전체 글
-
Airflow, Jupyterhub에 Google OAuth 적용하기etc. 2021. 6. 9. 19:18
1. Airflow Configuration # airflow.cfg [webserver] rbac = True # webserver_config.py ... from flask_appbuilder.security.manager import AUTH_DB, AUTH_OAUTH ... AUTH_TYPE = AUTH_OAUTH AUTH_USER_REGISTRATION = True AUTH_USER_REGISTRATION_ROLE = "User" # --not 'Public' # Google OAuth example: OAUTH_PROVIDERS = [{ 'name':'google', 'token_key':'access_token', 'icon':'fa-google', 'remote_app': { 'api_b..
-
Terraform을 활용한 EMR Presto 도입기About Data 2021. 6. 5. 06:16
현 회사에서 EMR Presto를 도입한 과정에 대해 간략히 정리해 봅니다. 1. 기존의 환경 메인 서비스 DB : Mongodb Analytics Node를 활용한 MQL 데이터 분석 기타 서비스 DB : MariaDB RDS Replica를 활용한 SQL 데이터 분석 Data Warehouse : Redshift1 위의 서비스DB들을 원본으로 PySpark & Glue Metastore를 통한 1일 주기의 ETL 진행 Data Lake : S3 Service Log : Redshift2 Segment 플랫폼을 통한 1시간 주기의 원본 업데이트 기타 Summary Data : Postrgesql DB 데이터 소비자들이 위의 원천 데이터들을 가공하여 별도로 저장하는 공간 2. 문제점 DW 업데이트 주기가..
-
Jupyterhub - nbviewer 연동하기etc. 2021. 1. 19. 13:08
aws ubuntu instance에 jupyterhub 구축 후, share 디렉토리의 노트북 파일들을 더 편리하게 공유하기 위해 nbviewer를 연동했습니다. jupyter/nbviewer nbconvert as a web service: Render Jupyter Notebooks as static web pages - jupyter/nbviewer github.com nbviewer 레포를 clone하고 해당 디렉토리로 이동해 설치 및 설정을 계속합니다. git clone https://github.com/jupyter/nbviewer.git cd nbviewer pip install -r requirements.txt pip install -r requirements-dev.txt npm in..
-
EC2 -Ubuntu Docker환경에서 jupyterhub 설치하기etc. 2020. 12. 25. 08:54
Docker 설치 및 jupyterhub 세팅 curl -s https://get.docker.com | sudo sh sudo usermod -aG docker $USER docker pull jupyterhub/jupyterhub sudo service docker status vi lib/systemd/system/docker.service #수정 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/home/ubuntu/data/ docker volume create data sudo docker run -it -p 8000:8000 -v data:/data -v /var/run/do..
-
Synology Docker 기반으로 Hadoop 설치하기etc. 2020. 12. 20. 16:12
대용량 분산처리 시스템 Hadoop 공부를 위해서 설치를 진행해 봤습니다. 환경 : Synology Docker - Ubuntu container apt-get update apt-get upgrade apt-get install software-properties-common add-apt-repository ppa:openjdk-r/ppa apt-get update apt-get install openjdk-8-jdk java -version 기본 환경 및 java 설치 후 hadoop 유저 설정 및 hadoop 홈 폴더를 만들고 파일을 내려받아 설치합니다. sudo adduser hadoop passwd hadoop -d su hadoop cd ~ mkdir hadoop cd hadoop wget ..
-
사이즈가 큰 csv데이터 S3 -> redshift DB로 Copy하기About Data 2020. 12. 18. 17:27
약 7만 row, 40mb정도 되는 파일을 redshift로 올리기 위해 가장 먼저 아래와 같은 python 코드를 사용했었습니다. df.to_sql(tablename, if_exists = 'replace', con=engine, schema = schema, index=False) 그런데 이렇게 하고 redshift 쿼리 로그를 보니 무려 한 줄씩 일일히 insert로 들어가고 있던..... 한 줄마다 평균 0.5초씩만 계산해도 9시간이 넘게 소요되는 속도입니다. 이건 아니다 싶어서 방법을 찾다가 S3 버킷에 파일을 올리고 redshift copy문을 찾아서 적용해 봤습니다. 먼저 내용이 있는 데이터프레임을 csv형식으로 S3에 올리기 위해 사전 작업을 합니다. csv_buffer = StringIO..
-
Airflow 이용해서 Slack Bot 만들기 - 기초etc. 2020. 12. 17. 13:24
airflow에 있는 SlackAPIPostOperator를 활용해서 slack에 메시지를 보내 보려고 합니다. 먼저 슬랙에서 app을 만들어 줍니다. 다음으로 incoming webhooks를 활성화합니다. 슬랙 채널에 앱을 연동한 뒤 airflow dag를 작성합니다. from datetime import datetime, timedelta import airflow from airflow import DAG from airflow.operators.slack_operator import SlackAPIPostOperator default_args = { 'owner': 'rami', 'depends_on_past': False, 'start_date': datetime(2020, 12, 17, 10..