데이터엔지니어

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

[4주차] AIRFLOW Incremental Update 구현하기

Incremental Update의 경우에는 backfill 이슈가 발생하면서, 유지보수 비용이 full refresh에 비해 기하급수적으로 올라갑니다. 하지만, 데이터가 커질수록 full refresh의 경우에도 비용이 증가하면서, 오히려 Incremental Update가 나은 상황이 있을 수 있습니다. 따라서 해당 포스팅에서는 Incremental Update를 기초적으로 어떻게하는지 알아보겠습니다. 먼저 해당 포스팅에 대한 기본적인 정보는 앞선 포스팅을 참고해주세요. https://dataengineerstudy.tistory.com/161 [4주차] AIRFLOW 활용 데이터 적재(FULL REPRESH) FULL REFRESH 상황 가정 데이터 적재 FULL REFRESH란 테이블에 있는 모든..

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

[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] 로그인, 회원가입 기능 구현

로그인 기능 구현 터미널 입력 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..

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

[Django] 화면 꾸미기

웹페이지에 스타일시트 적용하기 1. 설정 파일에 스태틱 디렉터리 위치 추가하기 STATIC_URL = '/static/' STATICFILES_DIRS = [ BASE_DIR / 'static' ]2. 스태틱 디렉터리 만들고 스타일 시트 작성하기 mkdir statictext area{ width = 100%; } input[type=submit] { margin-top:10px; } 답변을 등록할 때 사용하는 text area를 100%로 넓히고, 버튼 위에 margin을 10px 추가했다. 3. 질문 상세 템플릿에 스타일 적용하기 {% load static %} {{ question.subject }} (..생략..) 스태틱 파일을 사용하기 위해서, 템플릿 맨 위에 {% ..

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

[4주차] 트랜잭션

트랜잭션 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..

우상욱
'데이터엔지니어' 태그의 글 목록 (9 Page)