오몰내알 데엔

데이터 엔지니어링/Bigquery

빅쿼리에 array 적재하기

문제상황 빅쿼리는 다른 DB와 다르게 array 형태를 repeated 데이터 구조로 효율적으로 저장할 수 있다. (물론 다른 DB도 저장이 불가능한 것은 아니지만 권장하지는 않는다) 나 또한 array를 빅쿼리에 저장할 일이 있어 bigquery client를 이용하여 array를 저장하려고 하였는데, 이상하게 계속 빅쿼리에는 null로 적재가 되었다. 그런데 더 희한한 점은 로컬에서 테스트 하였을 때는 분명이 제대로 저장이 되었는데, 서버에서는 다시 null로 저장된다는 것이다. 해결방법 결론부터 말하자면 나는 csv 형태로 array를 저장하려고 하였는데, 이는 그리 좋은 방법이 아니다. csv 자체가 array에 그리 친화적이지 않고 빅쿼리 또한 csv 안에 있는 array를 인식하지 못한다고 한..

데이터 엔지니어링/Bigquery

400 No matching signature for function DATE for argument types: INT64. Supported

오류내용 빅쿼리에서 fstring을 이용해서 날짜값을 빅쿼리 SQL에 전달할 때 발생하는 오류 코드 def sql(date): f""" SELECT keyword, ncc_keyword_id, uploaded_date FROM `project.dataset.table` WHERE uploaded_date = DATE_ADD(DATE({date}), INTERVAL -5 DAY) """ ... 해결방법 실제 fstring에서는 문자열이 아닌 그냥 숫자형태로 들어가게 된다. 하지만 실제 빅쿼리에서 날짜는 따옴표 안에 넣어주어야 한다. 2022-08-23 -> "2022-08-23" 따라서 f"\"{date}\""와 같이 역슬래시를 이용해 이스케이프 문자로 따옴표를 함께 넣어서 전달해야한다.

데이터 엔지니어링/데이터 엔지니어링 기초

데이터 파이프라인 개요 | ETL | 예시

동아리 발표자료로 만들었던 데이터 파이프라인 자료를 공유하려고 한다. 노션에서 티스토리로 옮기는 과정이 많이 복잡해서 일단은 노션 링크로 공유한 후 추후에 정리된다면 정식 블로그 글로 다시 포스팅하려고 한다. https://www.notion.so/e36d8125c3804f06a76abbd648d136a8 데이터 파이프라인 데이터 파이프라인 개요 www.notion.so

개인적인 이야기/여러가지

AWS을 해킹당했다... 해결과정 | MFA 설정

이전에 AWS 계정에서 비용이 청구되었다는 글을 포스팅한 적이 있다. 이때까지만 해도 별일 아닌줄 알고 그냥 넘겼는데, 이게 웬걸.... 갑자기 46만원이 청구되었다😭😭😭 너무 놀라서 계정을 확인해보니 정말 46만원이 청구되어 있는 상태였다... 무슨 일인가 내역을 확인했더니 내가 전혀 사용한 적이 없는 서비스들에 대해서 금액이 청구되어 있는 상태였다. 그러다 문득 전에 비용이 청구되었을 때 이메일 계정이 바뀌었었다는 것이 생각났다. 이를 바탕으로 구글링을 해보았는데 해킹을 당한 것이 아닐까하는 생각이 들었다. 그때가 밤 10시였는데 밤 늦게 부랴부랴 AWS Support를 통해서 해당 이슈에 대해 채팅했다. 실시간으로 채팅할 수 있는 기능이 있어서 종말 다행인 것 같다... 상담 내용은 대강 갑자기 금..

개발/개발 지식

asyncio 완전 정복 - 1

비동기란? asyncio를 알기 전에 먼저 비동기에 대해서 먼저 알아야 한다. 사실 우리는 대부분 비동기적으로 행동하고 있다. 만약 요리와 세탁과 TV 시청을 한다고 해보자. 아마 대부분 세탁이 다 될 때까지 기다렸다가 세탁이 끝나면 요리를 하고, 요리가 끝나면 TV를 보는 비효율적인 인생을 살지 않을 것이다. 모든 사람들이 세탁기를 돌려놓고 요리를 하면서 TV를 볼 것이다. 바로 이것이 비동기의 핵심이다. 컴퓨터에서 비동기는 여러 작업을 동시에 하는 것과 같은 행동을 하는 것이다. asyncio란? asyncio는 이러한 비동기 방식을 파이썬에서 사용할 수 있도록 하는 라이브러리이다. asyncio는 기본적으로 이벤트 루프와 코루틴이라는 개념 위에서 동작하는데 이에 대해서 정확하게 알아야 asyncio..

개발/개발 지식

Anaconda와 JupyterLab 알아보기

