본문 바로가기

[udemy - Apache Spark와 Python으로 빅데이터 다루기] Spark란? 해당 글은 글또 커뮤니티를 통해 제공 받은 udemy 강의 를 기반으로 작성되었습니다. 데이터 엔지니어라면 한번쯤은 들어보고 다뤄 봤을 기술인 Spark 💫 하지만 정작 Spark에 대한 정의를 설명해보라고 하면 익숙한 만큼 표현하기 어렵게 느껴진다. 이번 글에서는 Spark란 무엇인지, 어떤 식으로 구성되어 있는지 기초적인 부분을 다뤄보고자 한다. Spark란 무엇인가? Spark의 공식 이름은 Apache Spark로, 아파치 소프트웨어 재단에서 운영하고 있다. 공식 사이트(https://spark.apache.org)에 들어가 보면 아래와 같이 Spark를 정의하고 있다. Apache Spark™ is a multi-language engine for executing data engineering..
[KG] LLM에 날개를 달아줄 지식그래프 (Unifying Large Lanuage Models and Knowledge Graphs 논문) 지식그래프 관련 업무를 한다고 하면, "지식그래프 그게 뭔데?" "지식그래프 그걸로 뭘 할 수 있는데?"라는 질문을 단골로 받았다. 마침 chatGPT로 핫해진 LLM과 지식그래프를 연관지은 서베이 논문(https://arxiv.org/abs/2306.08302)을 발견해서 소개해보고자 한다. Unifying Large Language Models and Knowledge Graphs: A RoadmapLarge language models (LLMs), such as ChatGPT and GPT4, are making new waves in the field of natural language processing and artificial intelligence, due to their emergent..
[DE] 하둡 없이 맵리듀스를?! Local MapReduce 오픈소스 파헤치기 비록 Spark, Tez 등 데이터를 빠르게 처리하는 프레임워크가 등장하면서 MapReduce가 과거의 기술로 여겨지고 있지만, 여전히 큰 데이터를 다루는 데에 있어서 기초가 되는 부분 중 하나이다. MapReduce는 하둡 프레임워크로 일반적으로는 하둡 환경에서 진행할 수 있지만, 분산 환경 없이 로컬 환경에서도 이용할 수 있는 오픈소스 Local MapReduce가 존재했다. (https://github.com/d2207197/local-mapreduce/tree/master) 해당 오픈소스를 알려주신 분이 내부가 그렇게 복잡하지 않다고 말씀주셔서 한번 내부를 구경해봤더니 정말 100줄도 되지 않는 하나의 스크립트로 구현되어 있었다. 어떻게 구현해놨길래 100줄도 안되는 스크립트로 이렇게 유용하게 이..
[DE] 2023 DEVIEW - SCDF로 하루 N만곡 이상 VIBE 메타 데이터 실시간으로 적재하기 (스트림 처리 레거시 극복일지 엿보기) 지난 2월에 있었던 DEVIEW 2023에서 가장 인상 깊게 들었던 세션 "SCDF로 하루 N만곡 이상 VIBE 메타 데이터 실시간으로 적재하기" 세션의 주 목적은 "SCDF를 사용해보세요!" 였겠지만, 실시간 데이터를 직접 다루지는 않는 입장에서는 조금 다른 관점에서 세션을 들을 수 있었다. 우선 서비스 데이터를 직접 다뤄보지 못하는 아쉬움을 세션을 통해 해소할 수 있었고, 기존 작업에서 어떻게 문제점을 찾고 극복해 나갔는지 그 여정을 듣고 배울 수 있어서 많은 도움을 받을 수 있었다. 첫 입사 때부터 지금까지도(ㅠㅠ) 얼굴도 모르는 분들이 만들어 놓고 떠나신 레거시 작업을 해결해보려다 실패한 적이 많았는데, 이 세션을 듣고 어떤 방향으로 다가가면 좋을지 조금이나마 가이드라인을 잡을 수 있게 되었다. ..
[DE] 개발자들은 어떤 데이터베이스를 많이 사용할까? 데이터베이스의 종류에 대해 공부하다보니 문득 다른 개발자들은 어떤 데이터베이스를 많이 사용할지, 또 어떤 데이터베이스가 트렌드일지 궁금해졌다. chatGPT와 이런 저런 대화를 하다 보니, 오류를 맞이할 때마다 단골손님으로 방문하게 되는 사이트 stackoverflow에서 개발자 대상으로 매년 진행하는 설문조사 "StackOverflow Developer Survey"를 2011년부터 진행하고 있다는 걸 알게 됐다. (이후 Stack Overflow 설문조사에 대해 질문한 결과) 기존에는 테이블 형식의 데이터가 많이 다뤄지다보니 RDBMS를 많이 사용하다가, 저장해야 하는 데이터 형식이 다양해지면서 NoSQL이 등장하게 되고 점차 사용하게 됐다고 하는데 실제 많은 개발자들이 그렇게 사용하고 있는지 궁금해..
[DE] 쿠버네티스(kubernetes): 컨테이너도 자동화가 필요해! 해당 글은 https://kubernetes.io/docs 에 기반하여 작성되었습니다. django로 데이터를 확인하고 검색하는 api를 개발하는 업무를 하고 있던 중, "접속량이 많아도 안정적으로 만들어서 사람들이 믿고 쓸 수 있게 하라"는 이야기를 들었다. 어떻게 보면 당연히 해야하는 부분이었지만, 기능 추가에만 집중하고 있었기에 방법을 몰라 너무 막막했었는데.. 말로만 듣던 쿠버네티스를 알고 난 뒤 해결의 실마리 일부를 찾을 수 있었다. 이번 글에서는 쿠버네티스가 도대체 무엇이길래 실마리를 줄 수 있었는지 정리하고자 한다. 먼저 쿠버네티스에 대해 다루기 전에 미리 알아야 할 한가지 개념이 있다. 컨테이너 오케스트레이션 (Container Orchestration)docker 관련 글에서 다루었던 컨..
[KG] 세상의 모든 데이터를 하나로 연결하는 지식그래프 (Knowledge Graph) '2022 항저우 아시안게임 금메달리스트는?', '금메달리스트들이 태어난 곳은?', '해당 출생지들에서 태어난 다른 사람들은?' 이렇게 우리가 궁금한 내용은 꼬리에 꼬리를 물고 이어질 수 있다. 이러한 정보를 각각 나눠두지 않고 하나의 그래프로 연결시킬 수 있는데, 이것을 바로 '지식그래프(Knowledge Graph)'라고 부른다. 이번 글에서는 지식그래프란 무엇인지 살펴보고, 어떻게 활용되고 있는지 알아보고자 한다. 지식그래프(Knowledge Graph)란? 지식그래프(Knowledge Graph)는 말 그대로 "지식"을 "그래프"의 형태로 표현한 것이다. 아래 그림에서의 예시들("다빈치는 모나리자를 그렸다", "모나리자는 루브르 박물관에 위치해 있다" 등)과 같이 각 데이터 개체(entity) 사..
[CS224W] 3-1. Node Embeddings 이 포스트는 CS224W : Machine Learning with Graphs 강의를 기반으로 작성되었습니다. Graph representation learning은 task에 상관없이 그래프를 사용한 머신러닝이 효율적으로 feature 학습을 하는 것이다. 매번 feature engineering을 하지 않아도 되며, 벡터가 네트워크 구조를 capture하도록 한다. 이를 위해 필요한 node embedding에 대해 알아보고자 한다. node embedding node를 임베딩 공간으로 맵핑하는 것으로, node를 인코딩해서 임베딩 공간 내 유사성이 네트워크 내 유사성을 나타내도록 하는 것이다. 학습 과정은 다음과 같다. encoder (ENC) 정의 : node가 embedding 공간으로 map..