본문 바로가기

분류 전체보기545

[Spark] Apache Spark란? | 빅데이터 처리단계 -수집과 저장/ETL/HBase Spark를 알아보기 위해 빅데이터 처리의 5단계를 알아보았다. 이제 그 각각의 단계를 조금 자세히 살펴보겠다. 특히 여기 수집과 저장단계는 늘 관심있는 분야였기에 자주 많이 들어봐서 그래도 익숙했다. 수집 데이터는 어디에서 수집될까? 크게 외부와 내부로 나누어진다. 내부는, 자체적으로 보유한 내부파일시스템, RDBMS에 저장된 데이터들 -> 정형데이터일 것이고 외부는 무궁무진하다. 외부이미지,영상,문서,텍스트 등 그 어떤것이든 다 수집할 수 있는 데이터다. 어떻게 수집하는가? 내가 가장 와닿고 가장 많이 해본순서대로 나열하자면 1.크롤링 인터넷에 공개되어 있는 데이터들을 수집하는 것이다. (Python으로 셀레니움이나 beautifulsoup 라이브러리를 이용했다) 2. OpenAPI와 RSS리더 필요.. 2021. 4. 21.
[Spark] Apache Spark란? | Spark정의를 알아보기까지 빅데이터흐름 Spark란? 한마디로 정의하면 빅데이터처리를 위한 오픈소스 분산처리 플랫폼 또는 빅데이터 분산처리엔진이다. 이 한 줄에서 내가 궁금한점은 이렇다 - 빅데이터란? - 빅데이터 처리란 무엇인가? - 분산처리는 또 무엇인가? 그래서 위의 내용을 토대로 spark가 무엇인지 오늘 공부해보려고 한다. 빅데이터(Bigdata)란? 기존의 데이터베이스, 데이터베이스관리형시스템을 넘어 정형,반정형,비정형데이터를 포함한 다양한 데이터로부터 의미있는 가치를 추출하고 원하는 결과를 분석하는 기술이다. 즉, 큰 데이터로부터 유의미한 지표를 분석해내는 것으로 정의할 수 있다 예를 들어 SNS,로그,문서 등 다양한 경로를 통해 수집한 여러형태의 데이터를 이용하여 의사결정에 도움을 주는 지표를 분석하여 제공하는 것이다. (출처 .. 2021. 4. 21.
AWS What's new 뉴스레터4 | 매주 화요일마다 메일이 전송됩니다~ ▼▼ AWS 뉴스메일 자동화 프로그램 개발일지 ▼▼ 2021.04.16 - AWS What's new 뉴스레터1 | MongoDB를 써볼까?! 2021.04.18 - AWS What's new 뉴스레터2 | 이메일 전송 사전준비 및 이해 2021.04.18 - AWS What's new 뉴스레터3 | 크롤링데이터를 이메일로 전송하기 2021.04.20 - AWS What's new 뉴스레터4 | 매주 화요일마다 메일이 전송됩니다~ (현재글) 이제 지금까지 얼추 파이썬 코드가 마무리 되었다. 크롤링해서, 저장하고, 메일을 보내기까지.. 이제 이 뉴스레터를 매주 월요일마다 전송할 수 있도록 이 작업을 자동화하려고 한다. 실제로 aws였다면 lambda에 코드를 넣고,cloudwatch로 cron을 돌렸을텐데.. 2021. 4. 20.
AWS What's new 뉴스레터3 | 크롤링데이터를 이메일로 전송하기 어제는 이메일로 전송할 수 있는지만 테스트해봤다. 이젠 이를 바탕으로 내 데이터를 보낼 것이다. 내 '데이터'는 먼저 코드상에서 dict list형식으로 만들어져있다. 그래서 그대로 메일을 보내보면 이렇게 된다. 하지만 우리는 조금더 이쁘게 보기좋게 만들어야한다. 만약 title만 보낸다면? 즉 메일에 들어갈 html body에 단순히 title 내용을 넣은것이다. 결국 관건은 메일에 보낼 body를 어떻게 구성할 것인가!! 이다. 혹시 테이블처럼 한번 보내면 그래도 시각적이고 깔끔하지 않을까? 해서 dataframe형태로 변경해보았다. import pandas as pd df = pd.DataFrame(document_list) 그리고 메일에 보낼 html형식으로 다시 바꾸었다. 이때 link를 클릭할.. 2021. 4. 18.
[Web] 이메일프로토콜 | SMTP ,POP3, IMAP 2021.04.18 - AWS What's new 뉴스레터2 | 이메일 전송 사전준비 및 이해 이메일전송기능을 찾다가 알게된 용어들을 조금더 찾아보았다. 이들은 이메일을 주고받는 프로토콜의 종류들이다. 이메일시스템의 구조 우선, 이메일이 어떻게 전달되는지부터 보아야한다. 크게 메일서버와 클라이언트로 구성된다. 메일서버 위의 그림에서 A,B,C에 해당된다. 이 서버에는 메일주소에 대응하는 Mailbox가 있다. 이건 메일을 주고받는 통?같아서 주고받기 위해 모아두는 곳이다. 예를들어 PC1이 메일을 보내면, 이 이메일은 우선 A메일서버에 도착한다. 그리고 인터넷을 통해서 A메일서버에서 B메일서버로 연결되서 메일이 전달이 된다. B메일서버에 도착한 메일은 PC2에게 전달이 된다. 메일클라이언트 메일의 Mai.. 2021. 4. 18.
AWS What's new 뉴스레터2 | 이메일 전송 사전준비 및 이해 지금까지 이전에 진행했던 부분까지 수정을 완료했다. 2021.04.16 - AWS what's new 뉴스레터 | MongoDB를 써볼까?! 2021.04.16 - AWS what's new 뉴스레터 | python에서 mongoDB 사용하기 RSS형태로 제공되는 AWS what's new 소식을 크롤링해서 데이터를 수집하고, 저장하는 방식이다. 그전에는 엑셀에 저장해두는데에서 그쳤다면, 지금은 mongoDB에 저장하는 방식으로 업데이트 했다. 아 그리고 추가로 그전에는 AWS translate API를 써서 Title를 번역했다면, 구글번역 API로 변경했다 2021.04.17 - 구글번역API 사용하기 | googletrans 4.0.0 으로 설치해야한다 이제는 조금더 업그레이드 된 기능이 필요하다... 2021. 4. 18.
AWS what's new 뉴스레터1 | python에서 mongoDB 사용하기 일단 현재는 RSS로 긁어온 데이터들을 출력해논 상태이다. (python의 feedparser이용) 이제 이 데이터들을 mongoDB에 저장해볼까 한다. MongoDB설치하기 python에서 사용할 수 있는 pymongo라는 패키지가 있다. 이를 위해선 로컬환경에 mongoDB가 설치되어 있어야한다. mongoDB 다운로드 링크 환경변수 설정하기 몽고디비 설치한 위치 경로 복사 (나의 경우는 이곳) C:\Program Files\MongoDB\Server\4.4\bin 시스템 환경변수에 위의 경로 추가 MongoDB 실행하기 이제 local에 mongodb 서버가 시작되고, python에서는 여기에 연결하면 된다. 여기까지 mongoDB사용을 위한 환경설정상태였다. 이제는 python에서 몽고디비랑 연결.. 2021. 4. 16.
[mongodb] pymongo.errors.DuplicateKeyError 상황 python으로 크롤링한 데이터들 중에서 몇가지 필요한 데이터만 뽑았다. 그리고 다시 다루기 쉬운 dict형태로 만든 뒤 여러데이터들이니 list로 묶었다. 그 다음 이 데이터들을 mongodb에 넣어야한다. 문제 그런데 mongodb에 넣으려고 하는데 아래와 같은 오류가 발생했따 pymongo.errors.DuplicateKeyError : E11000 duplicate key error collection: mydb.aws. index : _id_ dup key 데이터베이스명은 mydb, 컬렉션명은 aws 원인 mongodb에 넣으려고 하는데 id인 키가 중복된다는 의미이다. insert할때 자동으로 id로 pk를 넣는다. 그런데 이 pk중복으로 나타난 원인인 것이다. 알고보니 초기화의 문제였다.. 2021. 4. 16.
AWS What's new 뉴스레터1 | MongoDB를 써볼까?! aws에는 매달 새로운 소식을 전하는 what's new라는 서비스? 기사? 가 있다. 이걸 마치 내가 구독한 뉴스테러처럼 내가 직접 찾아가서 보는게 아니라 먼저 소식이 나에게 찾아오는 방식으로 만들어보고 싶었다. 사실 이전에는 한번했던 적이 있다. aws lambda로 자동화해서 매주 월요일마다 신규소식을 크롤링하고 엑셀에 담아두는 것이다. 엑셀로 남기전 데이터들은 이런 모양인데.. 하나의 entries에 담긴 데이터들▼▼▼ 더보기 이중에서 필요한 정보만 파싱해서 새로운 JSON데이터형식으로 만들까 한다. 너무 불필요한 정보들이 많아서 먼저 필요한 정보를 파싱했다 하지만, 엑셀로 담아두면 뭐하노 다시 해당 주제에 대한 카테고리를 분류를 또 해야했다. 물론 신규소식을 읽는다는게 매일 새로웠지만 번거롭고 .. 2021. 4. 16.
Airflow 한번 맛보기 | Apache Airflow란? 데이터엔지니어 자격요건에 꼭 나왔었다. 그래서 도대체 뭐길래 항상 있는걸까 궁금했고, 한번 접해보고 싶었다. 심지어 aws what's new 소식을 정리했을 당시에도 Airflow를 관리형으로 쓸 수 있는 서비스가 탄생했었다. 아마 이거였따. MWAA (Managed Workflows for Apache Airflow) 그래서 꼭 데이터엔지니어가 되서 이 서비스를 써볼 날을 꿈꾸고 있다 2021. 4. 16.