군고구마
-
안녕하세요. 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 -
안녕하세요. 이번에 회사에서 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 -
Airflow는 ETL스케줄링 오픈소스로 많은 분들이 사용하고 있습니다. 하지만 오픈소스라서 여러가지 불편점이 있는데요. 그 중 알람의 경우도 그렇습니다. 물론 Dag에 slack 알람을 받을 수 있도록 설정이 가능 한데요. 이 경우 매우 불편하게 하나씩 설정해야 하는 경우가 있습니다. 그래서 Airflow의 postgreSQL에 있는 데이터를 기반으로 slack 알람을 받을 수 있는 python 스크립트를 만들어봤습니다. 우선 세팅이 필요한데요. slack으로 알람을 받기 위해서는 2가지가 필요합니다. slack channel ID slack webhook url 우선 channel ID의 경우 다음과 같이 받을 수 있습니다. slack을 웹으로 접속 할 경우 위에 url을 확인 할 수 있는데요. 다음..
Airflow 실패여부 slack알람으로 받기 (python)Airflow는 ETL스케줄링 오픈소스로 많은 분들이 사용하고 있습니다. 하지만 오픈소스라서 여러가지 불편점이 있는데요. 그 중 알람의 경우도 그렇습니다. 물론 Dag에 slack 알람을 받을 수 있도록 설정이 가능 한데요. 이 경우 매우 불편하게 하나씩 설정해야 하는 경우가 있습니다. 그래서 Airflow의 postgreSQL에 있는 데이터를 기반으로 slack 알람을 받을 수 있는 python 스크립트를 만들어봤습니다. 우선 세팅이 필요한데요. slack으로 알람을 받기 위해서는 2가지가 필요합니다. slack channel ID slack webhook url 우선 channel ID의 경우 다음과 같이 받을 수 있습니다. slack을 웹으로 접속 할 경우 위에 url을 확인 할 수 있는데요. 다음..
2019.12.04 -
글을 읽기에 앞서 해당 코드는 python 및 개발 지식이 없는 제가 직접 만든 코드 입니다. 개발자 분이 보시기에 많이 이상 할 수 있습니다. 최적화가 되어 있지 않으며, 코드를 보기에 불편 할 수 있는 점 양해 부탁 드립니다. 1. 수집 조건 Cloud Watch 상에서 하루 평균 CPU가 10%를 넘지 못하는 경우 수집 limit를 조정 가능 합니다. 코드를 수정하면 MAX / MIN으로도 수정 가능 합니다. spot EC2를 수집 하지 않습니다. 2. 수집 내역 아래의 컬럼명은 수정이 가능하며, 기호에 맞게 사용 부탁 드립니다. 계속해서 수정하다 보니 수집하는 명칭이 이상할 수 있습니다. account : AWS 계정명 isinstance_id : EC2의 Instance ID InstanceTy..
AWS monitoring - Cloud Watch 기반 CPU 10%미만 EC2 정보 수집글을 읽기에 앞서 해당 코드는 python 및 개발 지식이 없는 제가 직접 만든 코드 입니다. 개발자 분이 보시기에 많이 이상 할 수 있습니다. 최적화가 되어 있지 않으며, 코드를 보기에 불편 할 수 있는 점 양해 부탁 드립니다. 1. 수집 조건 Cloud Watch 상에서 하루 평균 CPU가 10%를 넘지 못하는 경우 수집 limit를 조정 가능 합니다. 코드를 수정하면 MAX / MIN으로도 수정 가능 합니다. spot EC2를 수집 하지 않습니다. 2. 수집 내역 아래의 컬럼명은 수정이 가능하며, 기호에 맞게 사용 부탁 드립니다. 계속해서 수정하다 보니 수집하는 명칭이 이상할 수 있습니다. account : AWS 계정명 isinstance_id : EC2의 Instance ID InstanceTy..
2019.11.10 -
embulk plugin에서 embulk-output-bigquery부분에서 아래와 같은 오류가 날 때 해결 방법에 대해서 적어 봤습니다. Incompatible table partitioning specification when copying to the column partitioned table 위의 오류는 mysql -> big query로 갈 때 big query 쪽에 이미 partition이 되어 있는 경우 발생하였습니다. 상황에 따라서 다양하게 발생하는 것으로 보이는데 저의 경우 위의 상황으로 발생하였습니다. 관련해서 embulk plugin 쪽에 내용을 보면 다음과 같이 표기되어 있습니다. 아래의 내용은 mode에서 replace를 사용할 때 관련된 내용인 거 같은데, 사실 해결 방법과 별..
Incompatible table partitioning specification when copying to the column partitioned tableembulk plugin에서 embulk-output-bigquery부분에서 아래와 같은 오류가 날 때 해결 방법에 대해서 적어 봤습니다. Incompatible table partitioning specification when copying to the column partitioned table 위의 오류는 mysql -> big query로 갈 때 big query 쪽에 이미 partition이 되어 있는 경우 발생하였습니다. 상황에 따라서 다양하게 발생하는 것으로 보이는데 저의 경우 위의 상황으로 발생하였습니다. 관련해서 embulk plugin 쪽에 내용을 보면 다음과 같이 표기되어 있습니다. 아래의 내용은 mode에서 replace를 사용할 때 관련된 내용인 거 같은데, 사실 해결 방법과 별..
2019.10.28 -
환경 - OS : Mac OS - Input : mysql (AWS) - Output : big query (GCP) 오류 내용 org.embulk.exec.PartialExecutionException: java.lang.RuntimeException: java.sql.SQLException: The server time zone value 'KST' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you..
embulk Error (server Timezone)환경 - OS : Mac OS - Input : mysql (AWS) - Output : big query (GCP) 오류 내용 org.embulk.exec.PartialExecutionException: java.lang.RuntimeException: java.sql.SQLException: The server time zone value 'KST' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you..
2019.10.25 -
SQL Server 2016 부터 JSON 형태를 파싱하는 쿼리를 지원합니다. Step 1 - 테이블 생성 - JSON 형태의 문자들을 넣어줄 컬럼이 있는 테이블을 하나 생성 합니다. create table JSON_table ( seqintidentity(1,1) ,reg_datedatetime ,JSONnvarchar(1000) ) go Step 2 - JSON 형태 데이터 넣기- 제가 임의로 만든 JSON형태의 데이터를 1건 넣어 보겠습니다.insert into JSON_table (reg_date,JSON) values (getdate(), '{"UserLevel":1,"Item":[{"id":20030,"type":2,"count":2},{"id":20024,"type":3,"count":4}]..
SQL Server 2016 - JSON parserSQL Server 2016 부터 JSON 형태를 파싱하는 쿼리를 지원합니다. Step 1 - 테이블 생성 - JSON 형태의 문자들을 넣어줄 컬럼이 있는 테이블을 하나 생성 합니다. create table JSON_table ( seqintidentity(1,1) ,reg_datedatetime ,JSONnvarchar(1000) ) go Step 2 - JSON 형태 데이터 넣기- 제가 임의로 만든 JSON형태의 데이터를 1건 넣어 보겠습니다.insert into JSON_table (reg_date,JSON) values (getdate(), '{"UserLevel":1,"Item":[{"id":20030,"type":2,"count":2},{"id":20024,"type":3,"count":4}]..
2017.06.01 -
안녕하세요. MSSQL 2016 AlwaysON 운영을 하면서 계속해서 운영이슈가 생기고 있습니다. 이번에는 지난 번에 없는 계정을 만드는 스크립트에 이어서, 2번째로 Standby에만 존재하는 로그인 삭제와 Active 서버를 기준으로 패스워드가 다른 로그인에 대해서 만들어봤습니다. 이전의 포스트( http://burning-dba.tistory.com/80 )에서 없는 계정을 만드는 부분을 했었는데, 먼저 읽어보시고 이것을 진행해야 합니다. 이번 포스트에서는 위에서 언급한데로, 2가지 기능을 추가하였습니다. 삭제하는 로그까지 추가하면 3가지가 되겠네요. 삭제 대상 로그인 기록 Active서버에 없고, Standby 서버에 없는 로그인 삭제Active서버와 Standby 서버의 패스워드가 다를 경우 S..
Alwayson Automatic synchronization Login(Alwayson 로그인 자동 동기화) ②안녕하세요. MSSQL 2016 AlwaysON 운영을 하면서 계속해서 운영이슈가 생기고 있습니다. 이번에는 지난 번에 없는 계정을 만드는 스크립트에 이어서, 2번째로 Standby에만 존재하는 로그인 삭제와 Active 서버를 기준으로 패스워드가 다른 로그인에 대해서 만들어봤습니다. 이전의 포스트( http://burning-dba.tistory.com/80 )에서 없는 계정을 만드는 부분을 했었는데, 먼저 읽어보시고 이것을 진행해야 합니다. 이번 포스트에서는 위에서 언급한데로, 2가지 기능을 추가하였습니다. 삭제하는 로그까지 추가하면 3가지가 되겠네요. 삭제 대상 로그인 기록 Active서버에 없고, Standby 서버에 없는 로그인 삭제Active서버와 Standby 서버의 패스워드가 다를 경우 S..
2016.08.25