전체 글

데이터 엔지니어링/실리콘밸리에서 날아온 데이터엔지니어링 스타터 키트

[4주차] AIRFLOW FULL REPRESH 예제(+ Incremental Update 맛보기)

이번 포스팅은 AIRFLOW의 FULL REPRESH를 연습해보기 위한 예제로 OPENWEATHER API를 활용합니다! https://openweathermap.org/api/one-call-api One Call API: weather data for any geographical coordinate - OpenWeatherMap Make just one API call and get all your essential weather data for a specific location with our new OpenWeather One Call API 2.5. Easy migration from the Dark Sky API. The One Call API 2.5 provides the followin..

데이터 엔지니어링/실리콘밸리에서 날아온 데이터엔지니어링 스타터 키트

[4주차] AIRFLOW 활용 데이터 적재(FULL REPRESH)

FULL REFRESH 상황 가정 데이터 적재 FULL REFRESH란 테이블에 있는 모든 정보를 삭제하고, 다시 INSERT하는 방식으로 보통 데이터의 크기가 크지 않거나, 스케줄의 실행 시간을 보고 판단합니다. 보통 FULL REFRESH가 가지는 장점은, BACKFILL(AIRFLOW의 TASK 중 일부 혹은 전체 DAG의 오류를 복구시키는 작업) 과정이 굉장히 단순하고 유지보수에 들이는 자원이 굉장히 작다는 점입니다. 보통은 FULL REPRESH를 쓰는 것이 좋지만, 아래의 경우에는 INCREMENTAL UPDATE로 전환합니다. 1시간 주기로 돌아야하는 DAG의 RUNNING TIME이 30분 이상 소요될 경우 하루 주기로 돌아야하는 DAG의 RUNNING TIME이 반나절 이상 소요될 경우 ..

데이터 엔지니어링/분산처리

[HADOOP] 분산환경에 HADOOP 설치하기

https://dataengineerstudy.tistory.com/159 [LINUX] 로컬 환경에서 분산처리 환경 구축하기2 앞선 포스팅을 따라오셨다면, 총 4개의 서버를 돌리고 계실겁니다. hadoop-name hadoop-data1 hadoop-data2 hadoop-data3 이번 포스팅에선 4개의 서버에서 하둡을 설치하기 위한 기초 작업들을 해보겠습니다. 1. dataengineerstudy.tistory.com 앞선 포스팅을 따라오셨다면, 네 개의 서버를 모두 켜놓고 진행해주세요! 1. JAVA설치(모든 노드에서 진행) Java ppa APT 추가 sudo add-apt-repository ppa:openjdk-r/ppa [Enter] 입력 텍스트가 출력되면 키보드의 엔터키 입력 패키지 업데..

데이터 엔지니어링/분산처리

[LINUX] 로컬 환경에서 분산처리 환경 구축하기2

https://dataengineerstudy.tistory.com/159 [LINUX] 로컬 환경에서 분산처리 환경 구축하기2 앞선 포스팅을 따라오셨다면, 총 4개의 서버를 돌리고 계실겁니다. hadoop-name hadoop-data1 hadoop-data2 hadoop-data3 이번 포스팅에선 4개의 서버에서 하둡을 설치하기 위한 기초 작업들을 해보겠습니다. 1. dataengineerstudy.tistory.com 앞선 포스팅을 따라오셨다면, 총 4개의 서버를 돌리고 계실겁니다. hadoop-name hadoop-data1 hadoop-data2 hadoop-data3 이번 포스팅에선 4개의 서버에서 하둡을 설치하기 위한 기초 작업들을 해보겠습니다. 1. UBUNTU 설치 및 환경 설정(모든 노..

데이터 엔지니어링/분산처리

[LINUX] 로컬 환경에서 분산처리 환경 구축하기1

해당 포스팅에서는 하둡 분산처리를 위해서 로컬 PC에 가상머신으로 UBUNTU 4개를 설치해보겠습니다! 로컬 PC 여유 용량 : 100GB 필수 참고(WSL2 기존에 설치하신 분들 - 가상 머신 플랫폼 체크 해제) 1. VIRTUALBOX 설치 및 환경설정 첫번째로 위 사이트 경로로 접속하여 윈도우 호스트 전용 Virtualbox를 다운로드합니다. Downloads – Oracle VM VirtualBox Downloads – Oracle VM VirtualBox Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree t..

데이터 엔지니어링/실리콘밸리에서 날아온 데이터엔지니어링 스타터 키트

[4주차] AIRFLOW ubuntu에 설치하기

기본적으로 설치하는 과정은 다음과 같습니다. 복잡해보이지만, 이렇게 했을 때 오류가 발생하지 않고 잘 설치됩니다! 같은 방식으로 EC2에도 똑같이 적용됩니다! 에어플로우 파이썬 모듈 설치 먼저 우분투의 소프트웨어 관리 툴인 apt-get을 업데이트 하고 파이썬 3.0 pip를 설치합니다. 원래는 apt-get update 이후에 python3-pip을 설치하면 되는데 pyopenssl 관련 충돌이 있어서 이를 먼저 해결하고 python3-pip를 설치하시면 됩니다. sudo apt-get update wget https://bootstrap.pypa.io/get-pip.py sudo python3 get-pip.py sudo pip3 install pyopenssl --upgrade sudo apt-ge..

데이터 엔지니어링/데이터베이스 및 운영체제

[WSL2] 윈도우11 WSL2 설치

