데이터엔지니어

코딩테스트 스터디/프로그래머스

[LV2] 귤고르기

https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] from collections import Counter def solution(k, tangerine): total = 0 answer = 0 for i, v in Counter(tangerine).most_common(k): total += v answer += 1 if total >= k: return answer Counter로 가장 많은 귤의 크기로 정렬한 뒤 total에 귤의..

코딩테스트 스터디/프로그래머스

[LV1] 가장 가까운 같은 글자

https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] def solution(s): answer = [] dict_ = {} for idx, apb in enumerate(s): if apb in dict_.keys(): result = idx - dict_[apb] answer.append(result) dict_[apb] = idx else : dict_[apb] = idx answer.append(-1) return answer 리스..

AWS

Redis, AWS ElasticCache 정리

오늘은 친구랑 얘기하다가 나온 김에 Redis와 AWS ElasticCache에 대해 정리해보겠습니다. 먼저 가장 쉽게 이해하게 됐던 말입니다. Redis는 인메모리 데이터베이스로 게임의 인벤토리 같이 실시간으로 데이터를 쥐고, 데이터를 읽거나 써야하는 경우 자주 사용한다 Redis Redis는 데이터베이스 캐싱, 실시간 분석, 메시징 시스템, 세션 관리, 잠금 관리 등 다양한 사용 사례에 널리 사용되고 있습니다. 뛰어난 성능: Redis는 인메모리 데이터베이스로 작동하므로 데이터를 디스크에 저장하는 대신 메모리에 저장합니다. 이로 인해 매우 빠른 읽기 및 쓰기 성능을 제공하며, 데이터 액세스에 대한 지연 시간을 크게 줄일 수 있습니다. 또한 Redis는 단일 스레드로 작동하여 락 관리 오버헤드를 줄이고..

데이터 노하우/꿀팁

Airflow 관련 문의 기록

프로젝트 당시 S3toRedshiftOperator 사용시 생겼던 문제에 관한 기록입니다. https://dataengineerstudy.tistory.com/194 [AWS REDSHIFT] AIRFLOW S3 → Redshift UPSERT 관련 에러('syntax error at or near "#"') 먼저 이 글은 저와 같이 REDSHIFT를 AIRFLOW와 연동해서 쓸 때 생기는 문제에 관한 글입니다. 문서가 너무 없고, 저만 겪는 상황 같아서, 열심히 삽질한 결과 작성해놓습니다. 이 글을 읽어보실 분들 dataengineerstudy.tistory.com 당시 문제점들을 기록해놨고, 해당 문제를 airflow 공식 github에 문의한 상태입니다. 임시로 해결해놨지만, 정말 임시로 해결한 문..

데이터 엔지니어링/Spark

5. Spark 프로그램 구조(Spark Session 생성, 환경변수)

