전체 글
데이테베이스 관리자로 시작하여 데이터 엔지니어로 경력을 이어가고 있는 경험을 정리 하였습니다.
-
글을 읽기 전에 이 내용은 저의 경험을 토대로 작성하였습니다. 현재 사용하시는 도구 및 방법과 다르다고 하여 무엇이 맞고 틀리고를 이야기하고자 하는 글이 아닌 경험을 공유하고자 작성된 글이므로 참고 차원에서 봐주시길 바랍니다. 데이터를 보기 위해서는 많은 과정이 필요합니다. SQL을 이용해서 데이터를 추출하고 이를 엑셀로 다운로드하거나 리포트를 만들어서 보는 과정이 아닌 전체적인 과정을 설명하고자 합니다. 이 글의 내용은 제가 아는 범위에서 작성하였으나 회사마다 모두 다르고 사람마다 모두 다른 방식으로 할 수 있기 때문에 어느 정도 감안해서 글을 읽어 주시길 바랍니다. 보통 데이터는 크게 3가지의 데이터가 있습니다. 정형 데이터 : 관계형 데이터베이스 (MySQL , SQL Server , Oracle)..
[공통] 데이터를 적재하고 보기까지글을 읽기 전에 이 내용은 저의 경험을 토대로 작성하였습니다. 현재 사용하시는 도구 및 방법과 다르다고 하여 무엇이 맞고 틀리고를 이야기하고자 하는 글이 아닌 경험을 공유하고자 작성된 글이므로 참고 차원에서 봐주시길 바랍니다. 데이터를 보기 위해서는 많은 과정이 필요합니다. SQL을 이용해서 데이터를 추출하고 이를 엑셀로 다운로드하거나 리포트를 만들어서 보는 과정이 아닌 전체적인 과정을 설명하고자 합니다. 이 글의 내용은 제가 아는 범위에서 작성하였으나 회사마다 모두 다르고 사람마다 모두 다른 방식으로 할 수 있기 때문에 어느 정도 감안해서 글을 읽어 주시길 바랍니다. 보통 데이터는 크게 3가지의 데이터가 있습니다. 정형 데이터 : 관계형 데이터베이스 (MySQL , SQL Server , Oracle)..
2022.06.16 -
안녕하세요. 최근에 이직을 하면서 많이 바빠서 글을 쓰지 못하였습니다. 어느정도 정리하고 여유가 생기면서 이번에 발생했던 오류에 대해서 글을 간략하게 쓰려고 합니다. 1. 무슨 작업을 하려고 하였는가? 현재 재직중인 회사는 Redshift를 사용하고 있으며 이를 BigQeury로 이관하려고 합니다. 그래서 GCP의 BigQuery 기능인 BigQuery Data Transfer를 이용해서 Redshift를 BigQuery 이관 하려고 합니다. https://cloud.google.com/bigquery-transfer/docs/redshift-migration?hl=ko Amazon Redshift에서 데이터 마이그레이션 | BigQuery Data Transfer Service | Google Clou..
Unable to proceed: Could not connect with provided parameters: No suitable driver found for "jdbc:redshift"안녕하세요. 최근에 이직을 하면서 많이 바빠서 글을 쓰지 못하였습니다. 어느정도 정리하고 여유가 생기면서 이번에 발생했던 오류에 대해서 글을 간략하게 쓰려고 합니다. 1. 무슨 작업을 하려고 하였는가? 현재 재직중인 회사는 Redshift를 사용하고 있으며 이를 BigQeury로 이관하려고 합니다. 그래서 GCP의 BigQuery 기능인 BigQuery Data Transfer를 이용해서 Redshift를 BigQuery 이관 하려고 합니다. https://cloud.google.com/bigquery-transfer/docs/redshift-migration?hl=ko Amazon Redshift에서 데이터 마이그레이션 | BigQuery Data Transfer Service | Google Clou..
2022.04.28 -
안녕하세요. 지난번의 BigQuery 운영 1탄 편이었던 불필요한 Dataset 삭제 이후에 2탄 BigQuery 사용량 관리에 대해서 글을 작성하였습니다. 어찌 보면 이 글이 1탄보다 훨씬 더 유용할 것으로 보입니다. Query 사용량의 경우 비용과 직결되는 부분이며, 데이터셋의 저장비용 보다 훨씬 많은 비용이 발생합니다. ( BigQuery 가격 ) Query를 어떻게 실행 하느냐에 따라서 엄청난 비용을 절약할 수 있고 이러한 모니터링을 만들어두면 여러모로 도움이 많이 됩니다. 사용자들에게 무작정 데이터를 많이 쓰지 못하게 하는 것보다는 효율적으로 만드는 방법을 알려줌으로써 모두가 데이터에 손쉽게 접근하고 손쉽게 사용하게 하는 것을 목적으로 하였기에 누구나 접근이 가능한 구조이므로, 데이터를 잘 모르..
[BigQuery] 운영 2탄 / Query 사용량 관리하기안녕하세요. 지난번의 BigQuery 운영 1탄 편이었던 불필요한 Dataset 삭제 이후에 2탄 BigQuery 사용량 관리에 대해서 글을 작성하였습니다. 어찌 보면 이 글이 1탄보다 훨씬 더 유용할 것으로 보입니다. Query 사용량의 경우 비용과 직결되는 부분이며, 데이터셋의 저장비용 보다 훨씬 많은 비용이 발생합니다. ( BigQuery 가격 ) Query를 어떻게 실행 하느냐에 따라서 엄청난 비용을 절약할 수 있고 이러한 모니터링을 만들어두면 여러모로 도움이 많이 됩니다. 사용자들에게 무작정 데이터를 많이 쓰지 못하게 하는 것보다는 효율적으로 만드는 방법을 알려줌으로써 모두가 데이터에 손쉽게 접근하고 손쉽게 사용하게 하는 것을 목적으로 하였기에 누구나 접근이 가능한 구조이므로, 데이터를 잘 모르..
2022.01.14 -
안녕하세요. 오랜만에 글을 쓰는 것 같습니다. 연말이라서 대외적으로 여러 가지 약속도 많고 일이 있어서 글을 못 쓴 것 같습니다. 써야 할 글은 많은데, 그러지 못한 거 같습니다. 다시 열심히 써야 할 것 같습니다. 오늘 소개 할 내용은 BigQuery의 클러스터링입니다. 이걸 처음 알았을 때 정말로 신선하고 너무 좋은 기능이라고 생각해서 나름대로 공부를 해서 이렇게 글을 올립니다. 클러스터링은 제가 공부하면서 개인적으로 생각하기에 RDB의 인덱스와 비슷한 것 같습니다. 어디까지나 개인적인 생각이지만 데이터를 정렬해서 가져오는 방법이나 클러스터링의 순서에 따라서 사용 여부가 결정되는 것을 보면 인덱스의 성질과 정말 비슷해 보입니다. RDB에서도 복합 인덱스를 생성할때 순서에 따라서 인덱스를 Seek 할지..
BigQuery - clustering 이야기안녕하세요. 오랜만에 글을 쓰는 것 같습니다. 연말이라서 대외적으로 여러 가지 약속도 많고 일이 있어서 글을 못 쓴 것 같습니다. 써야 할 글은 많은데, 그러지 못한 거 같습니다. 다시 열심히 써야 할 것 같습니다. 오늘 소개 할 내용은 BigQuery의 클러스터링입니다. 이걸 처음 알았을 때 정말로 신선하고 너무 좋은 기능이라고 생각해서 나름대로 공부를 해서 이렇게 글을 올립니다. 클러스터링은 제가 공부하면서 개인적으로 생각하기에 RDB의 인덱스와 비슷한 것 같습니다. 어디까지나 개인적인 생각이지만 데이터를 정렬해서 가져오는 방법이나 클러스터링의 순서에 따라서 사용 여부가 결정되는 것을 보면 인덱스의 성질과 정말 비슷해 보입니다. RDB에서도 복합 인덱스를 생성할때 순서에 따라서 인덱스를 Seek 할지..
2022.01.04 -
안녕하세요. 오랜만에 취미 글을 올립니다. 이번에 등산을 주제를 글을 올립니다. 우선 결론부터 말씀 드리면 한라산 정상은 못갔습니다. 기상악화로 한라산은 정상은 통제가 되었습니다. 그래서 전전긍긍하다가 한라산 홈페이지에서 확인해서 다른 곳으로 올라갔습니다. 이런 여러가지 상황을 겪으면서 한번 정리해서 올려두면 좋겠다 싶어서 글을 작성 하였습니다. 1. 예약 우선 예약은 아래의 사이트에서 할 수 있습니다. http://www.jeju.go.kr/hallasan/index.htm 우리나라의 국립공원은 현재 코로나로 인하여 모두 예약제 입니다. 단, 모든 구간이 예약은 아닙니다. 한라산의 경우 2개의 코스가 예약제 입니다. 성판악 -> 백록담 코스 관음사 -> 백록담 코스 나머지 구간은 예약이 아닙니다. 하지..
겨울 한라산 등산안녕하세요. 오랜만에 취미 글을 올립니다. 이번에 등산을 주제를 글을 올립니다. 우선 결론부터 말씀 드리면 한라산 정상은 못갔습니다. 기상악화로 한라산은 정상은 통제가 되었습니다. 그래서 전전긍긍하다가 한라산 홈페이지에서 확인해서 다른 곳으로 올라갔습니다. 이런 여러가지 상황을 겪으면서 한번 정리해서 올려두면 좋겠다 싶어서 글을 작성 하였습니다. 1. 예약 우선 예약은 아래의 사이트에서 할 수 있습니다. http://www.jeju.go.kr/hallasan/index.htm 우리나라의 국립공원은 현재 코로나로 인하여 모두 예약제 입니다. 단, 모든 구간이 예약은 아닙니다. 한라산의 경우 2개의 코스가 예약제 입니다. 성판악 -> 백록담 코스 관음사 -> 백록담 코스 나머지 구간은 예약이 아닙니다. 하지..
2021.12.20 -
안녕하세요. 제가 아무래도 DBA로 시작해서 그런지 자연스럽게 성향이 운영을 당연시합니다. 모니터링을 데이터를 기반으로 비용 절감과 고효율을 만들기 위해서 여러 가지 방법으로 고민을 합니다. 최근 트랜드에서 아쉬운 부분이 있다면, 많은 회사들은 개발을 빠르게 하기에 초점을 맞추다 보니 운영을 뒷전인 경우가 굉장히 많은 것 같습니다. 운영을 신경 쓰지 않으면 결국 시스템은 터지기 마련입니다. 그렇기에 이번에는 BigQuery에서 몇 가지 운영 관련한 내용을 정리하여 글을 쓰고자 합니다. 1. Dataset 왜 지우려고 하는가? BigQuery는 Dataset의 저장 비용이 매우 저렴합니다. 제가 생각하기에 BigQuery의 비용은 저장비용보다는 검색(SELECT)비용이 대부분이라고 봅니다. 다음의 내용을 ..
BigQuery - 운영 1탄 / 불필요한 dataset 삭제안녕하세요. 제가 아무래도 DBA로 시작해서 그런지 자연스럽게 성향이 운영을 당연시합니다. 모니터링을 데이터를 기반으로 비용 절감과 고효율을 만들기 위해서 여러 가지 방법으로 고민을 합니다. 최근 트랜드에서 아쉬운 부분이 있다면, 많은 회사들은 개발을 빠르게 하기에 초점을 맞추다 보니 운영을 뒷전인 경우가 굉장히 많은 것 같습니다. 운영을 신경 쓰지 않으면 결국 시스템은 터지기 마련입니다. 그렇기에 이번에는 BigQuery에서 몇 가지 운영 관련한 내용을 정리하여 글을 쓰고자 합니다. 1. Dataset 왜 지우려고 하는가? BigQuery는 Dataset의 저장 비용이 매우 저렴합니다. 제가 생각하기에 BigQuery의 비용은 저장비용보다는 검색(SELECT)비용이 대부분이라고 봅니다. 다음의 내용을 ..
2021.11.10 -
안녕하세요. 이 내용을 쓸지 말지 정말 고민을 많이 했습니다. 예전에 링크드인에 관련하여 포트폴리오 형식으로 PPT를 만들어서 올렸는데요. 조회수가 3만에 육박하여 굉장히 많은 분들이 관심을 가져 주셨습니다. 그래서 매번 써야지 써야지 했는데 내용이 워낙 길어서 고민을 많이 했습니다. 간단하게 쓸 수 없었습니다... 1.0 개발 - 2개월 2.0 개발 - 2개월 3.0 개발 - 2개월 이렇게 총 3번의 버전 업데이트를 하였습니다. 처음에는 데이터를 볼 수 없어서 분석을 하지 못하였는데, BigQuery로 넣는 작업부터 시작하여... 재사용성을 고려하여 코드를 리팩토링 하였고, 마지막으로 multi thread를 적용하였습니다. 코딩을 2019년에 처음 시작하여, 지금의 회사에서 팀장님과 팀원들에게 많이 ..
데이터 파이프라인 제작기 - 반정형 데이터편 (JSON)안녕하세요. 이 내용을 쓸지 말지 정말 고민을 많이 했습니다. 예전에 링크드인에 관련하여 포트폴리오 형식으로 PPT를 만들어서 올렸는데요. 조회수가 3만에 육박하여 굉장히 많은 분들이 관심을 가져 주셨습니다. 그래서 매번 써야지 써야지 했는데 내용이 워낙 길어서 고민을 많이 했습니다. 간단하게 쓸 수 없었습니다... 1.0 개발 - 2개월 2.0 개발 - 2개월 3.0 개발 - 2개월 이렇게 총 3번의 버전 업데이트를 하였습니다. 처음에는 데이터를 볼 수 없어서 분석을 하지 못하였는데, BigQuery로 넣는 작업부터 시작하여... 재사용성을 고려하여 코드를 리팩토링 하였고, 마지막으로 multi thread를 적용하였습니다. 코딩을 2019년에 처음 시작하여, 지금의 회사에서 팀장님과 팀원들에게 많이 ..
2021.10.26 -
BigQuery의 다수의 테이블의 스키마를 Json으로 봐야 하는 작업이 있어서 한 땀 한 땀 열심히 만다가 문득 스키마를 추출해서 파일로 저장할 수 없을까?라는 생각이 들어서 찾아봤습니다. 🙋♂️ 들어가며 일단 해당 기능을 사용하기 위해서는 bq가 있어야 합니다. bq 설치는 아래를 참고해 주세요. 👇👇👇👇 https://cloud.google.com/bigquery/docs/bq-command-line-tool?hl=ko bq 명령줄 도구 사용 | BigQuery | Google Cloud 의견 보내기 bq 명령줄 도구 사용 bq 명령줄 도구는 BigQuery용 Python 기반 명령줄 도구입니다. 이 페이지에는 bq 명령줄 도구 사용에 대한 일반적인 정보가 포함되어 있습니다. 모든 bq 명령어 및..
BigQuery - 테이블에서 스키마 추출BigQuery의 다수의 테이블의 스키마를 Json으로 봐야 하는 작업이 있어서 한 땀 한 땀 열심히 만다가 문득 스키마를 추출해서 파일로 저장할 수 없을까?라는 생각이 들어서 찾아봤습니다. 🙋♂️ 들어가며 일단 해당 기능을 사용하기 위해서는 bq가 있어야 합니다. bq 설치는 아래를 참고해 주세요. 👇👇👇👇 https://cloud.google.com/bigquery/docs/bq-command-line-tool?hl=ko bq 명령줄 도구 사용 | BigQuery | Google Cloud 의견 보내기 bq 명령줄 도구 사용 bq 명령줄 도구는 BigQuery용 Python 기반 명령줄 도구입니다. 이 페이지에는 bq 명령줄 도구 사용에 대한 일반적인 정보가 포함되어 있습니다. 모든 bq 명령어 및..
2021.09.28 -
안녕하세요. BigQuery를 사용하다 보면 자주 접하는 Column이 있습니다. 바로 JSON으로 만들어진 Column입니다. 데이터의 형태가 계속해서 변하거나 항목들이 가변적으로 들어오는 경우 JSON 형태로 데이터를 넣어서 데이터를 적재하는 경우가 많습니다. 데이터를 JSON으로 저장할 경우 파싱 해서 데이터를 꺼내서 써야 하는 경우가 많은데요. 이러한 기능을 지원하는 함수를 소개하고자 합니다. 저도 이번에 처음으로 써봐서 아주 신기해서 글을 정리하려고 합니다. 💁♂️ 들어가며 ... 들어가기 앞서 여러 종류의 JSON 파싱 함수를 이 페이지에서 볼 수 있습니다. https://cloud.google.com/bigquery/docs/reference/standard-sql/json_function..
BigQuery - JSON 컬럼 파싱하기안녕하세요. BigQuery를 사용하다 보면 자주 접하는 Column이 있습니다. 바로 JSON으로 만들어진 Column입니다. 데이터의 형태가 계속해서 변하거나 항목들이 가변적으로 들어오는 경우 JSON 형태로 데이터를 넣어서 데이터를 적재하는 경우가 많습니다. 데이터를 JSON으로 저장할 경우 파싱 해서 데이터를 꺼내서 써야 하는 경우가 많은데요. 이러한 기능을 지원하는 함수를 소개하고자 합니다. 저도 이번에 처음으로 써봐서 아주 신기해서 글을 정리하려고 합니다. 💁♂️ 들어가며 ... 들어가기 앞서 여러 종류의 JSON 파싱 함수를 이 페이지에서 볼 수 있습니다. https://cloud.google.com/bigquery/docs/reference/standard-sql/json_function..
2021.08.10 -
안녕하세요. Grafana를 통해서 Airflow 모니터링 지표를 만들고 있는 와중에 Airflow의 dag이 실패할 경우 링크를 통해서 즉시 해당 로그로 들어갈 수 있게 만들고 싶어서 여러 번의 삽질(?)을 통해서 알아낸 정보를 공유하고자 글을 작성하였습니다. 이 글은 Grafana v7.5.3 을 기반으로 작성 되었습니다. 🙇♂️ 결론만 이야기하면... ${__data.fields [0]} 을 Table에 입력하고 원하는 컬럼을 숫자만 바꿔서 지정하면 끝입니다. 하지만 이것을 어디에 어떻게 넣어야지 동작하는지는 친절하게 설명되어 있지 않습니다. 그래서 제가 하나씩 보여주고자 합니다. 👇 아래의 링크 참고 https://stackoverflow.com/questions/51177406/create-a..
Grafana - Table의 데이터 값 hyperlink로 만들기안녕하세요. Grafana를 통해서 Airflow 모니터링 지표를 만들고 있는 와중에 Airflow의 dag이 실패할 경우 링크를 통해서 즉시 해당 로그로 들어갈 수 있게 만들고 싶어서 여러 번의 삽질(?)을 통해서 알아낸 정보를 공유하고자 글을 작성하였습니다. 이 글은 Grafana v7.5.3 을 기반으로 작성 되었습니다. 🙇♂️ 결론만 이야기하면... ${__data.fields [0]} 을 Table에 입력하고 원하는 컬럼을 숫자만 바꿔서 지정하면 끝입니다. 하지만 이것을 어디에 어떻게 넣어야지 동작하는지는 친절하게 설명되어 있지 않습니다. 그래서 제가 하나씩 보여주고자 합니다. 👇 아래의 링크 참고 https://stackoverflow.com/questions/51177406/create-a..
2021.07.20 -
안녕하세요. 오늘 코딩을 하다가 갑자기 다음과 같은 오류가 발생하면서 무엇인지 찾아보고 해결하여 글을 올립니다. 🤔 오류 내용 AttributeError: partially initialized module 'logging' has no attribute 'getLogger' (most likely due to a circular import) 이게 뭐지? 하고 여기저기 찾아봤는데요. 다음의 사이트에서 해결 방법을 찾았습니다. https://geektechstuff.com/2020/06/13/attributeerror-partially-initialized-module-has-no-attribute-python/ AttributeError: partially initialized module has no..
most likely due to a circular import안녕하세요. 오늘 코딩을 하다가 갑자기 다음과 같은 오류가 발생하면서 무엇인지 찾아보고 해결하여 글을 올립니다. 🤔 오류 내용 AttributeError: partially initialized module 'logging' has no attribute 'getLogger' (most likely due to a circular import) 이게 뭐지? 하고 여기저기 찾아봤는데요. 다음의 사이트에서 해결 방법을 찾았습니다. https://geektechstuff.com/2020/06/13/attributeerror-partially-initialized-module-has-no-attribute-python/ AttributeError: partially initialized module has no..
2021.07.14 -
BigQuery는 Google에서도 강조하듯이 저장 비용이 매우 저렴합니다. BigQuery 가격 책정 확인 👇 https://cloud.google.com/bigquery/pricing.html?hl=ko#storage 가격 책정 | BigQuery | Google Cloud BigQuery 가격 책정 개요 BigQuery는 서버리스 데이터 분석 플랫폼입니다. BigQuery를 사용하기 위해 개별 인스턴스 또는 가상 머신을 프로비저닝할 필요가 없습니다. 대신 BigQuery는 필요에 따라 컴퓨팅 cloud.google.com 하지만 여기서 문제는 BigQuery의 검색(SELECT) 비용입니다. 저장소의 비용은 저렴하지만 SELECT의 경우 빈번하게 일어나기 때문에 이를 무분별하게 사용하면 자칫 많은 ..
BigQuery 성능/비용 팁BigQuery는 Google에서도 강조하듯이 저장 비용이 매우 저렴합니다. BigQuery 가격 책정 확인 👇 https://cloud.google.com/bigquery/pricing.html?hl=ko#storage 가격 책정 | BigQuery | Google Cloud BigQuery 가격 책정 개요 BigQuery는 서버리스 데이터 분석 플랫폼입니다. BigQuery를 사용하기 위해 개별 인스턴스 또는 가상 머신을 프로비저닝할 필요가 없습니다. 대신 BigQuery는 필요에 따라 컴퓨팅 cloud.google.com 하지만 여기서 문제는 BigQuery의 검색(SELECT) 비용입니다. 저장소의 비용은 저렴하지만 SELECT의 경우 빈번하게 일어나기 때문에 이를 무분별하게 사용하면 자칫 많은 ..
2021.06.11 -
안녕하세요. Python을 통해서 BigQuery에 Query를 실행하여 결과 값을 이용하려고 할 때 오류가 발생하였습니다. 무슨 코드를 날렸지? query_job = self.bigquery.query( f""" SELECT col1,col2,col3 FROM table WHERE date = {self.date} """ ) results = query_job.result() cs 위와 같이 매우 단순한 코드를 만들었습니다. Query를 BigQuery에 날려서 결과값을 가져와서 저장하고 이를 활용하고자 하였습니다. 오류 내용 google.api_core.exceptions.BadRequest: 400 No matching signature for operator = for argument types:..
Python에서 BigQuery Query 실행 시 오류안녕하세요. Python을 통해서 BigQuery에 Query를 실행하여 결과 값을 이용하려고 할 때 오류가 발생하였습니다. 무슨 코드를 날렸지? query_job = self.bigquery.query( f""" SELECT col1,col2,col3 FROM table WHERE date = {self.date} """ ) results = query_job.result() cs 위와 같이 매우 단순한 코드를 만들었습니다. Query를 BigQuery에 날려서 결과값을 가져와서 저장하고 이를 활용하고자 하였습니다. 오류 내용 google.api_core.exceptions.BadRequest: 400 No matching signature for operator = for argument types:..
2021.06.04 -
SQL Developer 사용하다가 SQL Developer가 접속이 안 되는 문제가 있었습니다. 몇 가지 의심을 하다가 Oracle Listener가 실행되지 않아서 접속이 불가능 경우가 있었습니다. 오류 발생 SQL Developer에는 다음과 같은 오류로 인하여 접속이 불가능하다고 나왔습니다. The Network Adapter could not establish the connection 원인 파악 위의 오류의 경우 몇가지 문제로 인하여 발생할 수 있다고 합니다. 접속 정보 오류 방화벽 오류 Oracle Listener 실행 중 아님 접속 정보는 문제가 없었으므로... Network 문제라고 하여, 우선 방화벽을 의심하였습니다. Telnet을 시도하였으나 역시 접속이 불가능하였습니다. 그래서 SE..
Oracle Listener 시작 불가능 해결SQL Developer 사용하다가 SQL Developer가 접속이 안 되는 문제가 있었습니다. 몇 가지 의심을 하다가 Oracle Listener가 실행되지 않아서 접속이 불가능 경우가 있었습니다. 오류 발생 SQL Developer에는 다음과 같은 오류로 인하여 접속이 불가능하다고 나왔습니다. The Network Adapter could not establish the connection 원인 파악 위의 오류의 경우 몇가지 문제로 인하여 발생할 수 있다고 합니다. 접속 정보 오류 방화벽 오류 Oracle Listener 실행 중 아님 접속 정보는 문제가 없었으므로... Network 문제라고 하여, 우선 방화벽을 의심하였습니다. Telnet을 시도하였으나 역시 접속이 불가능하였습니다. 그래서 SE..
2021.06.02 -
안녕하세요. 최근에 BI쪽으로 지도 데이터를 표현해야 하는 경우가 많아졌습니다. 도중에 Datastudio를 통해서 지도를 표현하는 과정을 글로 작성 하였습니다. 간략하게 Datastudio를 볼까요? Datastudio는 다음의 페이지에 들어가시면 누구나 사용할 수 있습니다. 또한 Google 계정이 있으면 무료로 사용이 가능합니다. https://datastudio.google.com/u/0/navigation/reporting 데이터의 경우 여러 가지를 사용 가능합니다. 저 같은 경우 큰 데이터가 아니기에 Google Sheets를 연동하였습니다. Datastudio의 가장 큰 장점은 확실히 Google 제품에 대해서 연동이 매우 간단하게 되어 있습니다. Google의 CloudSQL 또는 BigQ..
Datastudio를 통해서 지도(google map) 표현하기안녕하세요. 최근에 BI쪽으로 지도 데이터를 표현해야 하는 경우가 많아졌습니다. 도중에 Datastudio를 통해서 지도를 표현하는 과정을 글로 작성 하였습니다. 간략하게 Datastudio를 볼까요? Datastudio는 다음의 페이지에 들어가시면 누구나 사용할 수 있습니다. 또한 Google 계정이 있으면 무료로 사용이 가능합니다. https://datastudio.google.com/u/0/navigation/reporting 데이터의 경우 여러 가지를 사용 가능합니다. 저 같은 경우 큰 데이터가 아니기에 Google Sheets를 연동하였습니다. Datastudio의 가장 큰 장점은 확실히 Google 제품에 대해서 연동이 매우 간단하게 되어 있습니다. Google의 CloudSQL 또는 BigQ..
2021.05.27 -
Airflow의 스케줄 시간을 지표로 표현할 일이 있어서 Airflow의 스케줄 시간을 mysql을 통해서 Datetime 형태로 parsing 해야 하는 이슈가 있었습니다. 여기저기 찾아봤지만 정상적으로 안되어서 직접 Query를 작성하였습니다. 우선 한 가지 아쉬운 것은 모든 스케줄 시간을 parsing 하지는 못 하였습니다. 스케줄 시간에서 매일 발생하는 스케줄 시간만 표현하였고, 나머지 요일별, 월별, 주별 이런 내용은 parsing 하지 못하였습니다. 차후에 이 부분도 추가하여 글을 작성하도록 하겠습니다. 우선 저희 쪽에서 사용하는 부분은 일별 스케줄이라서, 이 부분만 작성 한 점 죄송합니다. 원본 데이터 원본 데이터의 경우 다음과 같은 형태로 있습니다. 여기서 @once도 제외하였습니다. (단..
MySQL을 이용하여 Airflow(Crontab) 스케줄 시간 parsingAirflow의 스케줄 시간을 지표로 표현할 일이 있어서 Airflow의 스케줄 시간을 mysql을 통해서 Datetime 형태로 parsing 해야 하는 이슈가 있었습니다. 여기저기 찾아봤지만 정상적으로 안되어서 직접 Query를 작성하였습니다. 우선 한 가지 아쉬운 것은 모든 스케줄 시간을 parsing 하지는 못 하였습니다. 스케줄 시간에서 매일 발생하는 스케줄 시간만 표현하였고, 나머지 요일별, 월별, 주별 이런 내용은 parsing 하지 못하였습니다. 차후에 이 부분도 추가하여 글을 작성하도록 하겠습니다. 우선 저희 쪽에서 사용하는 부분은 일별 스케줄이라서, 이 부분만 작성 한 점 죄송합니다. 원본 데이터 원본 데이터의 경우 다음과 같은 형태로 있습니다. 여기서 @once도 제외하였습니다. (단..
2021.05.21 -
superset은 무료로 쓸 수 있는 강력한 BI 도구입니다. 이번 글에서는 superset에서 BigQuery의 데이터를 읽어서 쓸 수 있도록 BigQuery를 연결하는 방법을 설명하고자 합니다. superset의 버전은 1.1.0 버전으로 2021.05.18 기준으로 최신으로 설치하였습니다. superset의 가장 상단에 메뉴에 data 부분에 Databases를 클릭하면 다음과 같이 나옵니다. 우측 상단에 + DATABASE 버튼을 클릭하면 새로운 DATABASE를 추가할 수 있습니다. 다른 옵션은 크게 채우지 않고 최소한의 옵션으로 BigQuery를 연결하도록 하겠습니다. DATABASE NAME* : 사용할 DATABASE 명 SQLALCHEMY URL* : URL은 연결할 BigQuery 주소..
superset BigQuery 데이터베이스 추가superset은 무료로 쓸 수 있는 강력한 BI 도구입니다. 이번 글에서는 superset에서 BigQuery의 데이터를 읽어서 쓸 수 있도록 BigQuery를 연결하는 방법을 설명하고자 합니다. superset의 버전은 1.1.0 버전으로 2021.05.18 기준으로 최신으로 설치하였습니다. superset의 가장 상단에 메뉴에 data 부분에 Databases를 클릭하면 다음과 같이 나옵니다. 우측 상단에 + DATABASE 버튼을 클릭하면 새로운 DATABASE를 추가할 수 있습니다. 다른 옵션은 크게 채우지 않고 최소한의 옵션으로 BigQuery를 연결하도록 하겠습니다. DATABASE NAME* : 사용할 DATABASE 명 SQLALCHEMY URL* : URL은 연결할 BigQuery 주소..
2021.05.18 -
💁♂️ 들어가며 데이터를 적재하면서 가장 중요한 것은 무엇일까요? 여러가지 이유가 있겠지만 무엇보다 그 데이터가 정상적으로 잘 적재되었는지 여부 입니다. 많은 사람들이 적재를 어떻게 하면 "빠르고 효율적으로 적재 할 수 있나?" 에 초점을 많이 둡니다. 하지만 이 데이터가 정상적으로 A 👉🏻 B 들어왔는지는 많이 고민하지 않는 것 같습니다. 이 글에서는 실제로 구현한 코드를 보여주진 않습니다. (회사에서는 제가 구현을 했지만..) 컨셉을 주로 설명하며, 각자가 맞게 회사 시스템에 녹일 수 있으면 좋겠습니다. 🤷♂️ 어떻게 체크 할것인가? 데이터를 가공하여 계산 된 데이터를 적재하는 경우는 그 데이터가 정확하게 나온 지 여부를 확인하지만 원천 데이터에서 데이터를 가져올 경우 데이터를 맞게 가져왔는지 확..
RDBMS 데이터 적재 시 데이터 정합성 체크💁♂️ 들어가며 데이터를 적재하면서 가장 중요한 것은 무엇일까요? 여러가지 이유가 있겠지만 무엇보다 그 데이터가 정상적으로 잘 적재되었는지 여부 입니다. 많은 사람들이 적재를 어떻게 하면 "빠르고 효율적으로 적재 할 수 있나?" 에 초점을 많이 둡니다. 하지만 이 데이터가 정상적으로 A 👉🏻 B 들어왔는지는 많이 고민하지 않는 것 같습니다. 이 글에서는 실제로 구현한 코드를 보여주진 않습니다. (회사에서는 제가 구현을 했지만..) 컨셉을 주로 설명하며, 각자가 맞게 회사 시스템에 녹일 수 있으면 좋겠습니다. 🤷♂️ 어떻게 체크 할것인가? 데이터를 가공하여 계산 된 데이터를 적재하는 경우는 그 데이터가 정확하게 나온 지 여부를 확인하지만 원천 데이터에서 데이터를 가져올 경우 데이터를 맞게 가져왔는지 확..
2021.04.15 -
기존에 링크드인에 공유한 포토폴리오 형식으로 제작 된 데이터 파이프라인 제작 관련 자료 입니다. 관련하여, 다운로드를 받으시려면 가장 아래에 첨부 파일을 확인해 주세요. 데이터 파이프라인 PDF
데이터 파인프라인 제작기기존에 링크드인에 공유한 포토폴리오 형식으로 제작 된 데이터 파이프라인 제작 관련 자료 입니다. 관련하여, 다운로드를 받으시려면 가장 아래에 첨부 파일을 확인해 주세요. 데이터 파이프라인 PDF
2021.03.16 -
오랜만에 글을 쓰는거 같습니다. 한동안 서버 세팅을 하면서 바쁜 시간을 보내고 재택 근무를 하면서 이런저런 적응을 하다보니 글을 안쓰게 되었습니다. 그러다 이번에 새롭게 Airflow2.0을 실제로 세팅 하면서 이런 저런것을 정리해야겠다 싶어서 글을 씁니다. 들어가며... 이 글을 읽고 참고 하시면 도움이 될 분들은 이런 분들 입니다. 스케줄 처리를 해야하는데, Airflow를 선택 하였다. 하지만 나는 딥하게 알지는 못한다. 대규모 처리가 필요한게 아닌 적당한 처리를 할 예정이다. 일단 실무에 급하게 반영해야 하는데 봐도 잘 모르겠다. 튜토리얼이 아닌 진짜 실무에서 쓸수 있는 Airflow 시스템을 구축 하려고 한다. 반면 읽어도 큰 도움이 안 될 분들은 이런 분들 입니다. 대규모 작업이 필요하며, 빠..
docker기반 Airflow 2.0 설치오랜만에 글을 쓰는거 같습니다. 한동안 서버 세팅을 하면서 바쁜 시간을 보내고 재택 근무를 하면서 이런저런 적응을 하다보니 글을 안쓰게 되었습니다. 그러다 이번에 새롭게 Airflow2.0을 실제로 세팅 하면서 이런 저런것을 정리해야겠다 싶어서 글을 씁니다. 들어가며... 이 글을 읽고 참고 하시면 도움이 될 분들은 이런 분들 입니다. 스케줄 처리를 해야하는데, Airflow를 선택 하였다. 하지만 나는 딥하게 알지는 못한다. 대규모 처리가 필요한게 아닌 적당한 처리를 할 예정이다. 일단 실무에 급하게 반영해야 하는데 봐도 잘 모르겠다. 튜토리얼이 아닌 진짜 실무에서 쓸수 있는 Airflow 시스템을 구축 하려고 한다. 반면 읽어도 큰 도움이 안 될 분들은 이런 분들 입니다. 대규모 작업이 필요하며, 빠..
2021.02.23 -
지난 포스트에서 GCP의 방화벽을 만드는 법을 작성하였습니다. ( GCP방화벽 만들기 ) 방화벽을 이용해서 최소한의 보안을 할 수 있습니다. 그런데 방화벽을 만들기 전에 0.0.0.0/0으로 All open으로 열려 있는 부분을 하나씩 보면서 체크 하긴 매우 어렵습니다. 지난 포스트에도 언급 하였지만 클라우드의 경우 불특정 다수의 사용자가 사용하다 보니 많은 부분에서 관리가 안 되는 경우가 있습니다. 그래서 운영을 할 때 만들때 전자결재를 받거나 매일 수동으로 체크하는 것은 매우 어렵다고 생각합니다. 기존의 인프라의 경우 이러한 작업을 할 경우 전자결재를 올리고 검토 이후에 서버에 추가하는 경우가 일반적이었습니다. 하지만 클라우드 환경에서는 다수의 사용자가 그렇게 할 경우 매우 불편하고 (만약 규모가 크..
GCP - all open 방화벽 체크지난 포스트에서 GCP의 방화벽을 만드는 법을 작성하였습니다. ( GCP방화벽 만들기 ) 방화벽을 이용해서 최소한의 보안을 할 수 있습니다. 그런데 방화벽을 만들기 전에 0.0.0.0/0으로 All open으로 열려 있는 부분을 하나씩 보면서 체크 하긴 매우 어렵습니다. 지난 포스트에도 언급 하였지만 클라우드의 경우 불특정 다수의 사용자가 사용하다 보니 많은 부분에서 관리가 안 되는 경우가 있습니다. 그래서 운영을 할 때 만들때 전자결재를 받거나 매일 수동으로 체크하는 것은 매우 어렵다고 생각합니다. 기존의 인프라의 경우 이러한 작업을 할 경우 전자결재를 올리고 검토 이후에 서버에 추가하는 경우가 일반적이었습니다. 하지만 클라우드 환경에서는 다수의 사용자가 그렇게 할 경우 매우 불편하고 (만약 규모가 크..
2021.01.04 -
GCP / AWS 등의 클라우드 환경을 사용하면 보안에 매우 민감합니다. 사용자들이 불특정 다수이며, 비 IT 직군도 많다 보니 이러한 보안에 취약할 수밖에 없습니다. 물론 규모가 큰 회사의 경우 보안 담당부서가 따로 있어서 이를 모두 관리하고 권한 부분도 관리하는 경우가 많지만 작은 회사의 경우는 그렇지 못한 경우가 많습니다. 만약에 GCE (Google Compute Engine) 를 만들고 방화벽을 연결하지 않고 바로 접속이 될 경우 0.0.0.0/0으로 모두 ALL 오픈된 상태이므로, 이는 매우 심각한 상황입니다. 그 누구의 집에서도 접속이 가능하다는 뜻입니다. 예를 들면 철수 집에서도 가능하고 영희 집에서도 접속이 가능하다는 뜻입니다. 보안에 매우 취약하므로, 즉시 0.0.0.0/0으로 열려 있..
GCP 방화벽(firewall) 설정GCP / AWS 등의 클라우드 환경을 사용하면 보안에 매우 민감합니다. 사용자들이 불특정 다수이며, 비 IT 직군도 많다 보니 이러한 보안에 취약할 수밖에 없습니다. 물론 규모가 큰 회사의 경우 보안 담당부서가 따로 있어서 이를 모두 관리하고 권한 부분도 관리하는 경우가 많지만 작은 회사의 경우는 그렇지 못한 경우가 많습니다. 만약에 GCE (Google Compute Engine) 를 만들고 방화벽을 연결하지 않고 바로 접속이 될 경우 0.0.0.0/0으로 모두 ALL 오픈된 상태이므로, 이는 매우 심각한 상황입니다. 그 누구의 집에서도 접속이 가능하다는 뜻입니다. 예를 들면 철수 집에서도 가능하고 영희 집에서도 접속이 가능하다는 뜻입니다. 보안에 매우 취약하므로, 즉시 0.0.0.0/0으로 열려 있..
2020.12.31 -
퀘스트 하다가 우연히 먹었는데, 1.3% 확률 드랍이였습니다. 운이 엄청나게 좋은 캐릭터... 배나리의 퀘스트에서 "여섯 번째 규칙: 은폐가 답이다" 퀘스트에서 해금을 하면 새로운 지역이 보이는데요. 여기서 "배부른 그늘사냥개"를 잡으면 1.3% 확률로 드랍합니다. 당연히 전부 주는 것으로 알았는데... 한번에 득... 여기에 있는 야수소굴의 "배부른 그늘사냥개"를 잡으면 1.3% 확률로 드랍하니 꾸준히 가시는 것을 추천 드립니다.
WOW - 어둠땅 탈것 (나락살이 영혼사냥꾼)퀘스트 하다가 우연히 먹었는데, 1.3% 확률 드랍이였습니다. 운이 엄청나게 좋은 캐릭터... 배나리의 퀘스트에서 "여섯 번째 규칙: 은폐가 답이다" 퀘스트에서 해금을 하면 새로운 지역이 보이는데요. 여기서 "배부른 그늘사냥개"를 잡으면 1.3% 확률로 드랍합니다. 당연히 전부 주는 것으로 알았는데... 한번에 득... 여기에 있는 야수소굴의 "배부른 그늘사냥개"를 잡으면 1.3% 확률로 드랍하니 꾸준히 가시는 것을 추천 드립니다.
2020.12.21 -
요즘 많은 분들이 SQL을 통해서 데이터를 조회하고 추출합니다. 예전에는 DBA 분들이 주로 SQL을 통해서 데이터를 조회하고 추출하였습니다. 하지만 이제는 데이터 분석가, 사업, 기획, 개발 많은 분야에서 다양한 분들이 SQL을 통해서 데이터를 조회 및 추출을 합니다. 이렇게 많은 분들이 사용하다 보니 비전문가가 많아서 성능을 고려하지 못하고 SQL을 쓰는 사례가 많아졌습니다. 이는 자칫 실서버 또는 분석용 서버에 무리를 주는 경우가 있어서 이러한 부분을 조금이라도 줄이기 위해서 글을 작성합니다. 이 글의 경우 mysql , google big query에서 테스트하였습니다. (2020 기준으로 회사에서 2개를 사용) 첫 번째, WHERE절의 좌변을 가공하지 마세요. 이게 무슨 말일까요? SQL의 기본..
비전공자가 알아두면 좋은 SQL 인덱스 성능 팁 2가지요즘 많은 분들이 SQL을 통해서 데이터를 조회하고 추출합니다. 예전에는 DBA 분들이 주로 SQL을 통해서 데이터를 조회하고 추출하였습니다. 하지만 이제는 데이터 분석가, 사업, 기획, 개발 많은 분야에서 다양한 분들이 SQL을 통해서 데이터를 조회 및 추출을 합니다. 이렇게 많은 분들이 사용하다 보니 비전문가가 많아서 성능을 고려하지 못하고 SQL을 쓰는 사례가 많아졌습니다. 이는 자칫 실서버 또는 분석용 서버에 무리를 주는 경우가 있어서 이러한 부분을 조금이라도 줄이기 위해서 글을 작성합니다. 이 글의 경우 mysql , google big query에서 테스트하였습니다. (2020 기준으로 회사에서 2개를 사용) 첫 번째, WHERE절의 좌변을 가공하지 마세요. 이게 무슨 말일까요? SQL의 기본..
2020.12.11