본문 바로가기

ETL4

ETL, ELT의 4가지 주요 차이점 내가 생각하는 머신러닝, 데이터 엔지니어링/사이언스 분야에서의 가장 중요한 단계는 ETL이다. ETL은 정답이 없고 가장 많은 시간이 소요되기도 하고, 가장 많은 실수가 일어나기도 하며, 개발자의 통찰력에 따라 최종 결과물이 크게 좌우되기도 한다. 이렇게 중요한 ETL이 슬슬 ELT방식으로 변화하고 있다. 이번 글에서는 ETL과 ELT의 정의 및 주요 차이점과 방식의 변화가 생기는 이유 등을 정리해보고자 한다. * 이 글에서 설명되는 ETL와 ELT는 각각 ETL 프로세스, ELT 프로세스와 동일한 의미를 가진다. E, T, L 이란? ETL / ELT은 모두 다음 세 가지 단계를 포함한다. E/Extract(추출) : 원본 데이터베이스 또는 데이터 소스에서 데이터를 가져오는 것을 말한다. ETL을 사용.. 2021. 4. 26.
Apache Spark - Master, Slave 구성 별 메모리, 코어 수 설정하기 AWS EMR을 이용해 Apache Spark를 실행할 때 마스터와 슬레이브 수에 따라 적절한 메모리, 코어수를 구하는 Cheatsheet을 사용하고 있다.(무려 5년이나 된 자료이다.) 아직까지 이걸 사용하고 있는 이유는 더 좋은 계산식을 찾는 것도 힘들뿐더러 데이터 특성마다 적절한 메모리, 코어 분배수는 달라지기에 차라리 ETL을 진행하면서 Ganglia로 모니터링 후 조금씩 튜닝하는 게 시간적으로 효율이 더 좋다는 생각.(대충 귀찮다는 뜻) 사용법 1. 노드, 코어수, 메모리 등 자원 입력 1. 하단에 Clsuter Mode와 Client Mode 중 본인이 사용하는 모드를 클릭. 나는 클러스터 모드를 사용한다. 2. 좌측 초록색 셀에 슬레이브 노드수, 노드당 메모리, 노드당 코어수를 적는다 3. .. 2021. 3. 9.
AWS EMR에서 매번 같은 버전의 아나콘다 사용하기 AWS EMR을 통해 ETL을 매번 작업하다 보면 콘다 버전이 꼬이는 경우가 있는데 그럴 경우 아나콘다 설치 파일을 s3에 저장해놓고 EMR 실행 시 부트스트랩 코드를 통해 설치해주면 된다. 내가 주로 쓰는 부트스트랩 코드는 다음 두가지다. #!/bin/bash # echo "Updating Anaconda (findspark, boto3)..." >> ~/install.log; echo `date` >> ~/install.log #/mnt/anaconda/bin/conda install -c pyspark -y /mnt/anaconda/bin/conda install -c conda-forge findspark -y /mnt/anaconda/bin/conda install libgcc=5.2.0 -y .. 2021. 3. 9.
Apache Spark 3.0 변경점/변화 총 정리 Apache Spark 3.0에서 바뀐 기능 정리 기능, ANSI SQL Compliance, Store Assignment 정책, query semantics 업데이트 등 Apache Spark 3.0이 배포된지는 몇 달이 되었는데, 최근에 ETL 작업을 하지 않아서 따로 챙겨보진 못했다. 이번 업데이트에서는 Spark SQL에서 눈여겨 볼만한 기능들이 많이 추가된 것 같다. 특히 Spark SQL 개발자들에게 유용한 기능들이 많이 추가되었다. 사용할 일이 생겼으니, 주요한 변화를 정리를 해보자. ANSI SQL Compliant Feature 일부 예약된 키워드를 식별자로 사용할 수 없게 된다. select * from some_table create where create.some_column = .. 2020. 9. 10.