"Conda로 가상환경 만들어서 주피터 커널에 띄워서 JupyterLab 환경에서 프로젝트 진행하시면 돼요" 새로 인턴을 시작한 회사에서 프로젝트를 위해 환경을 세팅하였다. 특히 데이터 탐색에 가장 필수적인 주피터 노트북을 로컬에 깔고 업무를 진행하였는데, 그렇게 진행하면 나중에 고생한다는 충고와 함께 위와 같이 설명해주셨다. 주피터 노트북으로 프로젝트를 꽤 해보았는데 저 정도 설명도 못알아듣는다는게 뭔가 굉장히 현.타가 왔다. 내가 정말 이 둘을 잘 모르고 썼구나라는 생각이 들었다. 그래서 이번 포스팅에서는 아나콘다와 주피터 노트북에 대해서 제대로 정리하는 글을 써보려고 한다. Anaconda란? 만약 서로 다른 프로젝트인데 각자에게 필요한 라이브러리가 한 공간에 모두 설치되어 있다면 어떨까? 이에 대..

프로젝트/산타 백준 프로젝트

산타 백준 프로젝트 (2) - Airflow를 이용한 분산 웹스크래핑 | 빅쿼리 구축

지난 포스팅 - 산타 백준 프로젝트 (1) - 데이터 정의와 스크래핑 저번 시간에는 어떤 데이터를 사용할 것인지 어떤 방식으로 스크래핑을 할 것인지에 대해 이야기해보았다. 이번 시간부터는 본격적으로 Airflow를 이용하여 분산 크롤링 작업을 해볼 것이다. Airflow 설치부터 시작해서 기본적인 설정과 DAG 작성법까지 종합적으로 정리할 것이다. 그러면 Airflow 설치와 환경 설정부터 시작해보자! 🔧Airflow 설치와 설정 아키텍처를 보면 알 수 있다시피 나는 마스터 노드를 따로 두고 부스트캠프 측에서 제공해주는 서버들을 워커 노드로 두고 있다. 따라서 먼저 GCP를 이용하여 마스터 노드를 구성했던 과정을 살펴보려고 한다. 그런데 이 부분도 사실 GCP에 Airlfow를 구성하는 과정이 잘 나와있..

데이터 엔지니어링/데이터 엔지니어링 기초

빅데이터를 지탱하는 기술 키워드 정리 - 下

Chapter4. 빅데이터의 축적 데이터 수집 벌크형 데이터 전송: DB나 웹서버에서 SQL, API로 데이터를 추출하여 ETL 서버를 통해 분산 스토리지에 저장한다. 신뢰성이 중요한 경우에는 사용하면 좋다. 스트리밍형 데이터 전송: 다수의 클라이언트에서 지속적으로 작은 데이터가 전송된다. 메시지 큐와 메시지 브로커와 같은 중계 시스템을 이용하여 일정한 간격으로 모아서 분산 스토리지에 저장한다. 시계열 데이터 최적화 이벤트 시간: 실제 해당 데이터가 생성된 시간. 즉, 실제 분석의 대상이 되는 시간 프로세스 시간: 서버가 처리하는 시간 시계열 인덱스: 이벤트 시간에 대해 인덱스를 만들어 데이터 집계를 빠르게 실행할 수 있게 해주는 방법으로 카산드라와 같은 분산 데이터베이스를 이용할 수 있다. 비구조화 데..

개인적인 이야기/후기 & 경험

데이터 엔지니어 꿈나무의 부스트캠프 AI Tech 3기 회고

1월부터 6월까지 5개월 간 달려온 부스트캠프 AI Tech를 드디어 마무리하였다. 5개월이란 시간은 뭔가 굉장히 짧으면서도, 1년의 절반 정도라고 생각하면 또 굉장히 긴 시간이다. 길다면 긴 시간동안 부스트캠프의 양질의 교육을 받으면서 좋기도 하였지만, 때로는 그만두고 싶다는 생각이 들때도 있었다. 오늘은 그 동안의 5개월을 자문자답하는 형태로 정리해서 공유하고자 한다. 만약 많은 분들이 글을 보면서 댓글로 궁금하신 점들을 물어보신다면 나중에 따로 정리해서 글을 올려볼 예정이다.(질문 많이 달아주세요😃) 그럼 한 번 시작해보자!!! 그리고 밑의 자문자답 부분은 평소와 같이 평서체로 작성하는 것보다 경어체를 사용하는 편이 자연스러운 것 같아 경어체로 작성하였다! Q1. 왜 부스트캠프를 수강하게 되었나요?..

개인적인 이야기/후기 & 경험

노션 일정관리 템플릿 커스텀 및 사용 후기

🕘시간관리의 필요성 1월부터 부캠을 시작하면서 시간관리의 중요성을 깨닫게 되었다. 10시부터 7시까지 학교처럼(?) 정해진 시간동안 학습을 진행해야 하기 때문에 정해진 시간내에서 최대한 효율적으로 시간관리를 해야겠다는 필요성을 느꼈다. 지금까지는 시간관리를 위해 조그마한 플래너를 이용했었다. 하지만 이 방법은 접근성과 피드백 측면에서 너무 안 좋았다. 매일 매일 작성을 해야하는 차원에서 귀차니즘이 심한 나에게는 플래너를 가지고 다니면서 적는 과정이 너무 귀찮았다. 그리고 나에게는 주 별이나 쿼터별로 평가를 하면서 계획을 수정하고 스스로에 대한 피드백이 필요한데, 플래너는 이런 과정을 하기에 굉장히 불편했다. 이 때문에 여러 툴들을 고려해보았지만 역시 노션만한 제품이 없었다. 직접 커스텀하기도 좋았고, 접..

오몰내알
'분류 전체보기' 카테고리의 글 목록 (4 Page)