Data

· Data
개요 작년 8월쯤 DBT라는 Tool의 존재를 알게 되어 한 번 도입해볼까 했는데 DBT를 혼자 PoC 해보고 도입하기에는 무리가 있고 시기상조라고 파악되어 문서로 정리만 해놓고 Drop을 했었습니다. 당근에서도 DBT와 Airflow를 도입했다는 포스팅이 올라와서 순간 생각이 나서 제가 파악했었던 것을 정리하기 위해 포스트합니다. DBT 도입 준비 배경 당시 회사에서는 Airflow 를 기반으로 하는 ELT 데이터 파이프라인을 구축하고 BigQuery 라는 플랫폼 내에서 SQL을 통해 데이터를 처리하는 구조를 가지고 있었는데 Raw 데이터를 거의 대부분 그대로 BigQuery로 올린 후 거기서 쿼리로 조작하는 경우가 많았기 때문에 ad-hoc한 쿼리도 많이 생기고 BigQuery 자체에 쿼리를 저장하는..
BigQuery는 쿼리를 통해 스키마를 수정할 수 있다. 다만 제한적으로 수정할 수 있는데 Field 추가와 삭제는 가능하지만 특정 Nested Field의 내부에서 Field 추가는 불가능하다. 다행히 공식적으로 bq CLI 명령을 통해 수행이 가능하게 되어 있다. 이번 포스팅에서는 bq 명령을 통해 BigQuery 스키마를 수정하는 방법에 대해 설명하도록 하겠다. 0. bq? bq 는 BigQuery용 Python 기반의 CLI 이다. 여기서는 bq를 어떻게 사용하고 설치하는 지에 대해서는 설명하지 않겠다. 아래 공식 문서를 참조하길 바란다. gcloud CLI 설치 | Google Cloud CLI 문서 의견 보내기 gcloud CLI 설치 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 ..
· Data/Airflow
개요 Airflow 의 성능을 높이기 위해서 설정 해야 하는 여러 가지 옵션들이 있다. airflow.cfg 파일에서 사용할 수 있는 해당 옵션들에 대해서 알아보고 정리하는 시간을 가져보려고 한다. Airflow 환경 Level [core] parallelism Airflow 환경 내에서 동시에 실행할 수 있는 최대 Task의 수 이다. 예를 들어 32로 설정되어 있다면 Airflow 환경 내에서 동시에 실행될 수 있는 Task의 수는 최대 32개라는 뜻이다. (default : 32) max_active_tasks_per_dag DAG당 한 번에 스케줄링되는 최대 Task의 수를 결정한다. 즉, 하나의 DAG에서 동시에 실행될 수 있는 Task의 수를 말한다. (default :16) Airflow에 ..
개요 Elasticsearch는 실시간 검색이 가능하도록 하기 위해 색인(indexing)이라는 과정이 필요한데 이것을 Elasticsearch는 내부적으로 어떤 처리를 하는 지 알기 위해 오늘은 Elasticsearch 색인 과정에 대해 포스팅 하도록 하겠습니다. (본 내용은 Elasticsearch에 대해 기본적인 이해가 있다고 가정하고 작성하였습니다.) Elasticsearch Cluster 색인 과정을 알아보기 전에 Elasticsearch는 데이터를 어떻게 저장하는 지 알아보겠습니다. Elasticsearch는 Index 라는 단위를 많이 사용하는데 Index란 RDB와 비교하자면 테이블과 비슷합니다. Elasticsearch는 Index를 여러 개로 쪼개서 여러 노드에 분산하여 저장하는데 이 ..
개요 BigQuery의 예약된 쿼리 기능을 사용해서 테이블 별로 postfix를 붙여서 일자 별로 데이터 마트를 생성하는 쿼리를 매일 실행하도록 하려고 하는데 쿼리를 작성할 때, postfix를 동적으로 매일 날짜로 붙이기 위해서 리서치하는 중 알게 된 내용을 정리하려고 한다. 동적 SQL 절차적 언어 | BigQuery | Google Cloud 의견 보내기 절차적 언어 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Google 표준 SQL 절차적 언어를 사용하면 단일 쿼리에서 여러 문을 멀티 문 쿼리로 실 cloud.google.com 먼저, BigQuery 에서는 동적 SQL을 실행할 수 있도록 쿼리를 지원을 한다. EXECUTE IMMEDIATE 라는 구문을 지원하..
개요 회사에서 DW로 BigQuery를 도입한지 대략 1달이 지났고 전월 BigQuery 비용이 생각보다 많이 나와서 쿼리 사용과 스토리지 등에 대한 모니터링이 필요하다고 느껴졌고 구축에 대한 내용과 이를 통한 얻은 효과에 대해 포스팅을 하려고 한다. BigQuery 쿼리 사용량 모니터링 BigQuery는 쿼리 사용량과 스토리지 사용량으로 비용을 청구하는데 스토리지에 대한 비용은 매우 저렴하기 때문에 신경쓰지 않아도 큰 문제는 없어서 쿼리 사용량이 대부분이다. 그렇기 때문에 이를 모니터링 하기 위해서는 쿼리를 사용했다는 것에 대한 정보가 필요한데 다행히도 GCP에서 BigQuery를 사용한 로그를 남겨주기 때문에 이것을 활용하면 된다. 라우팅 및 스토리지 개요 | Cloud Logging | Google..
멍이요
'Data' 카테고리의 글 목록