Incremental Update의 경우에는 backfill 이슈가 발생하면서, 유지보수 비용이 full refresh에 비해 기하급수적으로 올라갑니다. 하지만, 데이터가 커질수록 full refresh의 경우에도 비용이 증가하면서, 오히려 Incremental Update가 나은 상황이 있을 수 있습니다. 따라서 해당 포스팅에서는 Incremental Update를 기초적으로 어떻게하는지 알아보겠습니다. 먼저 해당 포스팅에 대한 기본적인 정보는 앞선 포스팅을 참고해주세요. https://dataengineerstudy.tistory.com/161 [4주차] AIRFLOW 활용 데이터 적재(FULL REPRESH) FULL REFRESH 상황 가정 데이터 적재 FULL REFRESH란 테이블에 있는 모든..
이번 포스팅은 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..
FULL REFRESH 상황 가정 데이터 적재 FULL REFRESH란 테이블에 있는 모든 정보를 삭제하고, 다시 INSERT하는 방식으로 보통 데이터의 크기가 크지 않거나, 스케줄의 실행 시간을 보고 판단합니다. 보통 FULL REFRESH가 가지는 장점은, BACKFILL(AIRFLOW의 TASK 중 일부 혹은 전체 DAG의 오류를 복구시키는 작업) 과정이 굉장히 단순하고 유지보수에 들이는 자원이 굉장히 작다는 점입니다. 보통은 FULL REPRESH를 쓰는 것이 좋지만, 아래의 경우에는 INCREMENTAL UPDATE로 전환합니다. 1시간 주기로 돌아야하는 DAG의 RUNNING TIME이 30분 이상 소요될 경우 하루 주기로 돌아야하는 DAG의 RUNNING TIME이 반나절 이상 소요될 경우 ..
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] 입력 텍스트가 출력되면 키보드의 엔터키 입력 패키지 업데..
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 설치 및 환경 설정(모든 노..
해당 포스팅에서는 하둡 분산처리를 위해서 로컬 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..
기본적으로 설치하는 과정은 다음과 같습니다. 복잡해보이지만, 이렇게 했을 때 오류가 발생하지 않고 잘 설치됩니다! 같은 방식으로 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..
1. WSL2 VS VIRTUAL MACHINE 이번에는 AIRFLOW 실습을 위해 먼저 윈도우11에 WSL2를 설치해보겠습니다. 가상머신을 사용할 때에 비해서, 다양한 차이점이 있습니다. 첫번째로, 가상화 방식에 차이가 있습니다. WSL2는 가상화 기술이 아니라 리눅스 시스템 콜 인터페이스를 제공하여 윈도우와 리눅스 커널 간의 통합을 제공합니다. 이는 가상머신과는 다른 방식으로 작동합니다. 가상머신은 각각의 운영체제를 독립적으로 실행하는 반면 WSL2는 윈도우 운영체제에서 리눅스 실행 파일을 실행하기 위해 리눅스 시스템 콜을 호출합니다. 두번째로 성능 차이가 있습니다. WSL2는 가상머신보다 성능이 뛰어납니다. WSL2는 윈도우와 리눅스 간의 통합을 위한 기술이므로 가상머신에서 필요한 하드웨어 자원을 ..
로그인 기능 구현 터미널 입력 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..
트랜잭션 Atomic하게 실행되어야 하는 SQL들을 묶어서 하나의 작업처럼 처리하는 방법 BEGIN과 END 혹은 BEGIN과 COMMIT 사이에 해당 SQL들을 사용 ROLLBACK 두 가지 종류의 트랜잭션이 존재 AutoCommit False를 쓰면 트랜잭션을 사용할 필요 없으나, AutoCommit True일 때는 정합성 문제를 일으킬 수 있는 SQL을 묶어줘야한다. 레코드 변경을 바로 반영하는지 여부. autocommit이라는 파라미터로 조절가능 autocommit=True 기본적으로 모든 SQL statement가 바로 커밋됨 이를 바꾸고 싶다면 BEGIN;END; 혹은 BEGIN;COMMIT을 사용 (혹은 ROLLBACK) autocommit=False 기본적으로 모든 SQL statement..