Data Engineering

Data Engineering/빅데이터를 지탱하는 기술

[빅데이터를 지탱하는 기술] 빅데이터의 분산 처리

1. 빅데이터의 세계 빅데이터의 세계에서는 그냥 그대로는 DWH에 가져올 텍스트 파일 등의 ‘비구조화 데이터’ 또는 ‘스키마 리스 데이터’ 등을 취급하는 경우가 많으므로 이러한 데이터를 여러 컴퓨터에서 ‘분산 처리’하는 방법이 요구된다. 2. Hadoop과 Spark - ‘Hadoop'과 ’Spark'는 널리 이용되고 있는 분산처리프레임워크다. - Hadoop은 ‘분산 파일 시스템’에서 ‘리소스 관리자’ 그리고 ‘Mapreduce'에 의한 ‘분산처리’에 이르기까지 종합적인 컴포넌트를 제공하여 많은 분산 애플리케이션의 공통 플랫폼으로 이용된다. - Spark는 ‘대량의 메모리를 활용한 고속의 데이터 처리 기반‘이므로, ‘mapreduce'를 대체하는 ‘분산 프로그래밍 환경‘이로 사용된다. 3. Hive와 ..

Data Engineering/빅데이터를 지탱하는 기술

[빅데이터를 지탱하는 기술] 빅데이터 탐색

1. 열 지향 스토리지 - 데이터를 대화식으로 시각화하고 그 내용을 알기 위해선 ‘초단위 고속집계’가 필요하다. - 데이터 양을 모두 읽어들일 수 있을때는 한번에 BI도구로 읽어들일 수 있지만, 메모리상에 올릴 수 없을 정도로 많은 양의 데이터를 처리해야한다면 ‘열 지향 스토리지’가 필요하다. - ‘MRP 데이터베이스’를 이용하면 병렬화에 의한 쿼리 고속화가 가능하다. 2. 시각화 - 시각화에 사용되는 도구로는 주로 ‘애드혹 분석’에 사용되는 ‘노트북’ 및 ‘지속적인 모니터링’에 사용되는 ‘대시보드‘ 또는 ‘대화형으로 데이터를 시각화‘하기 위한 ‘BI도구’등이 있다. - BI 도구를 사용하고 싶을때에는 보고싶은 데이터를 한 곳에 모으는 ‘데이터 마트’를 구축해야한다. 3. 데이터 마트 - 데이터 마트를 ..

Data Engineering/빅데이터를 지탱하는 기술

[빅데이터를 지탱하는 기술] 빅데이터 기초 지식

1. 빅데이터의 역사와 주변 기술 - 2011년까지 Hadoop과 NoSQL 'DB 분산시스템 기술'이 확립되어 기존의 '데이터웨어하우스'를 보완, 대체하기 시작했다. 그리고 이것이 현재 ’빅데이터‘라는 이름으로 비즈니스화 되었다. 2. 빅데이터 기술 - '클라우드 서비스' 및 'BI 도구'의 보급으로 지난 몇 년동안 빅데이터 기술은 대단히 친밀한 것이 되었다. 이것은 실제로 '여러 기술의 집합체'이며, '데이터 수집'에서 '쿼리엔진', '워크플로 관리'에 이르기까지 다양한 옵션이 제공된다. 사용자는 입맛에 따라 그 중에서 자신에게 필요한 기술을 선택하면 된다. 3. 빅데이터 스토리지 - 빅데이터는 다양한 데이터가 취급되기 때문에, 그것을 축적하는 스토리지를 ‘데이터 레이크’라고 부른다. 축적된 데이터는..

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

[5주차] Airflow Deepdive 2 -Backfill과 Airflow

관리하는 데이터 파이프라인의 수가 늘어나면 이 중의 몇은 항상 실패하게 되며 이를 어떻게 관리하느냐가 데이터 엔지니어의 삶에 큰 영향을 준다. start_date과 execution_date Incremental Update가 실패하면? 하루에 한번 동작하고 Incremental하게 업데이트하는 파이프라인이라면? 실패한 부분을 재실행하는 것이 중요하다. Incremental Update ● Incremental Update란 ? ○ 새로운 데이터를 전체 데이터 세트에 다시 처리하는 대신 변경된 데이터만 처리하여 데이터 저장 및 관리를 최적화하는 방법 ● 다시 한번 가능하면 Full Refresh를 사용하는 것이 좋음 ○ 문제가 생겨도 다시 실행하면 됨 ● Incremental Update는 효율성이 더 ..

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

[5주차] Airflow Deepdive 2 - API를 사용해서 DAG 만들어보기

Open Weathermap DAG 구현하기, API를 사용해서 DAG를 만들어보자 Open Weathermap API 소개 ● 위도/경도를 기반으로 그 지역의 기후 정보를 알려주는 서비스 ● 무료 계정으로 api key를 받아서 이를 호출시에 사용 ○ https://openweathermap.org/price Pricing - OpenWeatherMap Get weather data for any location on the globe immediately with our superb API! Just subscribe with your email and start using minute forecasts, hourly forecasts, history and other weather data in y..

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

[4주차] Airflow Deepdive - Airflow로 데이터 파이프라인 만들기 (2)

Name Gender DAG 개선하기, 구글 Colab으로 만든 DAG를 Airflow로 4가지 버전으로 만들면서 Airflow의 기능을 이해해 보자 Python 코드를 Airflow로 포팅하기 NameGenderCSVtoRedshift.py from airflow import DAG from airflow.operators.python import PythonOperator from datetime import datetime import requests import logging import psycopg2 def get_Redshift_connection(): host = "#####.redshift.amazonaws.com" user = "#####" # 본인 ID 사용 password = "##..

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

[4주차] Airflow Deepdive - Airflow로 데이터 파이프라인 만들기 (1)

Hello World 예제 프로그램, Hello World 살펴보기 프로그램을 설명하고 Web UI와 터미널에서 실행해 보자 ● 2개의 태스크로 구성된 데이터 파이프라인 (DAG) ○ print_hello: PythonOperator로 구성되어 있으며 먼저 실행 ○ print_goodbye: PythonOperator로 구성되어 있으며 두번째로 실행 dag = DAG( dag_id = "helloWorld", start_date = datetime(2022,6,15), catchup=False, tags=['example'], schedule = '0 2 * * *', default_args=default_args ) Operators - PythonOperator ● Airflow Python Oper..

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

[4주차] 데이터베이스 트랜잭션

트랜잭션 이해하기, DB를 사용한다면 꼭 알아야하는 트랜잭션에 대해 이해해보자 트랜잭션이란? ● Atomic하게 실행되어야 하는 SQL들을 묶어서 하나의 작업처럼 처리하는 방법 ○ https://postgresql.kr/docs/9.2/tutorial-transactions.html ○ BEGIN과 END 혹은 BEGIN과 COMMIT 사이에 해당 SQL들을 사용 ○ ROLLBACK ● Transaction Isolation Level: “Read Committed”가 디폴트 세팅 트랜잭션 구현방법 (1) ● 두 가지 종류의 트랜잭션이 존재 ○ 레코드 변경을 바로 반영하는지 여부. autocommit이라는 파라미터로 조절가능 ● autocommit=True ○ 기본적으로 모든 SQL statement가 ..

달려라 국나뇽
'Data Engineering' 카테고리의 글 목록