전체 글
-
10. airflow 기초toy_project 2022. 5. 4. 00:55
airflow를 배워보려 한다 기존에 파이썬으로 작성한 크롤링들을 주기적으로 실행을 하려면 크론탭으로 스케줄을 설정했다 이것의 단점은 작업에 실패하면 로그를 확인하고 에러가 난 부분을 확인해서 재실행한다는 것이다 딱히 단점이라고 생각하지 않았는데 airflow를 사용하면 이런 것들을 쉽게 핸들링 할 수 있나보다 DAG(Directed Acyclic Grtaph):유향 비순환 그래프 DAG안에는 한 개 이상의 Task가 있고, Task는 실제 실행시키는 작업이다 배치 스케줄을 관리 Action Operator 에어플로우는 Operator를 사용하여 python, bash, aws등 다양한 동작을 실행시킬 수 있다 sample_task = BashOperator( task_id="sample_task", b..
-
09. 엘라스틱 서치 조회하기toy_project 2022. 5. 4. 00:31
위키피디아에서 제목 파일을 제공해준다길래 gz파일을 다운받았다 https://dumps.wikimedia.org/kowiki/latest/ kowiki-20220420-all-titles.gz 파이썬으로 불러오니까 다 깨진다 a.decode("utf-8") '828\t첫_걸음\n' 대충 콘솔로 찍어보니 이런식으로 나온다 b'828\t\xec\xb2\xab_\xea\xb1\xb8\xec\x9d\x8c\n', b'829\tAuthority_control\n', b'829\tBananas/\xec\x8b\x9c\xed\x97\x98\xec\x9e\xa5\n', b'829\tBananasArgs/\xec\x8b\x9c\xed\x97\x98\xec\x9e\xa5\n', 이렇게 다 깨져서 나오지만 이런건 디코딩하면..
-
08. 엘라서치 조회해보기3toy_project 2022. 4. 26. 23:50
우선 mbti_stomi_term인덱스를 새로 생성했다 팥장님 티스토리를 참고했다 term_vector: true -> 필드의 용어가 저장된다 "fielddata" : - 디폴트는 false 입니다. true로 설정하면 해당 필드의 색인된 텀 들을 가지고 집계(aggregation) 또는 정렬(sorting)이 가능합니다. 이 설정은 다이나믹 설정으로 이미 정의된 매핑에 true 또는 false로 다시 적용하는 것이 가능합니다. fielddata를 사용하면 메모리사용량이 많아진다한다 그치만 어쩌겠는가 문서의 모든 단어들을 다 카운팅하고싶은데... GET mbti_stomi_term/_search { "query": { "bool": { "must": [ {"term": {"keyword":"infp"}}..
-
07. 엘라서치 조회해보기2toy_project 2022. 4. 19. 21:30
글한번 썼는데 날라갔다 reindex 사용하기 처음에 502에러는 한 3번정도 마주쳤다 그냥 source에 기존 인덱스, dest에 옮길 인덱스 했는데 502에러가 떴다 첫번째 reindex시도했을 때는 사이즈가 커서 그런가 싶어서size:1000를 해줬는데도 502에러 두번째시도는 mbti_stomi_analysis에는 맵핑이 없어서 그런가 싶었다 원래 인덱스에 bulk하면 자동으로 생성되니까 이번에도 그런줄알고 맵핑을 안했다 그래서 수동으로 데이터 타입들을 넣어줬다 그런데도 502에러 세번째 시도는 wait_for_completion=false를 파라메타로 넣어주니까 0.1초만에 끝났다 POST _reindex?wait_for_completion=false { "source": { "index": "..
-
06. 엘라스틱 서치 조회해보기toy_project 2022. 4. 11. 22:28
** 문제점 이미 인덱스 만들고 데이터 다 넣었는데 추가로 분석기 적용할라고 보니까 이미 있는 인덱스여서 안된다고 뜸 인덱스안에 있는 데이터 수정은 가능하지만 인덱스 설정은 수정이 안되는건가? 얼핏 예전 강의에서는 맵핑값에 데이터 타입같은건 변환이안된다고 들은 것같음 GET mbti_stomi/_search { "query": { "match": { "contents": "기생충" } }, "size": 0, "aggs": { "movie_count": { "sum": { "field": "like_cnt" } } } } - 기생충을 언급한 게시물의 좋아요 수 합산 { "took" : 2, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1..
-
05. rest framework 시작하기 (핵기초)toy_project 2022. 3. 1. 16:46
mysql db에 넣어준 Isntagram Mbti 게시물들을 가져와서 api로 뿌려주자 setting.py에서 DATABASE를 장고에서 디폴트 설정된 부분을 실제 뿌려줄 데이터가 존재하는 db접속 정보로 변경하고 class board(models.Model): mbti = models.CharField(db_column='mbti', max_length=50) user_name = models.CharField(db_column='user_name', max_length=100) content_text = models.TextField(db_column='content_text', max_length=255 ) like_count = models.IntegerField(db_column='like_c..
-
04. DRF로 웹 만들어보기 : 기획toy_project 2022. 2. 25. 14:42
인스타그램 로그인 창 구현 -> 인스타그램 로그인 api나 셀레니움을 사용해서 실제 유효한 로그인인지 검증 ( 그냥 검증만하고 끝 ) 로그인 성공시 로그인을 유지시키고 다음 창으로 넘어감 본인의 mbti를 입력하는 창 구현 -> 사용자의 mbti별로 뿌려지는 데이터를 다르게 구현할거임 intp를 검색했으면 검색엔진창에 -> intp들이 가장 많이 포함된 게시글들 순서로 해당 게시물 url을 나열해줄거임 url들이 나열된 페이지 위에 검색엔진창 구현 -> mbti를 검색하면 db에서 해당 mbti작성한 모든 테그들을 뿌려줌 1. 로그인창 : JWT사용, 로그인 유효성검증 모듈 구현 2. mbti입력창: 3. 검색엔진+mbti인기 게시물 보여지는 창 : mbti_media_api구현 ( 인기 게시물 뿌려주는..
-
03. docker 사용해보기toy_project 2022. 2. 25. 00:54
vscode설치 백엔드 파일, 디비 파일, 프론트엔드 파일 존재하는 git을 pull받음 front-end폴더 안에는 Node.js로 돌아가느 http-server란 프로그램으로 빌드된 파일들로 웹사이트를 띄운다 Node.js는 브라우저가 아닌 내 컴퓨터에서 자바스크립트를 사용할 수 있게 해주는 것 만약 내 컴퓨터에 node.js가 깔려 있고 자바 스크립트로 돌아가는 http-server도 글로벌로 설치가 되어있다면 터미널에서 front-end 디렉토리안으로 들어간 다음 http-server -p 8000 ./public(빌드된것들) 명령어를 통해서 웹서버를 실행함 하지만 node.js가 깔려 있지 않으면 http-server와 자스코드도 실행할 수 없음 이래서 도커가 필요한것 터미널에 docker ru..