본문 바로가기

220225금 - NoSQL 데이터를 SQL에 넣는다는 건 다른 일들로 인해 작업이 끊겼다. spotify에서 가져온 artist, music 데이터를 사용해서 정형데이터를 보충해주려고 하는데. 문제는 역시 스쳐 지나가지 않는다. dataframe에 spotify 데이터를 넣어주는 작업만 하면 elt 파이프라인 70%는 끝나는데.. NoSQL 데이터를 SQL에 넣으려할 때 생기는 참사(?) 질의를 하면 유사한 문서들이 다량으로 발견된다.예를 들어, artist: Lesuire, track:Nobody 로 검색하면무려 item이 4개나 검색된다. item 내용이 길어서 track 이름 만 뽑아보면 ['Nobody (feat. Gold Link)', 'Nobody (feat. Gold Link)', 'Nobody (feat. Gold Link)', 'Nobody']..
220225금 - airflow bashoperator에서 쉘스크립트 실행 시 주의점 밑의 코드처럼 bash_command 파라미터에서 쉘파일 실행 문자열을 넣을 때 sh 뒤에 space를 넣어줘야 한다. 그렇지 않으면 jinja template을 적용하려고 해서 에러가 난다. t2 = BashOperator( task_id="bash_example", # This fails with 'Jinja template not found' error # bash_command="/home/batcher/test.sh", # This works (has a space after) bash_command="/home/batcher/test.sh ", dag=dag, )
220219일 - python 가상환경 보통 app을 가상환경(virtualenv)에서 돌리는 일이 많아서 env구조를 어느정도는 알아야겠구나 생각이 들어서 정리한다. 보통 가상환경은 virtualenv로 생성한다. 패키지 로딩은 파이썬이 하니 단순하게 생각하면 가상환경 세팅의 핵심?은 어떤 경로의 파이썬을 쓸지 정해주는 거라 보면 될거같다. airflow에서도 bash_operator나 python_operator를 이용해 뭔가를 할 때 알아두면 유용하다. (가상환경 폴더의 이름은 env) → env의 python이 실행되면: (env 안의 python을 사용하겠다) → site모듈이 sys.prefix, sys.exec_prefix를 설정하여 (pyenv.cfg 위치 사용) → site-packages 경로만들고 sys.path에 추가 (..
210127목 - yaml의 alias yaml을 보는 중에 &default ,
220220일 - SQL과 NoSQL 다시 정리할 겸. 데이터엔지니어로 회사의 스택들을 보면 nosql보다는 sql쪽이 훨씬 많이 보이긴 한다. 계속 관계형 디비를 사용해와서 새로운 DB로 바꾸는 비용을 들이고 싶지 않아서 일수도 있을 것 같기도 하고. 분석쪽은 sql을 주로 많이 이용하니 다른 팀과의 데이터사용을 고려해서 관계형 디비를 사용할 수도 있을 것 같고.. 일관성 때문에 유연성이나 스케일아웃 문제에도 불구하고 sql을 더 쓰는걸까. 데이터 저장하면서 스케일 아웃이 필요한 시기가 있을 것이고 관계형DB는 스케일아웃에는 적합치 않다 들었는데. 어떻게 처리하고 있는걸까? 데이터레이크 쪽은 nosql로 하고, elt 작업으로 처리한 분석을 위한 데이터는 sql을 사용하고. 그런걸까? -> 생각해보면 sqldb의 데이터가 얼마 이상이고 튜..
220218금 - airflow dag file에서 내 module file 사용하기 dag py file을 작성하면서 나의 source 파일을 import해오는데 import가 안 된다고 에러가 나서 찾아보다 공식문서가 너무 친절하게 가이드를 해두어서 정리해본다. https://airflow.apache.org/docs → 의역있고, 적당히 정리해서 표현하기도 합니다. airflow 사용하시는데 도움이 되었으면 좋겠습니다. :)) Module management Airflow는 airflow의 configuration과 DAG에서 개인 파이썬 모듈(즉 나의 파이썬 코드)을 사용할 수 있도록 해두었습니다. 이 문서는 어떻게 커스텀 모듈을 생성하고 에어플로우가 그걸 제대로 로드할 수 있도록 가이드할 것입니다. 보통 에어플로우 배포에 보통 소스코드, 라이브러리 형태의 개인코드를 함께 사용해서..
220215화 - 데이터 탐색 #2 주말에 거사?를 치루고 다시 프로젝트로 돌아왔다. 잘 한 것같아 다행이나 다음 관문이 또 문제... 어쨋거나, 이 프로젝트. 이렇게 저렇게 하면 금방 될줄 알았는데..아니다. 누군가가 정리해준 거나 있는 디비를 가지고 구현하는 게 아니다보니 모든 걸 다 만들어야 한다. DB도 설계해야하고, 데이터도 탐색해야 해서 어떤 데이터를 삭제하고, 수정하고, 보완하고, 어떻게 새로운 데이터를 만들어낼지 찾아야 하고, 결코 빠르게 끝날 일이 아니었다. 이것만 붙잡고 있는 것도 아니니.. DB나 프로젝트 관련 스택에 대해 모르거나 궁금한 것들 찾아보고 정리도 해야 하고. 사실 대충 파이프라인만 만들어낸다 생각하면 아무렇게나 만들 수 있지만 또 그건 무슨 의미가 있고, 그렇게 해서 뭐를 얻어갈까 싶어서 데이터 들여다보면..
220211금 - 데이터웨어하우스 개념 개인적인 공부를 위해 짜집기한 글. 위키가 제일 도움이 되었고, 많이 가져왔다. DW는 하나의 툴이 아니고 데이터분석을 위한 데이터 관리 시스템이라 보면 되겠군.. 참조 aws 페이지 - 관련 aws 서비스: Redshift 해시넷 위키 데이터 웨어하우스란? 비즈니스 인텔리전스(BI) 활동, 특히 분석 작업을 지원하도록 설계된 일종의 데이터 관리 시스템 데이터 웨어하우스는 오로지 쿼리와 분석을 수행하기 위해 개발된 것으로, 주로 대량의 과거 데이터를 포함한다. 데이터 웨어하우스에 있는 데이터는 일반적으로 애플리케이션 로그 파일이나 트랜잭션 애플리케이션과 같은 다양한 출처에서 수집된다 특화된 데이터뿐만이 아니라 기업 활동 전반에 필요한 모든 정보를 일원화해 관리 병렬 서버의 등장과 자기 디스크 장치의 대용..