본문 바로가기
반응형

🌿 Data Engineering58

[ELK] Flask 웹로그 분석해보기1-Docker로 ELK Stack 설치 elk stack에 대해서 간단하게 알아봤으니, 직접 해보려고 한다. 수집할 웹은 이전에 개발했던 뉴스레터 구독서비스를 사용하기로 했다. 큰 로그는 없을것 같긴하지만, 일단 Flask로 개발한 웹서비스가 있으니 일단 해보자! Docker로 ELK Stack설치 ELK Stack 일일이 설치해도 되지만, 두렵고 엄두가 나지 않는다. (세상에서 제일 골치아픈 config..) 그래서 대부분 docker로 설치하는 듯하다. Elastic Search, Logstash, Kibana를 한번에 설치 할 수 있다! 훨씬 설치가 간단하고, 삭제도 깔끔하다. docker를 이용할 수 있는 모든 플랫폼에서 동일한 방식으로 적용이 가능한 이점이 있다 물론 docker말고 직접 레이어별로 설치를 해보면서 구성해볼 수도 있다.. 2021. 7. 6.
📊ELK Stack이란? Elastic Search, Logstash, Kibana ELK를 왜 쓰는가? 로그분석이 왜 필요한가? 사실 내가 진행한 상에선 굳이 로그분석을 할 필요는 없다. 참고한 프로젝트의 키바나 대시보드가 부러웠기에 초기 기획단계에서부터 해보고 싶었던 부분이였다. 뭔가 내가 말하고 상상하던걸 바로 이뤄내는 기분이라 왠지모를 성취감과 뿌듯함이 든다. 그렇다면 ELK를 사용해보고 싶어서 적용하는거긴한데, 실무적으로 왜 로그분석이 필요하고 ELK를 사용해야하는지 먼저 알아보았다. 일반적인 로그는 이렇게 TXT파일로 떨궈서 살펴보기도 한다. 나는 람다를 자주 사용해서 그런지 lambda cloudwatch에 찍히는 로그를 살펴봤지 이렇게 text파일론 보지 못했다. 그런데 이렇게 로그를 따로 관리하지 않고 이렇게 파일에 쌓아두게 되면 아래와 같은 문제점이 생긴다. 로그레벨 .. 2021. 7. 5.
[예정] 객체스토리지와 NoSQL스토리지의 차이점 /CAP정리 ACID특성 트랜잭션 처리에 요구되는 4가지 성질 원시성(Automicity) 일관성(Consistency) 독립성(Isolation) 내구성(Durability) 일반적인 RDB는 ACID특성을 충족하고 있어 신뢰성 있는 트랜잭션 처리를 실현한다. 하지만 ACID특성을 만족하면서 분산시스템을 구축하는 것은 어렵다. 그래서 이러한 한계를 고려해서 다시 만들어진 것이 CAP정리. CAP정리 일관성(Consistency) 가용성(Availabilty) 분단내성(Partition-tolerance) 일반적인 분산시스템에서는 CAP정리를 동시에 충족시킬 수 없어 어느하나가 희생될 수 있다. NoSQL에서는 RDB처럼 반드시 신뢰성 있는 트랜잭션 처리를 수행할 수 있다고는 할 수 없다. NoSQL데이터베이스의 일.. 2021. 6. 27.
🌲Parquet(파케이)란? 컬럼기반 포맷 장점/구조/파일생성 및 열기 어떻게 알게 되었나? 보통 수집한 데이터들은 정형데이터, 비정형데이터에 따라 RDB나 NoSQL로 저장했다. 그런데 데이터레이크를 만들면서 객체스토리지인 s3에 데이터를 저장해야했다. 사실 처음엔 조금 당황했다. 엥? 어떻게 저장해야하는거지? 다른형태로 저장하는건가? 그 기술에는 parquet 데이터 형식이 있었다. Parquet (파케이) 데이터를 저장하는 방식 중 하나로 하둡생태계에서 많이 사용되는 파일 포맷이다. 빅데이터처리는 많은 시간과 비용이 들어가서 빠르게 읽어야하고, 압축률이 좋아야하고, 특정언어에 종속되지 않아야한다. 이러한 특징을 가진 포맷으로 Parquet(파케이), ORC파일, avro(에이브로) 가 있다. 파케이의 역사 실제로 parquet(파케이)는 나무조각을 붙여넣은 마룻바닥이라.. 2021. 6. 26.
JSONPath 라이브러리와JSON파싱(load/dump/loads/dumps) 어디서 알게 되었나? 프로젝트를 진행하다가 jsonpath라는 라이브러리를 써야해서 추가로 알아보았따. s3로 datalake를 구현하면서 계층구조를 가지고 있는 api데이터를 jsonpath를 사용해서 변형했다. 예를 들면 이런식으로 사용했다. 그땐 이렇구나~라고 넘어갔지만 이제 본격적으로 알아보자. for track in raw['tracks']: # i는 하나의 트랙 #s3에 넣기 위한 flat한 데이터로 변환 top_track = {} for k, v in top_track_keys.items(): value = jsonpath.jsonpath(track, v) # 해당 위치에 데이터가 없으면 False를 리턴(bool type). 이럴 경우 다음 컬럼으로 넘어감 if type(value) == .. 2021. 6. 26.
[Python] Pandas 사용법 pd_data=pd.DataFrame.from_dict(dict_data,orient='index') pd_data=pd_data.transpose() result = pd.concat(data_list,ignore_index=True) stml.tistory.com/18 [pandas] append & concat-여러 텍스트 파일을 for 문으로 불러서 하나로 합치기 연도별로 같은 변수를 가진 데이터가 있다. year라는 열을 새로 만들면서 전체 파일을 하나로 합치고 싶음. - 숫자부분을 의미하는 정규표현식 %d 라는 표현을 써서 폴더명의 뒤에 년도 부분이 계 stml.tistory.com +각자 하나씩 dataframe을 갖고 있었는데, 그래프를 그리기 위해서 하나의 데이터프레임으로 만들어야했다. .. 2021. 4. 28.
[Spark] Apache Spark 실행하기 | Local에서 Spark설치 와 이제 본격적으로 spark를 설치해서 해볼 준비가 되었다. 오늘의 목표는 Spark설치하기..그냥 무작정해보기.. * pyspark와 spark차이점은? * pyspark를 쓰려면 그냥 spark는 다운받지 않아도 되는건가? * 왜 하둡을 받아야하는거지? * spark를 시작하려면 코드를 처음에 어떻게 써야하지? 근데 아직 감을 잡지 못했다. 아직 잘 와닿지 않는다. Spark 설치하기 나는 python으로 spark를 사용할 것이다. 즉, pyspark를 사용할꺼다. 간단하게 python에서 pip으로 설치하면 바로 spark를 쓸 수 있다고 생각했다. (현재 로컬환경은 python,java이미 설치된 상태) 물론 되긴 되지만, winutils도 없고, 하둡 디렉토리를 가져올수 없다며 하둡환경이 아.. 2021. 4. 22.
[Spark] Apache Spark란? | 구조 및 동작방식 앞서 Apache Spark의 정의를 파악하기까지 나름 머나먼 여정이였다. 2021.04.21 - Apache Spark란? | Spark정의를 알아보기까지 빅데이터흐름 2021.04.21 - Apache Spark란? | 빅데이터 처리단계 -수집과 저장/ETL/HBase 2021.04.22 - Apache Spark란? | 빅데이터 처리단계-분산처리/하둡/맵리듀스 이제 본격적으로 Spark를 알아보려고 한다. Spark는 4가지 기능을 제공한다. 또한 Scala언어로 만들어졌지만, Java, R,Python 등 프로그래밍 언어API도 제공한다. 머신러닝을 위한 ML Lib 실시간 처리와 방대한 연산을 위한 Structured Streaming도구 구조화된 데이터를 처리하기 위한 Spark SQL 그래프.. 2021. 4. 22.
[Spark] Apache Spark란? | 빅데이터 처리단계-분산처리/하둡/맵리듀스 spark를 알기위해 거의 다왔다. 빅데이터 처리단계로 수집과 저장단계를 지나 처리단계이다. 처리 데이터분석을 하기에 앞서 몇가지 데이터처리가 필요하다. 즉 분산처리가 필요하다. 병렬처리 vs 분산처리 분산처리란 해야하는 한가지 일을 여러 컴퓨터들에게 나누어서 동시에 처리한 뒤 한곳으로 모으는 방법이다.. cpu들을 네트워크로 연결하여 전체적인 일을 부분부분으로 나누니까 더 빨리 처리할 수 있다. 병렬처리란 동시에 많은 계산을 하는 방법이다. 여러일을 동시에 한꺼번에 처리하는 것이다. 이 둘의 공동점은 일을 '동시에' 처리한다는 것이다. 하지만 분산처리는 동시에 여럿이서 하나의 일을 하고, 병렬처리는 동시에 여러일을 처리한다. 어떻게 처리하는데? 처리방법이 있나? 1.일괄처리(Batch 처리) 컴퓨터 프.. 2021. 4. 22.
[Spark] Apache Spark란? | 빅데이터 처리단계 -수집과 저장/ETL/HBase Spark를 알아보기 위해 빅데이터 처리의 5단계를 알아보았다. 이제 그 각각의 단계를 조금 자세히 살펴보겠다. 특히 여기 수집과 저장단계는 늘 관심있는 분야였기에 자주 많이 들어봐서 그래도 익숙했다. 수집 데이터는 어디에서 수집될까? 크게 외부와 내부로 나누어진다. 내부는, 자체적으로 보유한 내부파일시스템, RDBMS에 저장된 데이터들 -> 정형데이터일 것이고 외부는 무궁무진하다. 외부이미지,영상,문서,텍스트 등 그 어떤것이든 다 수집할 수 있는 데이터다. 어떻게 수집하는가? 내가 가장 와닿고 가장 많이 해본순서대로 나열하자면 1.크롤링 인터넷에 공개되어 있는 데이터들을 수집하는 것이다. (Python으로 셀레니움이나 beautifulsoup 라이브러리를 이용했다) 2. OpenAPI와 RSS리더 필요.. 2021. 4. 21.
728x90