1. SPARK SESSION 생성 Spark Session 생성 Spark 프로그램의 시작은 SparkSession을 만드는 것 프로그램마다 하나를 만들어 Spark cluster와 통신 : Singleton 객체 Spark 2.0에서 처음 소개 Spark Session을 통해 Spark이 제공해주는 다양한 기능을 사용 DataFrame, SQL, Streaming, ML API 모두 이 객체로 통신 config 메소드를 이용해 다양한 환경설정 가능 단 RDD와 관련된 작업을 할 때는 SparkSession 밑의 spark Context 객체를 사용 Spark Session API 문서 pyspark.sql.SparkSession — PySpark 3.1.1 documentation (apache.or..

데이터 엔지니어링/Spark

4. Spark 프로그래밍 : DataFrame(데이터처리, 동작구조)

1. Spark 데이터 시스템 아키텍처 adhoc 형태의 인터랙티브 쿼리를 날리거나 할 때, presto나 hive를 써도 큰 상관이 없다. 다만 Spark으로 옮겨가는 이유는 하나의 시스템으로 다양한 기능을 할 수 있기 때문이다. 외부 데이터(RDB, NOSQL)는 로딩해서 프로세싱해서 데이터엔지니어들이 HDFS로 주기적으로 읽어오게 한다. 보통 ETL JOB 스케줄을 위해서는 AIRFLOW를 사용한다. 다른 방법으로는 SPARK에서 로딩을 해서 보내는 거다. SPARK STREAMING 배치로 SPARK SQL 활용 LOAD 하는 곳은 NOSQL, RDB, 데이터 레이크가 될 수도 있다. DATA STRUCTURE들이 나뉘어서 SPARK에 LOAD 된다. 데이터 병렬처리가 가능하려면? 데이터가 먼저 ..

데이터 엔지니어링/Spark

3. 빅데이터 처리와 Spark 소개(Spark 소개, Spark 프로그램 실행 옵션)

1. Spark 소개 버클리 대학의 AMPlab에서 아파치 오픈소스 프로젝트로 2013 시작 나중에 DataBricks라는 스타트업 창업 하둡의 뒤를 잇는 2세대 빅데이터 기술 YARN등을 분산환경으로 사용 Scala로 작성됨 빅데이터 처리 관련 다양한 기능 제공 Spark 3.0의 구성 Spark Core Spark SQL Spark ML : 데이터프레임 기반 Spark MLlib : RDD라는 데이터 스트럭처 기반(없어지는 단계) Spark Streaming Spark GraphX Spark vs MapReduce Spark은 기본적으로 메모리 기반 메모리가 부족해지면 디스크 사용 MapReduce는 디스크 기반 MapReduce는 하둡(YARN) 위에서만 동작 Spark은 하둡(YARN) 이외에도 ..

데이터 엔지니어링/Spark

2. 빅데이터 처리와 Spark 소개(맵리듀스 프로그래밍)

1. 맵리듀스 프로그래밍의 특징 데이터 셋은 Key, Value의 집합이며 변경 불가(immutable) 데이터 조작은 map과 reduce 두 개의 오퍼레이션으로만 가능 이 두 오퍼레이션은 항상 하나의 쌍으로 연속으로 실행됨 이 두 오퍼레이션의 코드를 개발자가 채워야함 나머지는 시스템이 다 알아서 함 맵리듀스 시스템이 Map의 결과를 Reduce 단으로 모아줌 이 단계를 보통 셔플링이라 부르며 네트워크 단을 통한 데이터 이동이 생김 같은 키의 값들을 묶어서 밸류를 묶어주는 게 reduce 이 과정이 셔플링 map이 돌아가는 서버와 reduce 돌아가는 서버가 다르기 때문에, 네트워크를 통한 데이터 전송 이 셔플링 과정이 길어질 경우, 데이터 처리 과정이 길어짐 맵 리듀스 프로그래밍의 핵심 : 맵과 리듀..

데이터 엔지니어링/Spark

1. 빅데이터 처리와 Spark 소개(빅데이터 정의, 하둡 이론 등)

1. 빅데이터 정의와 예 빅데이터의 정의 (1) 빅데이터의 정의 1 서버 한대로 처리할 수 없는 규모의 데이터 2012년 4월 아마존 클라우드 컨퍼런스에서 아마존의 data scientist인 존 라우저가 내린 정의 분산 환경이 필요하느냐에 포커스 판다스로 처리해야할 데이터가 너무 커서 처리가 불가능하다면 어떻게 할 것인가? (2) 빅데이터의 정의 2 기존의 소프트웨어로는 처리할 수 없는 규모의 데이터 대표적인 기존 소프트웨어 오라클이나 MySQL과 같은 관계형 데이터베이스 분산환경을 염두하지 않음 Scale-Up 접근 방식(vs. Scale-out) 메모리 추가, CPU 추가, 디스크 추가 (3) 빅데이터의 정의 3 4V(Volume, Velocity, Variety, Varecity) Volume :..

일기

다시 시작하기

플레이데이터 국비교육과정도 끝났고, 실날데 데이터엔지니어링 과정도 전부 마쳤습니다. 6월 30일에 마치고 난 후에, 잠시 정리하고 예비군 2박 3일 다녀오니 예비군 4년차도 끝났습니다. 그런데 지난 6개월 간의 자료 정리하면서 차근차근 돌아보니, 잘한 점도 많지만 아쉬운 점도 꽤나 남습니다. 지금 제 스스로 돌아본 결과는 이렇습니다. CS 지식 정보처리기사를 취득한 후에야, CS 지식이 어느정도 가닥이 잡혔다고 생각했지만, 여러 지식들이 산재해있는 느낌입니다. 머릿 속에 완벽하게 정리된 것도 아닌 것 같구요. 프로젝트를 하면서, 그리고 공부를 해오면서 느낀거지만, 정말 우리가 쓰는 파이썬이나 자바, 뭐 각종 하둡 에코 시스템에 쓰이는 것들 전부 그저 사용이 편리한 도구에 지나지 않았나?라는 생각이 듭니다..

프로젝트 회고록/[최종프로젝트]서울시 혼잡도 데이터를 활용한 안전·문화생활 통합 웹사이트

서울시 혼잡도 데이터를 활용한 안전·문화생활 통합 웹사이트

플레이데이터 최종프로젝트를 마치고 나서 쓰는 회고록입니다. 역할 별로 글을 다 쓰면 너무 길어질 것 같아서, 제 파트 위주로 게시합니다! 더 궁금하신 사항이 있으시다면, 맨 하단에 git 주소를 참고해주세요! 1. 프로젝트 소개 서울시 발생 사고로 인한 혼잡도에 대한 관심 급증으로 인해서, 안전성과 여가·문화 생활을 결합한 종합 정보 제공 웹 서비스를 제공하고 싶었습니다. 따라서 저희 팀은 다양한 소스에서 온 데이터를 통합하고, 분석하고, 예측하는 일련의 과정을 웹서비스에 전부 담았습니다. (1) 팀원별 역할 우상욱(팀장) : 데이터엔지니어링 (1) 데이터베이스 설계 및 구축 (2) 맛집, 명소 데이터 크롤링 (3) Airflow 활용 운영 데이터 파이프라인 설계 및 구축 (4) Aws Lambda 활용..

일기

플레이데이터 데이터엔지니어링 트랙 완강 후기

안녕하세요. 오늘은 플레이데이터 엔지니어링 트랙 완강을 한 후기에 대해서 글을 써보겠습니닷.. 부트캠프에 가려고 마음 먹었을 때를 생각해보면, 수강 기간동안 정말 알차게 보냈지만, 이제 정말 시작이구나라는 마음입니다. 오늘은 6개월 동안의 기간 동안 제가 뭘 했는지, 그리고 어떤 생각들이 들었었는지 정리해보겠습니다. 12월(수강 전) 플레이데이터 데이터 엔지니어링 트랙 시작 사실 저는 데이터 전문 스타트업에서 약 8개월 간, 인턴 근무를 했었습니다. 데이터 분석팀이였지만, 데이터 분석 일보다는 데이터엔지니어링?이라고는 애매하지만, 데이터를 가공하고 정제, 크롤링하는 일들을 했었습니다. 예전에 SBA에서 창업육성팀에서도 6개월 정도 인턴을 해봤었는데, 데이터를 가공하면서 이렇게 재밌는 일을 하면서 돈을 번..

우상욱
'데이터엔지니어' 태그의 글 목록 (6 Page)