1. WSL2 VS VIRTUAL MACHINE 이번에는 AIRFLOW 실습을 위해 먼저 윈도우11에 WSL2를 설치해보겠습니다. 가상머신을 사용할 때에 비해서, 다양한 차이점이 있습니다. 첫번째로, 가상화 방식에 차이가 있습니다. WSL2는 가상화 기술이 아니라 리눅스 시스템 콜 인터페이스를 제공하여 윈도우와 리눅스 커널 간의 통합을 제공합니다. 이는 가상머신과는 다른 방식으로 작동합니다. 가상머신은 각각의 운영체제를 독립적으로 실행하는 반면 WSL2는 윈도우 운영체제에서 리눅스 실행 파일을 실행하기 위해 리눅스 시스템 콜을 호출합니다. 두번째로 성능 차이가 있습니다. WSL2는 가상머신보다 성능이 뛰어납니다. WSL2는 윈도우와 리눅스 간의 통합을 위한 기술이므로 가상머신에서 필요한 하드웨어 자원을 ..

웹 애플리케이션/Django(장고)

[DJANGO] SPOTIFY API로 음악 추천 웹 개발하기1(AWS RDS)

이번 미니 프로젝트는 SPOTIFY API 데이터로 음악 추천 웹을 개발하는 프로젝트입니다! 프로젝트 기간으로 주어진 5일 간은 웹에 집중하고, 이후엔 데이터 파이프라인을 체계적으로 구축해보려고 합니다. 지금은 프로젝트 기간 2일이 지난 상태고, 앞서 진행했던 SPOTIFY API 사용, 데이터 베이스 설계, AWS RDS 연동, 그리고 DJANGO의 간단한 검색 기능 구현 과정을 담은 포스팅입니다! SPOTIFY API 먼저 SPOTFIY API를 활용해서, 데이터를 받아오는 과정이 있었습니다. SPOTIFY DEVELOPERS에서 가입을 한 후에 KEY를 통해 데이터를 받을 수 있습니다. 다만, 토큰이 일정 시간이 지나면 초기화되고, 너무 많은 요청이 있을 때는 몇 분정도 기다려야하는 단점이 있습니다..

데이터 엔지니어링/데이터베이스 및 운영체제

[Linux] 리눅스 기초

간단히 초기 설정 설정 - 네트워크 사용자 컴퓨터에서 검색, 터미널 빠른 실행 칸에 넣어두기 리눅스 구조 커널 리눅스의 핵심 프로세스/메모리/파일시스템/장치 관리 컴퓨터의 모든 자원 초기화 및 제어 기능 셸 사용자 인터페이스 명령해석 프로그래밍기능 배시 셸을 기본으로 사용 응용 프로그램 각종 프로그래밍 개발도구 문서 편집 도구 네트워크 관련 도구 등 리눅스 명령어 pwd : 현재 위치 상위 디렉토리로 이동 하기 : cd .. 디렉토리 내 폴더, 파일 보기 : ls 자세한 파일 정보 보기 : ls -la or ll 홈으로 가기 : cd ./home or cd ~ 현재 디렉토리 : . 경로 구분 : / 상위 디렉토리 : .. 폴더 생성 : mkdir 파일 내용 화면 단위로 보기 : more more a.tx..

데이터 엔지니어링/데이터베이스 및 운영체제

[LINUX] Oracle VM VirtualBox 사용해서 리눅스 설치하기

VIRTUAL BOX ORACLE에서 제공 하둡이나, PIG는 완전 분산모드(노드 별로 환경을 나눠서 작업)로 하는 방식도 있지만, 실습에 있어서는 시간이 꽤 오래걸리는 방법으로 추천하지 않습니다. Hive, pig, Hadoop의 의사 분산 모드는 한 대 안에 여러대의 컴퓨터가 있는 것처럼 노드를 사용하는 방법입니다. 이런 방법으로 사용할 수 있도록 지원되는 이미지에는 해당 이미지는 Hive, pig, Hadoop 전부 설치 되어있다. 이건 실제로 개발자들이 개발 및 테스트에 자주 사용하는 방식입니다. 먼저 virtualBox를 통해서 가상환경으로 리눅스를 설치해보겠습니다. VirtualBox-6.134 실행해서 설치 VirtualBox 나오면 Oracle VirtualBox에서 새로 만들기 이름 Ub..

웹 애플리케이션/Django(장고)

[Django] 로그인, 회원가입 기능 구현

로그인 기능 구현 터미널 입력 django-admin startapp common settings.py에서 INSTALLED_APPS에 'common.apps.CommonConfig' 등록 config/urls.py에서 common.urls 추가 urlpatterns = [ path('admin/', admin.site.urls), path('pybo/', include('pybo.urls')), path('common/', include('common.urls')) ] common 디렉터리에서 urls.py 생성하고 from django.urls import path from django.contrib.auth import views as auth_views app_name = 'common' urlp..

웹 애플리케이션/Django(장고)

[Django] 페이징 기능

shell 이용해서 게시글 넣기(DB 업데이트) 장고 쉘 접속 python manage.py shell from pybo.models import Question from django.utils import timezone for i in range(300): q = Question(subject="질문글의 제목입니다:[%03d]" % i, content = '내용은 없음', create_date = timezone.now()) q.save() 페이징 기능 구현하기 views.py javascript로도 가능합니다. 이번엔 django의 Paginator를 활용해서 만들어보겠습니다. from django.core.paginator import Paginator def index(request): page..

우상욱
데이터엔지니어스터디