전체 글

기록합시다.
DATA

[DATA] Spark ETL

Spark는 대규모 데이터 처리를 위한 분산 컴퓨팅 시스템입니다. 원래 UC 버클리의 연구자 팀에 의해 개발되었으며, Hadoop의 MapReduce보다 빠르고 유연한 데이터 처리 기능을 제공합니다. Spark는 메모리 내에서 데이터를 처리하기 때문에, 디스크 기반의 처리보다 훨씬 빠른 성능을 자랑합니다. 또한, 다양한 언어(Scala, Java, Python, R)를 지원하여 개발자들이 쉽게 접근할 수 있도록 하고 있습니다.### Spark로 ETL을 해야 하는 이유Python이나 Pandas, Polars와 같은 도구들도 ETL 작업에 많이 사용되지만, Spark는 대규모 데이터 처리에 최적화되어 있습니다. 특히, 데이터의 양이 많아질수록 Spark의 성능이 더욱 두드러집니다. Spark는 클러스터 ..

DATA

[DATA] Spark Shuffle

Spark에서 Shuffle은 데이터 처리의 중요한 개념입니다. Shuffle이란 데이터의 재분배를 의미하며, 주로 Wide Transformation에서 발생합니다. Wide Transformation은 데이터의 구조를 변경하는 연산으로, 예를 들어 `groupByKey`와 `reduceByKey`가 있습니다. 이 두 연산은 데이터의 재구성을 필요로 하며, 이 과정에서 Shuffle이 발생합니다. `groupByKey`는 모든 데이터를 한 곳으로 모으는 방식으로, 데이터의 양이 많을 경우 성능 저하를 초래할 수 있습니다. 반면, `reduceByKey`는 데이터를 미리 로컬에서 합친 후 Shuffle을 수행하기 때문에 더 효율적입니다. 이러한 차이로 인해, 데이터 처리 시 어떤 연산을 선택하는지가 성능..

DATA

[DATA] Apache iceberg

Hive and Iceberg Quickstart - Apache Iceberg™Hive This guide will get you up and running with Apache Iceberg™ using Apache Hive™, including sample code to highlight some powerful features. You can learn more about Iceberg's Hive runtime by checking out the Hive section. Docker Images The fastesticeberg.apache.org    Iceberg?데이터 버전 관리: Apache Iceberg는 사용자가 시간 경과에 따른 데이터의 변경 내용을 추적할 수 있는 데이터 버전 관리..

DATA

[DATA] Apache Hive

https://hive.apache.org/ Apache HiveApache Hive is a distributed, fault-tolerant data warehouse system that enables analytics at a massive scale. Hive Metastore(HMS) provides a central repository of metadata that can easily be analyzed to make informed, data driven decisions, and therefore ihive.apache.org   HIVE? 대규모 데이터 세트를 SQL과 유사한 쿼리 언어인 HiveQL을 사용하여 처리하고 분석할 수 있도록 설계된 데이터 웨어하우스 인프라 Hadoop 에..

ERROR

[ERROR] Datagrip bug

merge 문이 안써진다    intellij 24 1 - ultimate 버전을 돈내고 쓰는데  여기 붙어있는 datagrip은  무료인 디비버 커뮤니티 툴보다 못한 성능을 보여준다.    https://youtrack.jetbrains.com/issue/DBE-12911 Vertica Dialect shows syntax error with MERGE using subquery : DBE-12911What steps will reproduce the problem? 1. set dialect to Vertica 2. start typing the following sample query MERGE INTO destination d USING (SELECT 'whatever' as whatever) a..

PYTHON

[Python] Pandas vs Dask

작업 시에, dask 키워드와 pandas 키워드가 다른 경우,다른 동작하는 경우로 인해 메모리에 미리 올리던지 나중에 올리던지 오류가 참 많았음. dask를 적용할지 안할지 아직도 잘 모르지만. 헷갈리거나 다른 동작, 오류들은 정리해야 할 필요가 있음.  결론부터 원한다면 : https://www.shiksha.com/online-courses/articles/pandas-vs-dask/#dask 에서 참고 할 것.  Pandasinstall Python version supportOfficially Python 3.9, 3.10, 3.11 and 3.12.Installing from PyPIpandas can be installed via pip from PyPI.$ pip install pandas..

DB

[DB] Decode vs Case when

Decode decode(target_col,null,null,0,0,coalesce(target_col2 / target_col, 0)) Case whencase when target_col1 IS NULL then null when target_col1 = 0 then 0 when (target_col1 is null and target_col1 != 0) then coalesce(target_col2 / target_col1,0) ELSE ....  1. 대규모 데이터 및 복잡한 쿼리인 경우 Case when의 속도가 더 빠름.2. Case 문은 statement 이고 decode 는 func에 해당한다. 3. Case 는 sql / pl/sql 모두 쓰이나, deco..

SERVER

linux Screen 사용법

Screen? ?linux 터미널 상에서 독립적으로 동작하는 가상 터미널이 필요한경우가 있다. 백그라운드에서 돌리고 다른 화면을 보고 싶을 경우 스크린 기능을 쓴다. Install$ yum install screen  $ apt-get install screen 명령어스크린 진입 $ screen -S $ Ctrl+a, d : 현재 스크린으로부터 탈출(Deattach). (스크린은 꺼지지 않고 여전히 동작 중)$ Ctrl+a, c : 스크린에서 새창 띄우기$ Ctrl+a, 숫자 : 해당 번호의 스크린으로 이동$ Ctrl+a, n : 다음 창으로 이동 (Ctrl+a, space와 동일)$ Ctrl+a, p : 이전 창으로 이동 (Ctrl+a, Backspace와 동일) 스크린 재진입$ screen -R [n..

TIPS

MAC ssh 연결 끊길 때

로컬 설정 수정 방법 $ vi ~/.ssh/config ServerAliveInterval 60 ServerAliveCountMax 60 와 같이 작성한다 ( 60초 간격으로 60번 수행한다는 설정)

DB

[DB] SELECT Query VS VIEW

https://stackoverflow.com/questions/22038570/select-query-vs-view Select Query VS View Generally we are aggregating transaction data to one table using SQL Job periodically. Now the customer needs live data so 1 hour or hour is too high. Instead of running job in minutes, team sugges... stackoverflow.com SELECT VIEW 와 SELECT TABLE 의 속도 차이 때문에. 회사에서 개발할 때에 처음에 view에 대한 정확한 이해 없이 접근 - 왜 뷰는 속도가 안날까..

girin_dev
girin_dev