[IT] 공부하는 개발자/Data engineering
-
[Hive] 하이브 핵심정리[IT] 공부하는 개발자/Data engineering 2023. 10. 19. 19:30
하이브 개요 하이브는 하둡의 HDFS 데이터를 SQL로 질의할 수 있게 해주는 Hadoop 생태계의 일원이다. 하이브는 테이블(Table), 파티션(Partition), 버킷(Bucket) 세 개의 구조로 분할될 수 있다. 테이블을 HDFS 디렉토리에 대응시키고, 이를 파티션으로 분할 후 파티션을 버킷으로 차례차례 나눌 수 있다. 하이브의 장점 하이브의 HQL은 SQL과 문법이 비슷하다. 하이브는 여러 컴퓨팅 프레임워크에서 동작할 수 있다. (MapReduce, Spark, ...) 하이브는 HDFS 데이터에 Ad-hoc 질의를 할 수 있다. 하이브는 UDF, 사용자 정의 I/O 포맷을 지원한다. 하이브의 구조 테이블 테이블 = 디렉토리에 맵핑된다고 생각하면 된다. 하이브에서 salary 테이블을 생성하..
-
Zeppelin 과 Notebook 비교, 어떤 것을 고를까?[IT] 공부하는 개발자/Data engineering 2023. 5. 18. 08:52
Zeppelin 은 데이터 분석과 시각화를 위한 인터랙티브한 환경을 제공하는 Web Notebook 기반의 오픈 소스 프로젝트 Zeppelin을 쓰는 이유 인터랙티브한 환경 실시간으로 코드를 실행하고 결과를 확인할 수 있는 대화형 환경 -> 분석의 효율성 다중 언어 지원 다양한 언어로 코드를 작성하고 실행할 수 있음 -> 사용자가 선호하는 언어 선택 가능 ex) HDFS에 접근하고자 할 때에 상황에 맞게 Hive query 를 작성할 수도, Presto query를 작성할 수도 있다. Python, Scala등의 다양한 언어를 섞어가며 분석 코드를 짤 수 있고, Spark, Cassandra 등 다양한 분석 도구에도 붙을 수 있다. 시각화 기능 데이터 시각화를 위한 다양한 도구와 라이브러리를 지원하여 결..
-
[Streamlit] 설치 단계에서 발생한 이슈와 해결방법 정리[IT] 공부하는 개발자/Data engineering 2023. 4. 16. 02:11
Streamlit 이란?데이터 시각화를 지원하는 웹 애플리케이션 개발을 위한 파이썬 기반 오픈소스 라이브러리 왜 Streamlit을 써야 할까?1. 쉬움 Data scientist 들이 가장 편하게 느끼는 파이썬 언어로 작성되어 있어서 러닝 커브가 적다. 2. 시각화 지원 시각화를 지원하는 프론트엔드 라이브러리가 많지 않은데, Streamlit 은 다양하고 많은 시각화 라이브러리를 지원해서 차트, 그래프를 높은 자유도로 만들 수 있다. 3. 반응형 웹 반응형 웹을 내부적으로 구현해 주므로 개발 비용을 절약할 수 있다. 4. 비교군 중 가장 인기가 많은 시각화 오픈소스 Github contribution 을 기준으로 비교해 보면 비슷한 오픈소스인 Panel 보다 7배 이상 contribution 이 많다...
-
스파크 - 성능 최적화하기, 리팩토링 practice[IT] 공부하는 개발자/Data engineering 2023. 2. 26. 19:52
스파크 분산 데이터 컬렉션 스파크에서 발생할 수 있는 성능 저하 이슈, 성능 개선 방법에 대해 정리해 보았다. 데이터 콜렉션의 비교 DataFrame과 Dataset 스파크는 데이터를 쪼개서 여러 개의 Executor nodes에 분산저장한다. 이것이 가능하려면 데이터는 분산 데이터 콜렉션에 저장되어 있어야 하는데, 스파크에서 사용되는 분산 콜렉션 API는 다음 세 가지이다. - DataFrame - Dataset - SQL 테이블, 뷰 유형 DataFrame Dataset 데이터 타입 검증 시기 런타임에서 확인 컴파일 타임에 확인 지원 모두 지원 JVM 기반의 언어인 스칼라, 자바에서만 지원 Row 접근 Row 타입을 직렬화된 바이너리 구조로 변환 스파크의 최적화된 내부 포맷: 일반적으로 가장 빠름 R..
-
스파크는 무엇이고 왜 쓰는지? 스파크에 대해 알아보기[IT] 공부하는 개발자/Data engineering 2023. 2. 26. 19:01
스파크는 무엇인가요? 기존의 애플리케이션들은 단일 프로세서에서만 실행되도록 설계되었다. 문제는 시대가 바뀌면서 데이터의 양은 기하급수적으로 늘어났지만, 물리적인 방열 한계 때문에 하드웨어의 성능 향상은 멈췄다는 것이다. 그래서 개발자들은 단일 프로세서의 성능을 향상하는 방법 대신 CPU 코어를 병렬로 더 많이 추가하는 방법을 선택했다. 지금도 데이터는 나날이 거대해져 가고 있고, 마침내 컴퓨터 한 대로는 도저히 처리할 수 없을만큼 거대해졌다. 스파크는 이 문제를 해결하기 위해 등장한 데이터 병렬 처리 오픈 소스 라이브러리 엔진이다. 스파크를 사용하면 클러스터 환경에서 데이터를 병렬로 처리할 수 있다. 단일 노트북 환경에서 실행할 수도 있지만, 수천 대의 서버로 구성된 엄청난 규모의 클러스터에서 실행할 수..
-
[R 회귀분석 예제] 야구선수 연봉에 영향을 미치는 요인 (Linear Regression)[IT] 공부하는 개발자/Data engineering 2020. 6. 21. 11:19
목표 어떤 요소가 야구선수의 연봉에 영향을 미칠까 ? 목차 1. 데이터 분석 2. 데이터 클리닝 3. 변수 선택 3.1 Approaches 3.2 The Best Subset Approach 3.3 Stepwise Approach 과정 1. 데이터 분석 install.packages("ISLR") library(ISLR) dim(Hitters) head(Hitters) summary(Hitters) 야구선수들의 스펙정보와 연봉정보를 제공하는 통계 패키지 ISLR을 이용합니다. 패키지를 설치 후, 임포트해줍니다. 총 263개의 샘플에 20개의 예측 변수를 가진 데이터입니다. 샘플 몇 개를 볼까요. 결과에 영향을 미칠것이라고 가정하고 있는 예측 변수(Predictor Variables)들을 먼저 보면, Le..
-
[쉽게 설명하는 머신러닝] 머신러닝 문제 정의, 알고리즘 선택 방법[IT] 공부하는 개발자/Data engineering 2019. 5. 26. 16:39
이전 포스팅 2019/05/25 - [[IT] 공부하는 개발자/Machine Learning] - [쉽게 설명하는 머신러닝] 개념 정리 [쉽게 설명하는 머신러닝] 개념 정리 머신러닝 개념정리 1. 기계학습이란 2. 인간의 경험학습 3. 기계의 경험 학습 4. 학습시 고려할 것 4.1 데이터 4.2 알고리즘 1. 기계학습이란? 머신러닝이란, 말 그대로 기계를 학습시켜(Machine Lear gem1n1.tistory.com 이전 포스팅에서 예측력이 좋은 모델을 개발하기 위해서는 데이터만큼이나 알고리즘의 선택이 중요하다고 이야기했었다. 이번 포스팅에서는 머신러닝 문제를 정의하고, 그에 따라 알고리즘을 선택하는 방법에 대해 알아볼 것이다. 목차 1. 머신러닝 문제 정의 1.1 지도학습 1.2 비지도학습 1.3..
-
[쉽게 설명하는 머신러닝] 개념 정리[IT] 공부하는 개발자/Data engineering 2019. 5. 25. 20:57
머신러닝 개념정리 1. 기계학습이란 2. 인간의 경험학습 3. 기계의 경험 학습 4. 학습시 고려할 것 4.1 데이터 4.2 알고리즘 1. 기계학습이란? 머신러닝이란, 말 그대로 기계를 학습시켜(Machine Learning), 의사결정을 할 수 있게 하는 것이다(Decision Making). 기계의 학습에 대해 논하기 전에, 먼저 인간의 학습에 대해 생각해보자. 2. 인간의 경험학습 지금부터 당신의 '강아지vs고양이 분별 모델'의 성능을 체크해 볼것이다. Q1. 아래에 동물 사진 3장이 있다. 강아지는 몇 마리, 고양이는 몇 마리인가? 정답은 강아지 2마리, 고양이 1마리이다. 순서대로 강아지, 고양이, 강아지다. 당신은 아마 100% 정답을 맞췄을 것이다. 그런데, 당신은 어떻게 1번이 강아지이고,..