GCP
-
BigQuery에서 가끔씩 Error: 80324028이 발생하면서 실행이 실패하는 경우가 있습니다. 이러한 현상을 구글링 해봤으나 별다른 성과가 없었으며, Slack overflow에서만 몇몇 답글이 달렸지만 해결방법은 없고 대부분이 "아마도 그럴 것이다?"라는 추측이었습니다. 무슨 작업을 했을 때 발생 하였는가? 그래서 몇 가지 의심 가는 정황을 포착해서 여러 가지 테스트를 해보았는데, 현재는 발생하지 않고 있습니다. 제가 하려던 작업은 ETL 작업이었고 Python Operator를 이용해서 작업을 부르고 그 안쪽에 BigQuery의 Query를 수행하는 작업이 몇 개 있었습니다. 대략 이러한 작업이었습니다. 이러한 여러 번의 Query를 수행하는 작업이 순차적으로 수행됩니다. drop_query ..
[BigQuery] Error: 80324028 발생 시 해결BigQuery에서 가끔씩 Error: 80324028이 발생하면서 실행이 실패하는 경우가 있습니다. 이러한 현상을 구글링 해봤으나 별다른 성과가 없었으며, Slack overflow에서만 몇몇 답글이 달렸지만 해결방법은 없고 대부분이 "아마도 그럴 것이다?"라는 추측이었습니다. 무슨 작업을 했을 때 발생 하였는가? 그래서 몇 가지 의심 가는 정황을 포착해서 여러 가지 테스트를 해보았는데, 현재는 발생하지 않고 있습니다. 제가 하려던 작업은 ETL 작업이었고 Python Operator를 이용해서 작업을 부르고 그 안쪽에 BigQuery의 Query를 수행하는 작업이 몇 개 있었습니다. 대략 이러한 작업이었습니다. 이러한 여러 번의 Query를 수행하는 작업이 순차적으로 수행됩니다. drop_query ..
2023.01.16 -
안녕하세요. 데이터 엔지니어 주형권입니다. 지난번에 작성 한 Cloud Build를 이용한 Github와 GCS의 동기화 작업을 소개한 적이 있는데요. ( 링크 ) 오늘 다시 한번 세팅해야 하는 일이 생겨서 세팅 하는 중에 오류를 발견하여 이를 어떻게 해결했는지 소개하고자 합니다. 오류 내용 "ERROR: build step 1 "gcr.io/cloud-builders/gsutil" failed: step exited with non-zero status: 1" 오류는 위와 같이 발생 하였습니다. 이게 무슨 내용인지 전혀 알 수가 없고, 무슨 말인지 알 수가 없어서 구글에 검색해도 해결 방법이 나오진 않았습니다. 더욱 자세한 내용을 스크린숏으로 보면 다음과 같습니다. yaml 파일이 잘못 된것이라고 생각..
[Cloud Build] GCS <-> github 동기화 실패 (failed: step exited with non-zero status: 1)안녕하세요. 데이터 엔지니어 주형권입니다. 지난번에 작성 한 Cloud Build를 이용한 Github와 GCS의 동기화 작업을 소개한 적이 있는데요. ( 링크 ) 오늘 다시 한번 세팅해야 하는 일이 생겨서 세팅 하는 중에 오류를 발견하여 이를 어떻게 해결했는지 소개하고자 합니다. 오류 내용 "ERROR: build step 1 "gcr.io/cloud-builders/gsutil" failed: step exited with non-zero status: 1" 오류는 위와 같이 발생 하였습니다. 이게 무슨 내용인지 전혀 알 수가 없고, 무슨 말인지 알 수가 없어서 구글에 검색해도 해결 방법이 나오진 않았습니다. 더욱 자세한 내용을 스크린숏으로 보면 다음과 같습니다. yaml 파일이 잘못 된것이라고 생각..
2022.12.06 -
안녕하세요. 최근 이직으로 인해서 오랜만에 인사를 드립니다. 이직을 하면서 새로운 환경에서 새로운 데이터 파이프라인을 만들다 보니 처음 접하는 도구를 사용하는 일이 많아졌습니다. GCP에 새로운 기능이 많이 생겼고 인원이 없는 경우 Saas를 이용해서 빠르게 무언가를 구축해야 하는 경우가 있어서 이번에는 GCP의 Composer를 사용하게 되었습니다. Composer란? https://cloud.google.com/composer/docs/composer-2/run-apache-airflow-dag 빠른 시작: Cloud Composer 2에서 Apache Airflow DAG 실행 | Google Cloud Cloud Composer 환경을 만들고 Cloud Composer 2에서 Apache Airf..
[GCP] Composer를 Git repo에 연동안녕하세요. 최근 이직으로 인해서 오랜만에 인사를 드립니다. 이직을 하면서 새로운 환경에서 새로운 데이터 파이프라인을 만들다 보니 처음 접하는 도구를 사용하는 일이 많아졌습니다. GCP에 새로운 기능이 많이 생겼고 인원이 없는 경우 Saas를 이용해서 빠르게 무언가를 구축해야 하는 경우가 있어서 이번에는 GCP의 Composer를 사용하게 되었습니다. Composer란? https://cloud.google.com/composer/docs/composer-2/run-apache-airflow-dag 빠른 시작: Cloud Composer 2에서 Apache Airflow DAG 실행 | Google Cloud Cloud Composer 환경을 만들고 Cloud Composer 2에서 Apache Airf..
2022.09.22 -
안녕하세요. Python으로 BigQuery에 Json 형태의 데이터를 Import 하려고 할 때 다음과 같은 오류가 발생하여 계속해서 삽질을 하다가 원인을 찾고 해결하여 이러한 삽질을 방지하기 위해서 글을 올립니다. 1. 무엇을 하려고 하였나? RDB에 있는 데이터를 Json 형태로 Local에 다운로드 다운로드 한 Json 파일을 GCS로 업로드 GCS에 있는 Json 파일을 BigQuery에 Import 3번에서 에러가 발생하였습니다. 에러 내용은 python과 BigQuery web UI에서 테이블 생성 기능으로 2가지 상황에서 각각 다르게 발생하였습니다. 2. Error 내용 1. python에서 발생하는 Error google.api_core.exceptions.BadRequest: 400 E..
[BigQuery] Json 파일 Import 오류안녕하세요. Python으로 BigQuery에 Json 형태의 데이터를 Import 하려고 할 때 다음과 같은 오류가 발생하여 계속해서 삽질을 하다가 원인을 찾고 해결하여 이러한 삽질을 방지하기 위해서 글을 올립니다. 1. 무엇을 하려고 하였나? RDB에 있는 데이터를 Json 형태로 Local에 다운로드 다운로드 한 Json 파일을 GCS로 업로드 GCS에 있는 Json 파일을 BigQuery에 Import 3번에서 에러가 발생하였습니다. 에러 내용은 python과 BigQuery web UI에서 테이블 생성 기능으로 2가지 상황에서 각각 다르게 발생하였습니다. 2. Error 내용 1. python에서 발생하는 Error google.api_core.exceptions.BadRequest: 400 E..
2022.07.12 -
안녕하세요. 최근에 이직을 하면서 많이 바빠서 글을 쓰지 못하였습니다. 어느정도 정리하고 여유가 생기면서 이번에 발생했던 오류에 대해서 글을 간략하게 쓰려고 합니다. 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 -
안녕하세요. 제가 아무래도 DBA로 시작해서 그런지 자연스럽게 성향이 운영을 당연시합니다. 모니터링을 데이터를 기반으로 비용 절감과 고효율을 만들기 위해서 여러 가지 방법으로 고민을 합니다. 최근 트랜드에서 아쉬운 부분이 있다면, 많은 회사들은 개발을 빠르게 하기에 초점을 맞추다 보니 운영을 뒷전인 경우가 굉장히 많은 것 같습니다. 운영을 신경 쓰지 않으면 결국 시스템은 터지기 마련입니다. 그렇기에 이번에는 BigQuery에서 몇 가지 운영 관련한 내용을 정리하여 글을 쓰고자 합니다. 1. Dataset 왜 지우려고 하는가? BigQuery는 Dataset의 저장 비용이 매우 저렴합니다. 제가 생각하기에 BigQuery의 비용은 저장비용보다는 검색(SELECT)비용이 대부분이라고 봅니다. 다음의 내용을 ..
BigQuery - 운영 1탄 / 불필요한 dataset 삭제안녕하세요. 제가 아무래도 DBA로 시작해서 그런지 자연스럽게 성향이 운영을 당연시합니다. 모니터링을 데이터를 기반으로 비용 절감과 고효율을 만들기 위해서 여러 가지 방법으로 고민을 합니다. 최근 트랜드에서 아쉬운 부분이 있다면, 많은 회사들은 개발을 빠르게 하기에 초점을 맞추다 보니 운영을 뒷전인 경우가 굉장히 많은 것 같습니다. 운영을 신경 쓰지 않으면 결국 시스템은 터지기 마련입니다. 그렇기에 이번에는 BigQuery에서 몇 가지 운영 관련한 내용을 정리하여 글을 쓰고자 합니다. 1. Dataset 왜 지우려고 하는가? BigQuery는 Dataset의 저장 비용이 매우 저렴합니다. 제가 생각하기에 BigQuery의 비용은 저장비용보다는 검색(SELECT)비용이 대부분이라고 봅니다. 다음의 내용을 ..
2021.11.10 -
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 -
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 -
지난 포스트에서 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 -
여러 가지 형태의 데이터를 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 -
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 -
안녕하세요. 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 -
안녕하세요. 이번에 회사에서 Google Cloud Platform에 있는 dataproc을 사용 하였습니다. 이런 저런 글을 보고 pyspark를 이용하여 실행하였지만 여러가지 문제가 많았으며 혼자서 많은 시행착오를 겪고 이러한 것을 조금이나마 줄이고자 글을 올립니다. 기준은 pyspark 입니다. 제가 개발자가 아니라서 코딩에 익숙하지 않고 python 또한 잘 하는 편이 아니므로, 코드는 매우 단순합니다. 우선 처음에 만드는 과정부터 순서데로 진행 하겠습니다. 1. Dataproc 생성 Google Cloud Platform( 이하 GCP)에서 Dataproc 메뉴를 선택 합니다. 처음에 동의 또는 시작하기 같은 안내 말이 나옵니다. (가장 초기에) 동의 또는 시작하기를 눌러서 시작한 뒤에 클러스터..
Dataproc 사용하기안녕하세요. 이번에 회사에서 Google Cloud Platform에 있는 dataproc을 사용 하였습니다. 이런 저런 글을 보고 pyspark를 이용하여 실행하였지만 여러가지 문제가 많았으며 혼자서 많은 시행착오를 겪고 이러한 것을 조금이나마 줄이고자 글을 올립니다. 기준은 pyspark 입니다. 제가 개발자가 아니라서 코딩에 익숙하지 않고 python 또한 잘 하는 편이 아니므로, 코드는 매우 단순합니다. 우선 처음에 만드는 과정부터 순서데로 진행 하겠습니다. 1. Dataproc 생성 Google Cloud Platform( 이하 GCP)에서 Dataproc 메뉴를 선택 합니다. 처음에 동의 또는 시작하기 같은 안내 말이 나옵니다. (가장 초기에) 동의 또는 시작하기를 눌러서 시작한 뒤에 클러스터..
2020.01.13