데이터 엔지니어링
-
[HIVE]HIVE란? 1부 - 소개 및 버전별 특징데이터 엔지니어링/Hive 2022. 9. 18. 16:53
Hive란? 하둡 에코시스템 중에 데이터를 모델링하고 프로세싱하는 데이터 웨어하우징용 솔루션 SQL 유사 언어인 HQL을 도입하여 쿼리를 날려 데이터 조회 및 조작을 할 수 있다. Catalog를 제공하여 RDB 데이터베이스 처럼 조작 가능하다. 메타스토어를 조작할 수 있다 메타스토어가 존재 RDB와는 다르게 미리 스키마를 정의하고 그 틀에 맞게 데이터를 입력하는 것이 아닌, 데이터를 저장하고 거기에 스키마를 입히는 것이 가장 큰 특징 Hue와 연계하여 ADD-hoc 쿼리를 실행 시킬 수 있다. HIVE 구성요소 UI - 사용자가 쿼리 및 기타 작업을 시스템에 제출하는 사용자 인터페이스 (ex : CLI, Beeline, JDBC 등) Driver -쿼리를 입력받고 작업을 처리, 사용자 세션을 구현하고,..
-
[Airflow] hook이란? (hook을 사용하여 mysql to csv 패턴 실습)데이터 엔지니어링/AirFlow 2022. 9. 4. 21:38
Hook이란? Hook이란? 미리 정의 된 것이 아니라 커스텀하게 로직을 구현하고 싶을 때나 외부 시스템의 푸시 작업 흐름을 만들고 싶을 때도 사용한다. 보통pythonOperator로 작업을 실행 시키고 python 함수 코드 안에서 다른 로직을 쉽게 구현할 수 있게 해주기 위해 사용한다. pip로 다른 플러그인을 다운받아 사용도 하여 굳이 hook을 사용할 필요는 없다. 그냥 쉽게 접근이 가능하게 하는 용도 외에는 없는 것 같다. Mysql 커넥터 만들기 실습을 위해 커넥터 먼저 만들자 mysql 깔려 있다고 가정하고 하는 것이다. + 버튼을 눌러 커넥터 만들기 Provider 설치 apache-airflow-providers-mysql — apache-airflow-providers-mysql Do..
-
[Airflow] airflow설치 방법(with ubuntu, mysql)데이터 엔지니어링/AirFlow 2022. 9. 4. 17:51
mysql 설치 # 시스템 업그레이드 sudo apt update && sudo apt upgrade -y # mysql 서버 설치 sudo apt-get install -y mysql-server # mysql enble 설정 sudo systemctl enable mysql # mysql 서버 sudo systemctl status mysql ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset:> Active: active (running) since Sun 2022-09-04 16:05:53 KST; 5s ago Main PID: 3169 (mys..
-
[Airflow]Catch up, Backfill 알아보기데이터 엔지니어링/AirFlow 2022. 9. 4. 14:04
Airflow를 운용하다 보면, 재실행을 하거나 현재 시점 보다 과거의 배치 작업을 주기적으로 진행을 해야하거나, 실행을 했더라도 특정 조건으로 해당하는(실패나, 건너뜀 등)을 골라내서 재실행 하고 싶을 때가 있다. 바로 작업을 주기적으로 하는 관점이기 때문인데 이번 포스팅에서는 이런 작업들을 airflow에서는 어떻게 관리하고 다시 재 작업을 할 수 있을지 알아볼려고 한다. Catch Up python 코드로 DAG를 작성할 때 Dag 속성 안에 Catch up이라는 인수를 둘수 있다. 기본적으로 false가 되어있고, True로 주게 되면 Catch up이 활성화 되게 된다. with DAG( dag_id="example_dag", start_date=datetime(2021, 10, 9), max_..
-
[Embulk] yml 파일 작성 형식 알아보기 Liquid template 이용하여 yml 파일안에서 변수 사용하기데이터 엔지니어링/Embulk 2022. 8. 30. 22:30
안녕하세요 까치입니다. 회사에서 Embulk를 이용하여 데이터를 s3에 올리는 작업을 하고 있는데 s3에 날짜 별로 폴더를 만들 수 있는지 공부 중에 있었습니다. 방법은 찾았는데 전체적으로 Embulk에서 yml파일을 작성하는 법과 변수를 만들어 사용하는 법 파일을 모듈로 작성하여 사용하는 법에 대해 알아 보려고 합니다. 홈페이지 참조하기 Embulk 공식 홈페이지에 yml파일을 작성하는 방법에 대해 나와있습니다. 아래의 주소로 들어가서 확인 이 가능합니다. 내용을 간략히 살펴 보면 Embulk: Configuration Embulk configuration file format Embulk uses a YAML file to define a bulk data loading. Here is an exam..
-
[RabbitMQ] RabbitMQ 설치하기(with centos7)데이터 엔지니어링/RabbitMQ 2022. 8. 23. 20:49
기본 패키지 다운로드 RabbitMQ 를 설치 하려면 eple(Extra Packages of Enterprise Linux) 설치가 필요하다. RabbitMQ는 erlang으로 작성 되어있어 erlang도 다운받아야 한다. yum -y upgrade # eple(Extra Packages of Enterprise Linux) 설치 yum install -y epel-release wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm # rabbitMQ는 erlang 으로 작성되어있어 erlang 다운로드 yum install -y er..
-
[RabbitMQ] RabbitMQ와 Kafka의 차이점에 대해 알아보기, 선택 가이드라인 정하기데이터 엔지니어링/RabbitMQ 2022. 8. 23. 20:46
Kafka란? 오픈 소스 분산 이벤트 스트리밍 플랫폼. java와 scala로 작성하여 스트림처리 와 pub/sub 메세지 버스 역할 을 한다. 풀 기반 접근 방식을 이용함 더 높은 처리량과 효과적인 메시지 전달을 위해 메세지 일관 처리 활용 java언어로 작성되었으며 생태계가 넓어 사용하기 좋음 복잡한 라우팅에 의존하는 것이 아니라 이벤트 소싱, 스트림 처리 및 이벤트 시쿼스로 시스템 모델링 변경을 수행하는데 이상적 다단계 파이프라인에서 데이터 처리하는데에 적합 실시간 데이터 분석 및 스트림 처리에서 활용성이 높음 RabbitMQ 라우팅 시스템을 지원하여 복잡한 라우팅 시나리오에서 효율적으로 메시지 전달을 용이하게 하는 오픈 소스 분산 메시지 브로커 푸시 기반으로 대기열 기반 아키텍처와도 잘 작동 메세..
-
[RabbitMQ] RabbitMQ란?데이터 엔지니어링/RabbitMQ 2022. 8. 23. 20:39
RabbiMQ란? rabbitMQ는 AMQP를 따르는 오픈소스 메시지 프로커 프로젝트이다. 메시지 브로커라고 불리며, 메세지를 많은 사용자에게 전달하거나, 요청에 대한 처리 시간이 길 때, 요청을 다른 API에게 위임하고 빠른 응답을 할 때 많이 사용한다. RabbitMQ vs Kafka 대표적으로 메시지 전달 역할을 하는 것 중에 RabbitMq와 Kafka를 주로 언급이 되는데, RabbitMQ는 메시지 브로커이다. 메시지 브로커는 메시지를 전달하고 받으면 메시지를 보관하지 않고 삭제 된다. 그리고 많은 용량을 처리하지 못하지만 다양한 형태의 메시지 라우팅을 RabbitMQ 브로커 안에서 구성 할 수 있다. Kafka는 이벤트 브로커라고 하며, 메시지가 전달되었을 때 메시지를 정책 단위(30일까지보관..