전체보기
-
Spark JAR에 대해 연구해보자... 너는 무엇을 하는 아이니개발지식 아카이브/Data - Spark 2024. 12. 12. 15:02
저는 스프링 백엔드 개발자로 커리어를 시작해서 6년차에 MLOps 엔지니어로 커리어 체인지를 했습니다. 그리고 8년차에는 데이터 플랫폼 엔지니어로 이직을 했습니다. 하........ 옮겨다닐때마다 아가가 되는 기분... 특히 요즘은 부족함을 매일 매일 느껴요....ㅠ응애응애 하루에 한 개씩 배우다보면 저도 언젠간....... 잘하게 되겠죠..?!배우는것에서 멈추지 않고 포스팅 기록으로 남겨서 잊어버리지 않게 합시다! 오늘은 Spark JAR 관련 트러블슈팅한 것을 계기로 Spark JAR에 대한 포스팅을 작성합니다. Spark JAR는 Apache Spark 애플리케이션을 실행하기 위해 필요한 자바 아카이브(Java Archive) 파일입니다. Spark 애플리케이션의 코드를 배포하고 실행 환경에..
-
데이터 레이크하우스 아키텍처개발지식 아카이브/Data - ETC 2024. 12. 10. 16:33
데이터 레이크하우스 아키텍처를 이해하려면 먼저 데이터 레이크, 데이터 웨어하우스에 대해서도 알아야한다. 데이터 레이크 vs 데이터 웨어하우스 vs 데이터 레이크하우스데이터 레이크와 데이터 웨어하우스의 장점을 결합한 것이 발전된 방향의 데이터 레이크하우스!! ACID 트랜잭션, 오픈 포맷 기반, 저렴한 운영 비용... 데이터 레이크기술 스택저장소:Amazon S3, Azure Data Lake Storage (ADLS), Google Cloud Storage (GCS).온프레미스 환경에서는 Hadoop Distributed File System (HDFS) 사용. 파일 포맷:Apache Parquet, ORC, Avro (열지향 포맷 추천). 데이터 처리:Apache Spark, Apache Flink,..
-
[MongoDB] 컬렉션에서 컬럼 데이터를 삭제해도 공간이 반환되진 않는다는게 무슨 말일까?개발지식 아카이브/Database 2024. 12. 10. 16:19
MongoDB 컬렉션에서 컬럼(필드) 데이터를 삭제해도 공간이 반환되지 않는다는 것은 다음을 의미합니다:MongoDB는 데이터를 저장할 때 document의 크기와 함께 파일 시스템의 물리적 공간을 할당합니다. 만약 특정 필드(컬럼)를 document에서 삭제하더라도, 해당 필드가 차지했던 공간이 자동으로 반환되거나 줄어들지 않습니다. 대신, 삭제된 필드의 공간은 내부적으로 채워지지 않은 빈 공간으로 남게 되고, 이후 document가 업데이트되거나 데이터가 추가될 때 재사용될 수 있습니다.이 동작은 MongoDB의 WiredTiger 스토리지 엔진이 document 크기가 증가하거나 감소하는 경우 효율적인 관리를 위해 설계된 방식 때문입니다. 왜 공간이 반환되지 않을까?1. 파일 단위의 저장 구조 ..
-
[Kafka] 카프카의 실전 서비스 운영개발지식 아카이브/Data - Kafka 2024. 9. 18. 10:22
2020.02.15 - [[IT] 공부하는 개발자/Open Source] - [Kafka] 카프카란? 개념과 디자인 [Kafka] 카프카란? 개념과 디자인차례 카프카란 카프카의 특징 카프카 데이터 모델 카프카 리플리케이션 카프카란 카프카는 서비스간에 메시지 통신을 제공하는, 메시지 큐 서비스이다. 실 서비스에서 언제 메시지 통신이 요구gem1n1.tistory.com 최근에 카프카 관련 장애를 겪고 나서, 내가 정말 수박 겉핥기로 카프카를 알고 있었다는 걸 깨닫게 되었다. 그래서 조금 더 공부해서 위의 포스팅에 이어서 2편을 쓴다. 카프카 운영 옵션클라이언트 공통 옵션metadata.max.age.ms- 클라이언트가 브로커로부터 토픽에 대한 메타데이터를 받아와 새로고침하는 시간 - default는 ..
-
[Hive] 하이브 핵심정리개발지식 아카이브/Data - ETC 2023. 10. 19. 19:30
하이브 개요하이브는 하둡의 HDFS 데이터를 SQL로 질의할 수 있게 해주는 Hadoop 생태계의 일원이다. 하이브는 테이블(Table), 파티션(Partition), 버킷(Bucket) 세 개의 구조로 분할될 수 있다. 테이블을 HDFS 디렉토리에 대응시키고, 이를 파티션으로 분할 후 파티션을 버킷으로 차례차례 나눌 수 있다. 하이브의 장점하이브의 HQL은 SQL과 문법이 비슷하다.하이브는 여러 컴퓨팅 프레임워크에서 동작할 수 있다. (MapReduce, Spark, ...)하이브는 HDFS 데이터에 Ad-hoc 질의를 할 수 있다.하이브는 UDF, 사용자 정의 I/O 포맷을 지원한다. 하이브의 구조테이블테이블 = 디렉토리에 맵핑된다고 생각하면 된다.하이브에서 salary 테이블을 생성하면 HDFS..
-
[Auth] oAuth2 proxy + Okta 연동하기 예제개발지식 아카이브/ETC 2023. 6. 11. 14:47
Oauth2 proxy 란? 백엔드 서비스에 대한 인증 및 권한 부여를 처리하는 중간 프록시 서버 OAuth 2.0 인증을 사용한다. 어떤 역할을 수행할까요? - 사용자 인증 - Provider 에 요청해 액세스 토큰을 발급 아키텍처 AS-IS: 사용자에게서 들어온 요청을 바로 업스트림(실제 서비스)으로 보낸다 TO-BE: 사용자에게서 들어온 요청은 업스트림으로 가기 전에 OAuth2 reverse proxy를 거친다. (중간에 Nginx를 한 번 더 거쳐도 되고, 거치지 않아도 된다.) 리버스 프록시 서버는 요청이 액세스 토큰을 가지고 있다면 업스트림으로 패스시켜 주고, 액세스 토큰이 없다면 Auth provider를 호출해 유저의 접근 여부를 확인, 액세스 토큰을 발급받아 유저에게 부여한다. Flow..
-
Zeppelin 과 Notebook 비교, 어떤 것을 고를까?개발지식 아카이브/Data - ETC 2023. 5. 18. 08:52
Zeppelin 은 데이터 분석과 시각화를 위한 인터랙티브한 환경을 제공하는 Web Notebook 기반의 오픈 소스 프로젝트 Zeppelin을 쓰는 이유 인터랙티브한 환경 실시간으로 코드를 실행하고 결과를 확인할 수 있는 대화형 환경 -> 분석의 효율성 다중 언어 지원 다양한 언어로 코드를 작성하고 실행할 수 있음 -> 사용자가 선호하는 언어 선택 가능 ex) HDFS에 접근하고자 할 때에 상황에 맞게 Hive query 를 작성할 수도, Presto query를 작성할 수도 있다. Python, Scala등의 다양한 언어를 섞어가며 분석 코드를 짤 수 있고, Spark, Cassandra 등 다양한 분석 도구에도 붙을 수 있다. 시각화 기능 데이터 시각화를 위한 다양한 도구와 라이브러리를 지원하여 결..
-
[Terraform] 테라폼이란? 테라폼으로 인프라 구성하기개발지식 아카이브/ETC 2023. 4. 23. 20:40
최근에 운영에서 AWS k8s 클러스터 셋업을 하면서... ALB, IAM 등을 테라폼으로 만들었는데 정말 편리하더라고요 인간은 이렇게 계속해서 대체되어 가는군요..ㅠㅋㅋㅋ 자동화의 물결을 피할 수가 없어요... 테라폼이란? 테라폼은 인프라를 코드로 관리할 수 있는 도구 테라폼을 쓰는 이유 1. 인프라를 코드로 관리할 수 있음 -> 자동화 가능! 테라폼을 사용하면 인프라를 코드로 관리할 수 있습니다. 이를 통해 서버나 네트워크 등의 인프라를 쉽게 생성, 수정, 삭제할 수 있습니다. 또한, 코드로 관리하므로 변경 이력도 추적할 수 있습니다. 코드로 관리하기 때문에 인프라를 자동으로 생성할 수 있습니다. 자동화를 통해 Human error를 줄일 수 있습니다. 2. 다양한 클라우드 서비스 지원 테라폼은 AW..