주형권의 포스트
-
안녕하세요. 최근에 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 -
블랑쉬를 얻기 위해서 캠프를 하시는 분들이 많은데 유투브나 인터넷을 보면 지도를 찾아서 쭉~ 이동하면서 보라고 하는데요. 그럴 필요가 없습니다. 딱 이 위치에 가면 정확히 나와서 얘가 가만히 있다가 달립니다. 오래된 성문으로 와이번타고 날아가서 내려가면 위치해 있습니다. 좌표 63.24 / 42.98쪽입니다. 폭포쪽에 큰 나무가 있습니다. 1시간 40분만에 득...
WOW - 블랑쉬 위치블랑쉬를 얻기 위해서 캠프를 하시는 분들이 많은데 유투브나 인터넷을 보면 지도를 찾아서 쭉~ 이동하면서 보라고 하는데요. 그럴 필요가 없습니다. 딱 이 위치에 가면 정확히 나와서 얘가 가만히 있다가 달립니다. 오래된 성문으로 와이번타고 날아가서 내려가면 위치해 있습니다. 좌표 63.24 / 42.98쪽입니다. 폭포쪽에 큰 나무가 있습니다. 1시간 40분만에 득...
2020.12.07 -
튼튼한 편자 이거 은근히 어디에 있는지 잘 안보여서 엄청 오래 걸렸는데요. 여기 아래의 3거리쪽에서 그냥 캠프하고 계시면 1분 정도에 한번씩 계속 나옵니다. 돌아 다니면서 시간 쓰지 말고 그냥 캠프 하세요.
WOW - 블랑쉬 재료 튼튼한 편자 얻기튼튼한 편자 이거 은근히 어디에 있는지 잘 안보여서 엄청 오래 걸렸는데요. 여기 아래의 3거리쪽에서 그냥 캠프하고 계시면 1분 정도에 한번씩 계속 나옵니다. 돌아 다니면서 시간 쓰지 말고 그냥 캠프 하세요.
2020.12.06 -
와우를 복귀해서 시작했는데 한 5년째 와린이라서 전설 아이템을 처음 만들어 봤습니다... 그래서 "마지막 조각"이라는 퀘스트를 하면서 뭐를 해야 하는지도 모르겠고 어떻게 하는지도 모르겠고 못하고 있었습니다. 그러다 길드원 분께서 아주 친절하게 답변해 주셔서 어떻게 하는지 드디어 알았습니다. 퀘스트 내용에 룬 도관,각각 다른 서신 획득 이게 뭘까? 해서 인터넷 찾아봐도 몇 줄로 대충 설명해놔서... 정확하게 보여드리겠습니다. 일단 저는 경매장에서 구매 했습니다. 이게 골발에서 먹을 수 있다는데 경매장에서 구할 수 있다고 해서 저는 경매장을 찾아갔습니다. 우선 이걸 선택할 때 봐야 할 것이 있습니다. 1. 어디 부위를 검색해야 할까? Shift + J를 누르면 다음과 같이 나옵니다. 위의 탭에서 "능력"을 ..
WOW - 마지막 조각와우를 복귀해서 시작했는데 한 5년째 와린이라서 전설 아이템을 처음 만들어 봤습니다... 그래서 "마지막 조각"이라는 퀘스트를 하면서 뭐를 해야 하는지도 모르겠고 어떻게 하는지도 모르겠고 못하고 있었습니다. 그러다 길드원 분께서 아주 친절하게 답변해 주셔서 어떻게 하는지 드디어 알았습니다. 퀘스트 내용에 룬 도관,각각 다른 서신 획득 이게 뭘까? 해서 인터넷 찾아봐도 몇 줄로 대충 설명해놔서... 정확하게 보여드리겠습니다. 일단 저는 경매장에서 구매 했습니다. 이게 골발에서 먹을 수 있다는데 경매장에서 구할 수 있다고 해서 저는 경매장을 찾아갔습니다. 우선 이걸 선택할 때 봐야 할 것이 있습니다. 1. 어디 부위를 검색해야 할까? Shift + J를 누르면 다음과 같이 나옵니다. 위의 탭에서 "능력"을 ..
2020.12.06 -
와우 참회의 사냥 2개는 몹 위치가 나오는데 나머지 2개는 안나와서 헤매다가 글 씁니다. 아래 처럼 2곳에 가면 거미줄에 속박되어 있는 것이 보입니다. 클릭 해주면 됩니다. 혹시 이 지도가 정확히 어디인지 모르실 경우 아래에 큰 지도를 확인해주세요. 아마도 WOW 버그 같네요.. 퀘스트 없어진지 알고 벙쪘어요
WOW - 참회의 사냥 몹 위치와우 참회의 사냥 2개는 몹 위치가 나오는데 나머지 2개는 안나와서 헤매다가 글 씁니다. 아래 처럼 2곳에 가면 거미줄에 속박되어 있는 것이 보입니다. 클릭 해주면 됩니다. 혹시 이 지도가 정확히 어디인지 모르실 경우 아래에 큰 지도를 확인해주세요. 아마도 WOW 버그 같네요.. 퀘스트 없어진지 알고 벙쪘어요
2020.11.30 -
airflow에서 dag을 만들고 실행을 시켰는데 task는 분명히 뜨고 해당 task도 실행중으로 나오는데, 상태값만 변하고 실행되지 않는 경우가 있습니다. 다음과 같은 경우가 그 현상에 해당 합니다. 아래와 같이 Task의 상태값이 분명히 실행으로 변경되었는데, 아래의 네모칸에 실행중(초록색)으로 변경되지 않습니다. 아무리 기다려도 역시 그대로 입니다. 그래서 어떻게 할지 고민했는데, airflow에서 강제로 "Run"을 시킬 수 있습니다. 강제로 queue에 넣어주는 방법입니다. 가끔씩 should가 느리게 동작해서 반응이 없을 경우가 있는데 이렇게 강제로 Run을 시켜서 동작 시키는 경우가 많기 때문에 같은 증상으로 보고 똑같이 실행해 봤습니다. 다음과 같이 강제로 "Run"으로 변경 해봤습니다...
airflow dag의 task를 실행하고 동작하지 않는 현상airflow에서 dag을 만들고 실행을 시켰는데 task는 분명히 뜨고 해당 task도 실행중으로 나오는데, 상태값만 변하고 실행되지 않는 경우가 있습니다. 다음과 같은 경우가 그 현상에 해당 합니다. 아래와 같이 Task의 상태값이 분명히 실행으로 변경되었는데, 아래의 네모칸에 실행중(초록색)으로 변경되지 않습니다. 아무리 기다려도 역시 그대로 입니다. 그래서 어떻게 할지 고민했는데, airflow에서 강제로 "Run"을 시킬 수 있습니다. 강제로 queue에 넣어주는 방법입니다. 가끔씩 should가 느리게 동작해서 반응이 없을 경우가 있는데 이렇게 강제로 Run을 시켜서 동작 시키는 경우가 많기 때문에 같은 증상으로 보고 똑같이 실행해 봤습니다. 다음과 같이 강제로 "Run"으로 변경 해봤습니다...
2020.11.03 -
여러 가지 형태의 데이터를 bigquery에 넣어서 볼 수 있습니다. 이번 포스트에서는 그중에 하나인 geojson을 bigquery에 업로드하는 방법을 정리하였습니다. 이미 몇몇 블로그에서 geojson 적재하는 방법을 소개하고 있는데요. 안 되는 부분이 많아서 제가 직접 정리하였습니다. 사용된 환경은 MAC입니다. 또한 추가적으로 Python3가 필요합니다. 우선 geojson을 다운로드합니다. ( geojson 샘플 다운로드 ) 아래와 같이 지정하고 Save 부분을 누르면 geojson으로 다운로드 가능합니다. 다운로드한 파일을 bigquery에 넣을 수 있도록 줄 바꿈 형태의 JSON 파일로 만들어야 합니다. 저 같은 경우 jq를 사용하였습니다. 1 brew install jq cs 간단하게 다운..
geojson 파일을 bigquery 적재 (geography 활용)여러 가지 형태의 데이터를 bigquery에 넣어서 볼 수 있습니다. 이번 포스트에서는 그중에 하나인 geojson을 bigquery에 업로드하는 방법을 정리하였습니다. 이미 몇몇 블로그에서 geojson 적재하는 방법을 소개하고 있는데요. 안 되는 부분이 많아서 제가 직접 정리하였습니다. 사용된 환경은 MAC입니다. 또한 추가적으로 Python3가 필요합니다. 우선 geojson을 다운로드합니다. ( geojson 샘플 다운로드 ) 아래와 같이 지정하고 Save 부분을 누르면 geojson으로 다운로드 가능합니다. 다운로드한 파일을 bigquery에 넣을 수 있도록 줄 바꿈 형태의 JSON 파일로 만들어야 합니다. 저 같은 경우 jq를 사용하였습니다. 1 brew install jq cs 간단하게 다운..
2020.10.06 -
Hello. Many people seem to know the part of optimizing cost and performance by fetching data without reading unnecessary parts in big queries using partition columns. There are many advantages to using partitioned columns as above, but there may be cases where you cannot. If there are several date columns in the table, the case where the date column to be used is not partitioned is as follows. B..
How to save big query costHello. Many people seem to know the part of optimizing cost and performance by fetching data without reading unnecessary parts in big queries using partition columns. There are many advantages to using partitioned columns as above, but there may be cases where you cannot. If there are several date columns in the table, the case where the date column to be used is not partitioned is as follows. B..
2020.09.29 -
docker 컨테이너를 삭제하려고 하는데, 계속해서 Removal In Progress으로 상태가 멈춰 있고 지워지지 않는 현상을 발견하였습니다. 그래서 찾아봤는데 다음과 같은 방법으로 해결 하면 된다고 하여 확인하였는데... 무엇을 지워야 할지 몰라서 당황하였습니다. 참고 URL github.com/moby/moby/issues/22312 Containers stuck in "Removal In Progress" · Issue #22312 · moby/moby Output of docker version: Client: Version: 1.11.0 API version: 1.23 Go version: go1.5.4 Git commit: 4dc5990 Built: Wed Apr 13 18:34:23 20..
docker - 무기한 Removal In Progress 현상docker 컨테이너를 삭제하려고 하는데, 계속해서 Removal In Progress으로 상태가 멈춰 있고 지워지지 않는 현상을 발견하였습니다. 그래서 찾아봤는데 다음과 같은 방법으로 해결 하면 된다고 하여 확인하였는데... 무엇을 지워야 할지 몰라서 당황하였습니다. 참고 URL github.com/moby/moby/issues/22312 Containers stuck in "Removal In Progress" · Issue #22312 · moby/moby Output of docker version: Client: Version: 1.11.0 API version: 1.23 Go version: go1.5.4 Git commit: 4dc5990 Built: Wed Apr 13 18:34:23 20..
2020.09.10 -
python을 이용하여 google cloud storage에서 파일을 다운로드 받을때 다음과 같이 오류가 발생하는 경우가 있습니다. python의 코드를 이용하여 실행하였는데, Google 공식 사이트에 안내된 스크립트를 이용하였는데, 오류가 발생합니다. URL : cloud.google.com/storage/docs/downloading-objects?hl=ko#code-samples 객체 다운로드 | Cloud Storage | Google Cloud 이 페이지에서는 Cloud Storage 버킷에서 객체를 다운로드하는 방법을 설명합니다. 객체에 대한 개요는 핵심 용어를 참조하세요. 참고: 객체에 고객 제공 암호화 키를 사용하는 경우 고객 제공 암호 cloud.google.com 아래의 코드를 그대..
python google cloud storage download error - Request failed with status code 404python을 이용하여 google cloud storage에서 파일을 다운로드 받을때 다음과 같이 오류가 발생하는 경우가 있습니다. python의 코드를 이용하여 실행하였는데, Google 공식 사이트에 안내된 스크립트를 이용하였는데, 오류가 발생합니다. URL : cloud.google.com/storage/docs/downloading-objects?hl=ko#code-samples 객체 다운로드 | Cloud Storage | Google Cloud 이 페이지에서는 Cloud Storage 버킷에서 객체를 다운로드하는 방법을 설명합니다. 객체에 대한 개요는 핵심 용어를 참조하세요. 참고: 객체에 고객 제공 암호화 키를 사용하는 경우 고객 제공 암호 cloud.google.com 아래의 코드를 그대..
2020.09.04 -
Airflow를 세팅하고 CPU를 보면 아무것도 하지 않고 있는데, CPU를 40~50% 정도 점유하는 경우가 있습니다. 하지만 이는 몇 가지 옵션만 변경한다면 쉽게 CPU 점유율을 낮출 수 있습니다. 또한 운영상에 큰 지장이 없습니다. 저의 경우 GCP 위에서 docker를 통해서 airflow를 운영하고 있으며, 옵션은 worker,scheduler,webserver 이렇게 3개의 컨테이너에 적용하였습니다. 모두 동일하게 적용하였습니다. 1 2 3 4 5 6 7 8 9 10 11 # The scheduler constantly tries to trigger new tasks (look at the # scheduler section in the docs for more information). Thi..
airflow CPU가 높게 점유되는 현상Airflow를 세팅하고 CPU를 보면 아무것도 하지 않고 있는데, CPU를 40~50% 정도 점유하는 경우가 있습니다. 하지만 이는 몇 가지 옵션만 변경한다면 쉽게 CPU 점유율을 낮출 수 있습니다. 또한 운영상에 큰 지장이 없습니다. 저의 경우 GCP 위에서 docker를 통해서 airflow를 운영하고 있으며, 옵션은 worker,scheduler,webserver 이렇게 3개의 컨테이너에 적용하였습니다. 모두 동일하게 적용하였습니다. 1 2 3 4 5 6 7 8 9 10 11 # The scheduler constantly tries to trigger new tasks (look at the # scheduler section in the docs for more information). Thi..
2020.08.11 -
안녕하세요. google compute engine(이하 GCE)을 모니터링해야 해서 stackdriver를 적극적으로 활용하려고 하였는데요. 너무 UI도 별로고 제가 하고싶은데로 변형해서 사용하기에 너무 불편해서 직접 python api를 이용해서 데이터를 읽고 이를 mysql에 넣어서 datastudio로 만드는 방법을 선택하였습니다. (여기서는 API 사용법만 설명합니다..) 그런데 이 python api가 너무 설명도 많이 없고 불친절해서 하면서 겪은 이슈에 대해서 정리하였습니다. 우선 제가 참고한 api는 list_time_series라는 google에서 제공하는 phyton api입니다. 아래의 url을 들어가 보면 python뿐만 아니라 다양한 언어를 지원하는 듯합니다. https://clo..
GCP-stackdriver python api 사용하기(list_time_series)안녕하세요. google compute engine(이하 GCE)을 모니터링해야 해서 stackdriver를 적극적으로 활용하려고 하였는데요. 너무 UI도 별로고 제가 하고싶은데로 변형해서 사용하기에 너무 불편해서 직접 python api를 이용해서 데이터를 읽고 이를 mysql에 넣어서 datastudio로 만드는 방법을 선택하였습니다. (여기서는 API 사용법만 설명합니다..) 그런데 이 python api가 너무 설명도 많이 없고 불친절해서 하면서 겪은 이슈에 대해서 정리하였습니다. 우선 제가 참고한 api는 list_time_series라는 google에서 제공하는 phyton api입니다. 아래의 url을 들어가 보면 python뿐만 아니라 다양한 언어를 지원하는 듯합니다. https://clo..
2020.03.27 -
안녕하세요. big query에서 파티션 컬럼을 사용하여 불필요한 부분을 읽지 않고 데이터를 가져옴으로써 비용과 성능을 최적화하는 부분은 많은 분들이 알고 계실 듯합니다. 위와 같이 파티션 컬럼을 이용할 경우 많은 이점을 가질 수 있지만 그렇게 하지 못하는 경우가 존재할 수 있습니다. 만약에 테이블에 날짜 컬럼이 여러 가지인데, 사용하고자 하는 날짜 컬럼이 파티션 되지 않은 경우가 다음과 같은 경우입니다. big query에서는 일반 RDB처럼 여러 개의 인덱스(파티션 칼럼)를 제공하지 않습니다. 그렇기 때문에 1개의 파티션 칼럼을 통해서 성능을 향상해야 하는데요. 이 경우 매우 난감한 상황이 발생합니다. 기준으로 하는 날짜 컬럼으로 값을 가져올 경우 데이터가 맞지 않는데 성능, 비용 때문에 이를 써야 ..
big query 비용을 줄이기 위한 전략안녕하세요. big query에서 파티션 컬럼을 사용하여 불필요한 부분을 읽지 않고 데이터를 가져옴으로써 비용과 성능을 최적화하는 부분은 많은 분들이 알고 계실 듯합니다. 위와 같이 파티션 컬럼을 이용할 경우 많은 이점을 가질 수 있지만 그렇게 하지 못하는 경우가 존재할 수 있습니다. 만약에 테이블에 날짜 컬럼이 여러 가지인데, 사용하고자 하는 날짜 컬럼이 파티션 되지 않은 경우가 다음과 같은 경우입니다. big query에서는 일반 RDB처럼 여러 개의 인덱스(파티션 칼럼)를 제공하지 않습니다. 그렇기 때문에 1개의 파티션 칼럼을 통해서 성능을 향상해야 하는데요. 이 경우 매우 난감한 상황이 발생합니다. 기준으로 하는 날짜 컬럼으로 값을 가져올 경우 데이터가 맞지 않는데 성능, 비용 때문에 이를 써야 ..
2020.03.04 -
멱등성이란 DW에서 데이터를 적재 할때 자주 사용 합니다. DW에서 이따금씩 재처리를 하는 경우 기존의 잘못된 데이터를 지우고 재적재 해야 합니다. 그렇지 않으면 데이터의 중복이 발생하여 데이터가 이상하게 증가하거나 결과값이 이상하게 나올 수 있습니다. 그런데 big query에서 제가 겪은 상황에서 멱등성을 고려 하여 프로세스를 구성하였다가 큰 낭패를 본적이 있습니다. 상황은 다음과 같습니다. bucket에 JSON 형태로 쌓이는 데이터가 있습니다. 데이터는 YYYY/MM/DD 형태로 쌓이고 있습니다. 그런데 데이터를 적재할때 2020/02/26 폴더의 데이터에 서버에서 조금씩 지연되서 들어오는 경우 2020-02-27의 데이터가 들어오는 경우가 있습니다. (한개의 파일에 다른 날짜의 데이터가 들어옴)..
big query(빅쿼리)에서 멱등성을 위한 전략멱등성이란 DW에서 데이터를 적재 할때 자주 사용 합니다. DW에서 이따금씩 재처리를 하는 경우 기존의 잘못된 데이터를 지우고 재적재 해야 합니다. 그렇지 않으면 데이터의 중복이 발생하여 데이터가 이상하게 증가하거나 결과값이 이상하게 나올 수 있습니다. 그런데 big query에서 제가 겪은 상황에서 멱등성을 고려 하여 프로세스를 구성하였다가 큰 낭패를 본적이 있습니다. 상황은 다음과 같습니다. bucket에 JSON 형태로 쌓이는 데이터가 있습니다. 데이터는 YYYY/MM/DD 형태로 쌓이고 있습니다. 그런데 데이터를 적재할때 2020/02/26 폴더의 데이터에 서버에서 조금씩 지연되서 들어오는 경우 2020-02-27의 데이터가 들어오는 경우가 있습니다. (한개의 파일에 다른 날짜의 데이터가 들어옴)..
2020.02.26 -
안녕하세요. GCP의 dataproc을 처음으로 사용하면서 겪은 이슈에 대해서 글 올려 봅니다. 혼자서 바보같이 3일 동안 찾아봤으나 완전히 방향을 잘못 잡아서 혹시 저와 같은 이슈가 있는 분들이 계실 것 같아서 글 올립니다. 우선 dataproc을 국내에서는 잘 사용하지 않는 듯 하여 한글 자료는 거의 없다고 보는게 맞을 듯 합니다. 다시 본론으로 들어가서 오류의 내용은 다음과 같습니다. Bit Server VM warning: INFO: os::commit_memory(0x00000000bac00000, 155713536, 0) failed; error='Cannot allocate memory' (errno=12) # # There is insufficient memory for the Java R..
GCP - dataproc 메모리 이슈안녕하세요. GCP의 dataproc을 처음으로 사용하면서 겪은 이슈에 대해서 글 올려 봅니다. 혼자서 바보같이 3일 동안 찾아봤으나 완전히 방향을 잘못 잡아서 혹시 저와 같은 이슈가 있는 분들이 계실 것 같아서 글 올립니다. 우선 dataproc을 국내에서는 잘 사용하지 않는 듯 하여 한글 자료는 거의 없다고 보는게 맞을 듯 합니다. 다시 본론으로 들어가서 오류의 내용은 다음과 같습니다. Bit Server VM warning: INFO: os::commit_memory(0x00000000bac00000, 155713536, 0) failed; error='Cannot allocate memory' (errno=12) # # There is insufficient memory for the Java R..
2020.01.13