전체 글 144

데이터베이스에 csv 파일 업로드 시 에러(value too long for type character) 해결

에러 살펴보기 ERROR: value too long for type character varying(76) Call getNextException to see other errors in the batch. 프로젝트 도중 csv 파일을 데이터베이스에 넣어야 했는데, 이때 위와 같은 오류로 데이터가 들어가지 않는다는 이야기를 듣고, 함께 해결에 나섰다! 처음 에러를 봤을 때는, 초기 설정한 스키마의 글자 수 등의 제한에 걸려서 저장이 안되는 줄 알았는데, 전반적으로 TRUNCATE 가 필요한 상황이라는 것을 알았다. 여기서 잠깐! TRUNCATE란? 데이터 테이블은 그대로 남겨놓되, 그 안에 알맹이(인덱스, 스키마, 데이터 등)들을 모두 초기화하는 sql 명령 중 하나다. 그렇다면, TRUNCATE 설정..

django Server에 image 업로드하는 기능 구현 + 이미지 스토리지를 AWS S3로 변경하려는 이유

현재 사진을 업로드하는 기능이 필요해 서버 내 media 폴더를 만들어, 업로드한 이미지가 media에 들어갈 수 있도록 설계했다. 사실 방법 자체는 어렵지 않다. 왜냐하면 django에는 이미 관련 라이브러리 (static 등)가 잘 되어있기 때문이다. 여기서, 필요하면 pillow 등을 추가 설치하면 되므로 프로세스 자체는 복잡하지 않다. 하지만 나는 구글링을 하면서, 중간중간 이해가 되지 않는 부분이 있었기 때문에 (어디로 어떻게 저장되는지 혼란스러웠음) 버벅거렸던 것은 사실이다 ㅜㅜ 그래도 문제를 해결했으니 다행이라고 생각한다! 이제는 유연하게 기능을 구현할 수 있을 것 같다 ㅎㅎ 1. 메인의 settings.py 설정하기 import os # 사진 저장 공간 설정 # media로 접근하면 med..

Django 웹사이트에 AWS RDS (PostgreSQL) 연결 방법

현재 프로젝트를 진행하며 데이터베이스를 PostgreSQL로 지정하기로 결정했다. RDB를 선택한 이유는 아래와 같다. 사용자 데이터 등 데이터 간 관계 정의 open api data의 경우, 고정된 스키마로 스키마 중복 차지 공간 없앰 그런데, RDB에서도 다양한 DB의 종류가 있다. 그 중에서도 가장 대표적인 건 MySQL과 MS SQL 그리고 PostgreSQL이 있다. PstgreSQL을 선택한 이유 PostgreSQL MySQL 빠르게 데이터를 삽입 삭제할 때 용이 고정된 데이터의 처리에 용이 데이터베이스 백업 기능으로 데이터 소실 시 해결 가능 데이터 소실 우려 오픈 데이터 소스 오픈 데이터 소스 다양한 join 방법이 존재 join 등 데이터 집계의 한계 데이터 삭제 및 삽입 프로세스라 업데..

Window에 Cron Tab 설치 방법 + Cron 이란?

나는 최근 진행한 프로젝트 때문에 Cron을 종종 이용했다. 물론 Airflow 등을 쓰면 더 손쉽게 스케줄러 활용이 가능하지만, 파이썬 파일 하나를 간단하게 돌리기로는 (내가 아는 지식 범위 내에서) Cron이 무난하고 이용하기 수월하다고 판단했기 때문이다. 목차 Cron 이란? nnSoft 접속 및 프로그램 설치하기 워드패드로 cron 설정하기 Cron 주기 1. Cron이란? 유닉스 계열의 운영체제에서 사용되는 잡 스케줄러다. 일반적으로 서버 등에서 쓰이는 유닉스 계열의 운영체제가 있는데, 이 유닉스 계열의 운영체제는 cron이라는 잡스케줄러를 가자고 있다. 하지만 윈도우에서도 윈도우용 cron을 사용할 수 있다. 2. nnSoft 접속 및 프로그램 설치하기 http://www.nncron.ru n..

02. Django 에러 : ValueError: Field 'found_count' expected a number but got ''.

Flask 앱의 편리함 때문에, 초기 개발은 Flask 로 수행했지만 (사실 이때까지 배운게 Flask뿐이었음) Django가 더 유동적으로 개발할 수 있다는 장점이 있어, 프로젝트 개선작업은 Django로 하기로 했다. 즉... 그냥 모두 뜯어 고쳐야 한다. 원래도, 초기 개발당시에는, 다소 모르는 내용이 있더라도 완전히 이해하지 않고 프로젝트를 구동시키는 데에 목적이 컸으므로, 완벽하게 이해하며 프로젝트를 수행할 수 있도록 새로 프로젝트를 시작하는 것도 나쁘지 않을 것 같았다. 따라서 나는 Pycharm 을 이용해 Django 프로젝트를 개설했다. 그런데 프로젝트를 한참 수행하던 중, 위와 같은 문제를 맞닥뜨렸다. ❓❗ 에러 살펴보기 ValueError: Field 'found_count' expec..

01. 전주시 빅데이터 분석 공모전 "우수상 수상" : 가치를 인정받다!

나는 이번 6월, 전주시에서 개최한 빅데이터 분석 공모전에서 우수상을 수상했다. 따라서 시청에서의 가치를 인정받았고, 따라서 이번 분석 공모전 결과물에서 더욱 심화시켜 사용자에게 실제로 배포할 만한 서비스를 개발해봐야겠다는 생각이 들었다. 프로젝트 진행 과정 및 결과물 포스팅 01. 전주시 빅데이터 분석 공모전 - 우수상 수상! [참고] 해당 프로젝트는 지난 4월 수행한 것으로, 엔지니어링이 지금보다 미숙할 때 진행했다는 점을 참고해주시기 바랍니다. 목차 참여 계기 준비 과정 데이터 분석 과정 - 서비스 구현 계기 사 eng-sohee.tistory.com 기존 프로젝트에서는 아쉬움을 많이 느꼈다. 크게 나누자면 아래와 같다. 1) 느린 사이트 접속 속도 2) 안정적이지 못한 데이터 집계 과정 3) 실리..

08. 에러 해결 방법 Error running query: SELECT list expression references column _PARTITIONTIME which is neither grouped nor aggregated

GCP Bigquery에서 해당 코드를 실행하는 데 아래와 같은 에러가 발생했다. 에러 코드 SELECT count(*) as count, date(_PARTITIONTIME) as partition_date FROM `데이터 보관 경로` WHERE DATE(_PARTITIONTIME) in (SELECT distinct DATE(_PARTITIONTIME) as partitiontime FROM `goodmorning-4f4f0.diff_datalist.diff_currentStreak` order by partitiontime desc limit 7) AND result = 'false' GROUP BY date(_PARTITIONTIME) ORDER BY partition_date ❓❗ 에러 살펴보..

19. 기업 협업 프로젝트를 마치며

6월 28일부터 7월 17일 동안(3주), 기업 협업 프로젝트를 수행했다. 더불어, 남은 한 주 동안은 협업 프로젝트 최종 보고서 및 발표 영상을 만들고, 기업에 직접 찾아 가 프레젠테이션을 나름 성공적으로(?) 마쳤다. 따라서 요 근래 블로그에 신경을 많이 쓰지 못했다. 앞으로는 다시 원래처럼, 블로그에도 신경을 열심히 써보려 한다 ㅎㅎ 또한 진행 중이던 CS 공부도 꾸준히 수행할 예정이다. 기업 협업 프로젝트는 어땠는가? 결론적으로 말하면, 데이터 엔지니어링의 초석을 다질 수 있었던 좋은 경험이었다. 정말 다양한 경험을 했지만, 그 중에서도 크게 7가지의 경험을 했다. 1) 실제 기업 데이터로 Data Mart 파이프라인을 설계해 데이터를 수집했다. 적재되는 raw 데이터를 원하는 형태로 시각화하기 ..

04. Spark 간단히 살펴보기, 기능 둘러보기

안녕하세요 한소희입니다. 공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 감사합니다. 요즘은 Spark 스터디를 진행하고 있다. 빠른 속도로 스터디를 진행 중이기 때문에, 필기 자료 업로드가 조금 늦었다. 이번 Spark 포스팅에서는, 스파크의 개념 및 간단한 기능을 둘러보고 그 내용을 정리/요약해 볼 것이다. 목차 아파치 스파크란? 스파크의 기능 간단히 살펴보기 01. 아파치 스파크란? 1-1. 아파치 스파크란? 통합 컴퓨팅 엔진이다. 즉, 데이터를 병렬로 처리하는 라이브러리의 집합을 뜻한다. 1-2. 스파크가 왜 좋은가? 통합 플랫폼이 제공되기 때문에 기존 분석 작업을 더 쉽게 가능하다. SQL쿼리로 읽고 머신..

09. Selenium - 동적 사이트 테이블 Crawling : 오류 해결

목차 Selenium으로 인식되지 않는 text를 print 하는 방법 동적 테이블 값을 Selenium + BeautifulSoup4 로 출력하는 방법 01. Selenium으로 인식되지 않는 text를 print 하는 방법 나는 이전동안, Selenium을 이용한 동적 사이트 테이블을 크롤링하는 작업을 수행했다. 수행 기록은 아래와 같다. https://eng-sohee.tistory.com/78 07. Selenium - 동적 사이트 테이블 Crawling 목차 크롤링 사용 목적 Selenium 구현 과정 01. 크롤링 사용 목적 우리는 동적 페이지 내 데이터를 실시간 수집을 해와야 한다. 대시보드에 실시간으로 데이터를 띄워주어야 하기 때문이다. 따라서 eng-sohee.tistory.com 그런데..