주형권의 포스트
-
안녕하세요. 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 -
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을 이용하여 개발하던 도중에 다음과 같은 오류가 발생하여 찾던 도중에 모든 방법이 안되서 겨우 겨우 찾아서 해결 방법을 공유 합니다. 오류 내용 not all arguments converted during string formatting 위와 같이 오류가 발생하였습니다. 위의 오류 발생 구간은 mysql 에 데이터를 넣는 부분이였습니다. 분명히 잘되던게... 갑자기 안되서 당황하였는데요. google에 검색하면 여러가지 내용이 나옵니다. https://stackoverflow.com/questions/21740359/python-mysqldb-typeerror-not-all-arguments-converted-during-string-formatting Python MySQLdb TypeEr..
python3 - not all arguments converted during string formattingpython을 이용하여 개발하던 도중에 다음과 같은 오류가 발생하여 찾던 도중에 모든 방법이 안되서 겨우 겨우 찾아서 해결 방법을 공유 합니다. 오류 내용 not all arguments converted during string formatting 위와 같이 오류가 발생하였습니다. 위의 오류 발생 구간은 mysql 에 데이터를 넣는 부분이였습니다. 분명히 잘되던게... 갑자기 안되서 당황하였는데요. google에 검색하면 여러가지 내용이 나옵니다. https://stackoverflow.com/questions/21740359/python-mysqldb-typeerror-not-all-arguments-converted-during-string-formatting Python MySQLdb TypeEr..
2019.11.21 -
글을 읽기에 앞서 해당 코드는 python 및 개발 지식이 없는 제가 직접 만든 코드 입니다. 개발자 분이 보시기에 많이 이상 할 수 있습니다. 최적화가 되어 있지 않으며, 코드를 보기에 불편 할 수 있는 점 양해 부탁 드립니다. 1. 수집 조건 모든 Account 내의 S3 Bukcet 수집 2. 수집 내역 아래의 컬럼명은 수정이 가능하며, 기호에 맞게 사용 부탁 드립니다. 계속해서 수정하다 보니 수집하는 명칭이 이상할 수 있습니다. enddate : 수집 일자 account : AWS 계정명 bucket_name : S3 Bucket 명 bucket_region : S3 Bucket의 해당 Region bucket_size_bytes_Av : Bucket 사이즈 (AWS에서 기본적으로 제공하는 siz..
AWS monitoring - Cloud Watch 기반 S3 size 수집글을 읽기에 앞서 해당 코드는 python 및 개발 지식이 없는 제가 직접 만든 코드 입니다. 개발자 분이 보시기에 많이 이상 할 수 있습니다. 최적화가 되어 있지 않으며, 코드를 보기에 불편 할 수 있는 점 양해 부탁 드립니다. 1. 수집 조건 모든 Account 내의 S3 Bukcet 수집 2. 수집 내역 아래의 컬럼명은 수정이 가능하며, 기호에 맞게 사용 부탁 드립니다. 계속해서 수정하다 보니 수집하는 명칭이 이상할 수 있습니다. enddate : 수집 일자 account : AWS 계정명 bucket_name : S3 Bucket 명 bucket_region : S3 Bucket의 해당 Region bucket_size_bytes_Av : Bucket 사이즈 (AWS에서 기본적으로 제공하는 siz..
2019.11.16 -
글을 읽기에 앞서 해당 코드는 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 to sql-server입니다. 다른 시나리오와 맞지 않을 수 있으니 꼭 참고 부탁 드립니다. Ⅰ. Embulk 프로세스 1. Embulk를 실행 시 적용된 쿼리를 읽어서 하나의 Transaction으로 만듭니다.2. 생성 된 Transaction을 각각의 task로 쪼개는 작업을 합니다.이때 테이블이 Thread 개수에 맞게 생성되는 것을 볼 수 있습니다.3. 해당 Thread 개수 만큼의 테이블을 생성하여, 각각 테이블에 parallel 처리로 데이터를 Insert 시킵니다.4. Temp Table에 데이터를 모두 넣으면 이것을 모두 Union 하여, 최종 목적지 테이블에 insert into 시킵니다. 위에 프로세스를 보면 CPU 성능이 매우 중요합니다. 그..
Embulk 테스트 하면서 정리 한 글이 테스트 시나리오는 sql-server to sql-server입니다. 다른 시나리오와 맞지 않을 수 있으니 꼭 참고 부탁 드립니다. Ⅰ. Embulk 프로세스 1. Embulk를 실행 시 적용된 쿼리를 읽어서 하나의 Transaction으로 만듭니다.2. 생성 된 Transaction을 각각의 task로 쪼개는 작업을 합니다.이때 테이블이 Thread 개수에 맞게 생성되는 것을 볼 수 있습니다.3. 해당 Thread 개수 만큼의 테이블을 생성하여, 각각 테이블에 parallel 처리로 데이터를 Insert 시킵니다.4. Temp Table에 데이터를 모두 넣으면 이것을 모두 Union 하여, 최종 목적지 테이블에 insert into 시킵니다. 위에 프로세스를 보면 CPU 성능이 매우 중요합니다. 그..
2019.03.13 -
Embulk를 요즘 ETL 툴로 많이 사용하고 있는데, 계속 설치하다가 오류가 나서, 여기저기 찾아보았으나 안되서 삽질 하루종일 하다가 참 쉽게(?) 방법을 알아내서 글을 올립니다. 환경은 다음과 같이 구축하려고 하였습니다. - Embulk를 Windows Server에 설치하여, 사용하고자 함 보통 Embulk는 Linux에서 사용하는 것으로 알고 있습니다. ( Plugin 이 호환이 안되는 경우가 많다고...)하지만 이미 Windows Server에 구축이 되어있는 상황이므로 어쩔수 없이 써야 할 경우였기 때문에 Windows Server에 설치를 시도하였습니다. 그런데, 다음과 같은 오류가 발생 합니다. 인터넷에 찾아보았으나, 역시 해결되지 않았습니다. 그래서 다음과 같이 설치하였습니다. Step ..
Embulk windows 설치 오류Embulk를 요즘 ETL 툴로 많이 사용하고 있는데, 계속 설치하다가 오류가 나서, 여기저기 찾아보았으나 안되서 삽질 하루종일 하다가 참 쉽게(?) 방법을 알아내서 글을 올립니다. 환경은 다음과 같이 구축하려고 하였습니다. - Embulk를 Windows Server에 설치하여, 사용하고자 함 보통 Embulk는 Linux에서 사용하는 것으로 알고 있습니다. ( Plugin 이 호환이 안되는 경우가 많다고...)하지만 이미 Windows Server에 구축이 되어있는 상황이므로 어쩔수 없이 써야 할 경우였기 때문에 Windows Server에 설치를 시도하였습니다. 그런데, 다음과 같은 오류가 발생 합니다. 인터넷에 찾아보았으나, 역시 해결되지 않았습니다. 그래서 다음과 같이 설치하였습니다. Step ..
2018.07.25 -
저 같은 바보가 있지 않기를 바라며 짧은 글 올립니다. 다음과 같이 오류가 계속 해서 RDS에서 발생하여, INSERT / UPDATE / DELETE 가 안되는 상황이 발생하였습니다.create table joo ( col1 int )Error Code: 1290. The MySQL server is running with the --read-only option so it cannot execute this statement 구글에서 몇가지 찾아보았는데요.PK가 없다거나, "SET GLOBAL read_only = ON; " 옵션을 꺼야한다거나 많은 내용이 있었는데요. 참 바보같은 이유였습니다.바로 재부팅을 해서 마스터 슬레이브가 바뀐거였습니다. 자동으로 failover 처리하여, 바뀐거였습니다.기본..
RDS (Aurora)에서 read-only 문제가 날 경우저 같은 바보가 있지 않기를 바라며 짧은 글 올립니다. 다음과 같이 오류가 계속 해서 RDS에서 발생하여, INSERT / UPDATE / DELETE 가 안되는 상황이 발생하였습니다.create table joo ( col1 int )Error Code: 1290. The MySQL server is running with the --read-only option so it cannot execute this statement 구글에서 몇가지 찾아보았는데요.PK가 없다거나, "SET GLOBAL read_only = ON; " 옵션을 꺼야한다거나 많은 내용이 있었는데요. 참 바보같은 이유였습니다.바로 재부팅을 해서 마스터 슬레이브가 바뀐거였습니다. 자동으로 failover 처리하여, 바뀐거였습니다.기본..
2018.07.18 -
결론부터 말씀드리면, 대용량의 bucket을 삭제할 때는 만료정책을 1일로 걸어서 파일을 모두 삭제 한 이후에 bucket을 삭제하는 방법이 가장 좋습니다. (AWS에서도 이 방법을 추천하였습니다.) 얼마 전에 2000TB의 대용량 Bucket을 삭제하다가 삭제가 원활하지 못하여, 곤란한 적이 있었습니다. 파일의 개수도 대략 2천만개 이상이여서 엄청나게 삭제 시간이 오래 걸렸습니다. 삭제를 시도한 방법은 2가지 입니다. AWS Console S3 Browser 삭제를 시도하면서 발견한 내용은 다음과 같습니다. 1. 지울때 1,000건씩 지워지는 것으로 보입니다. ( object ) 2. console / S3 Browser에서 Bucket을 삭제 할 경우 console / S3 Browser가 종료될 경..
AWS 대용량 Bucket 삭제결론부터 말씀드리면, 대용량의 bucket을 삭제할 때는 만료정책을 1일로 걸어서 파일을 모두 삭제 한 이후에 bucket을 삭제하는 방법이 가장 좋습니다. (AWS에서도 이 방법을 추천하였습니다.) 얼마 전에 2000TB의 대용량 Bucket을 삭제하다가 삭제가 원활하지 못하여, 곤란한 적이 있었습니다. 파일의 개수도 대략 2천만개 이상이여서 엄청나게 삭제 시간이 오래 걸렸습니다. 삭제를 시도한 방법은 2가지 입니다. AWS Console S3 Browser 삭제를 시도하면서 발견한 내용은 다음과 같습니다. 1. 지울때 1,000건씩 지워지는 것으로 보입니다. ( object ) 2. console / S3 Browser에서 Bucket을 삭제 할 경우 console / S3 Browser가 종료될 경..
2018.06.14 -
이 포스틑 AWS EFS의 공식 문서를 대부분 가져왔습니다. 단, 중간중간에 하다가 막힌 부분에 대해서 추가적으로 설명만 넣어놨습니다. Amazon EFS는 Amazon EC2에서 사용할 수 있는 확장 가능한 파일 스토리지를 제공합니다. EFS 파일 시스템을 만든 후 파일 시스템을 마운트하도록 인스턴스를 구성할 수 있습니다. 하나의 EFS 파일 시스템을 여러 인스턴스에서 실행하는 워크로드 및 애플리케이션에 대한 공통 데이터 소스로 사용할 수 있습니다. storage gateway 와 큰 차이가 없어 보입니다.차이점이라면 storage gateway는 EC2를 올려서 그곳에 DISK를 마운트하여, 그 DISK를 바라보게 하는 방식인 반면에 EFS는 단순하게 만들기만 하면 자동으로 할당이 됩니다. 또한 Po..
EFS ( Elastic File System )이 포스틑 AWS EFS의 공식 문서를 대부분 가져왔습니다. 단, 중간중간에 하다가 막힌 부분에 대해서 추가적으로 설명만 넣어놨습니다. Amazon EFS는 Amazon EC2에서 사용할 수 있는 확장 가능한 파일 스토리지를 제공합니다. EFS 파일 시스템을 만든 후 파일 시스템을 마운트하도록 인스턴스를 구성할 수 있습니다. 하나의 EFS 파일 시스템을 여러 인스턴스에서 실행하는 워크로드 및 애플리케이션에 대한 공통 데이터 소스로 사용할 수 있습니다. storage gateway 와 큰 차이가 없어 보입니다.차이점이라면 storage gateway는 EC2를 올려서 그곳에 DISK를 마운트하여, 그 DISK를 바라보게 하는 방식인 반면에 EFS는 단순하게 만들기만 하면 자동으로 할당이 됩니다. 또한 Po..
2018.06.05 -
안녕하세요. 원하는 결과값을 알림으로 받기 위해서는 메일에 예쁘게 테이블 형식으로 보여지게 하는게 필수 입니다.그래서 HTML을 이용하여, 예쁘게 꾸며서 메일로 쏘는 경우가 많은데요. (HTML 만들기 : https://www.red-gate.com/simple-talk/blogs/generating-html-sql-server-queries/ ) 이렇게 보낼때 HTML 로 이쁘게 말아서 보내려고 하면 전부 깨져서 나오거나, HTML 코딩 그대로 나오는 경우가 있습니다.그래서 이리 저리 방법을 찾다가 body를 XML로 만들어서 보내려고 하면 다음의 오류가 납니다.보내지지도 않습니다...ㅡㅡ; 그래서 찾아낸게 바로 이겁니다.exec msdb.dbo.sp_send_dbmail @profile_name = ..
The data types xml and nvarchar are incompatible in the add operator.안녕하세요. 원하는 결과값을 알림으로 받기 위해서는 메일에 예쁘게 테이블 형식으로 보여지게 하는게 필수 입니다.그래서 HTML을 이용하여, 예쁘게 꾸며서 메일로 쏘는 경우가 많은데요. (HTML 만들기 : https://www.red-gate.com/simple-talk/blogs/generating-html-sql-server-queries/ ) 이렇게 보낼때 HTML 로 이쁘게 말아서 보내려고 하면 전부 깨져서 나오거나, HTML 코딩 그대로 나오는 경우가 있습니다.그래서 이리 저리 방법을 찾다가 body를 XML로 만들어서 보내려고 하면 다음의 오류가 납니다.보내지지도 않습니다...ㅡㅡ; 그래서 찾아낸게 바로 이겁니다.exec msdb.dbo.sp_send_dbmail @profile_name = ..
2018.03.14 -
들어가기 앞서 저는 네트워크와 관련한 지식이 전혀 없습니다. AWS 관련하여, 업무를 위해서 급하게 공부를 하였으며 용어 및 내용이 틀릴 수 있는 점을 양해 부탁드립니다.계산법은 다음의 URL의 내용의 문제를 푸는 방법에 대해서 설명 하였습니다. URL : http://www.subnettingquestions.com/ 질문 : subnetwork 172.17.102.0 255.255.254.0 에서 유효한 호스트 마지막 값은 무엇인가? 우선 첫번째로 중요한 부분이 서브넷 마스크 입니다. 위에서 255.255.254.0 은 서브넷 마스크 입니다. 관련하여, 내용은 다음의 URL 을 참조하면 좋습니다. ( URL : http://koreandaeddo.blogspot.kr/2015/12/ip.html ) ..
서브넷팅 계산하기들어가기 앞서 저는 네트워크와 관련한 지식이 전혀 없습니다. AWS 관련하여, 업무를 위해서 급하게 공부를 하였으며 용어 및 내용이 틀릴 수 있는 점을 양해 부탁드립니다.계산법은 다음의 URL의 내용의 문제를 푸는 방법에 대해서 설명 하였습니다. URL : http://www.subnettingquestions.com/ 질문 : subnetwork 172.17.102.0 255.255.254.0 에서 유효한 호스트 마지막 값은 무엇인가? 우선 첫번째로 중요한 부분이 서브넷 마스크 입니다. 위에서 255.255.254.0 은 서브넷 마스크 입니다. 관련하여, 내용은 다음의 URL 을 참조하면 좋습니다. ( URL : http://koreandaeddo.blogspot.kr/2015/12/ip.html ) ..
2017.12.11 -
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 -
들어가며SQL Server 2016 부터 파티션 단위로 Truncate가 가능 합니다. 다음의 블로그를 참고하여, 만들었으며 2016 기능을 사용해 보고자 포스트를 작성하였습니다.참고 : https://www.mssqltips.com/sqlservertip/4436/sql-server-2016-truncate-table-with-partitions/ 위의 블로그의 경우 Partition 테이블의 최대 장점이 스트라이프로 데이터를 넣는 것이므로, NDF 파일과 파일그룹을 여러개 생성해서 만들고 있는데요.이 부분은 제외하고, 단순히 파티션만 나눠서 Truncate 하는 부분만 포스팅 하고자 합니다. (기능만 보면 되므로) 제가 알기로 대용량의 DB를 관리 할 경우 테이블을 일자 또는 월별로 쪼개서 각각 파일..
Partition Truncate Table들어가며SQL Server 2016 부터 파티션 단위로 Truncate가 가능 합니다. 다음의 블로그를 참고하여, 만들었으며 2016 기능을 사용해 보고자 포스트를 작성하였습니다.참고 : https://www.mssqltips.com/sqlservertip/4436/sql-server-2016-truncate-table-with-partitions/ 위의 블로그의 경우 Partition 테이블의 최대 장점이 스트라이프로 데이터를 넣는 것이므로, NDF 파일과 파일그룹을 여러개 생성해서 만들고 있는데요.이 부분은 제외하고, 단순히 파티션만 나눠서 Truncate 하는 부분만 포스팅 하고자 합니다. (기능만 보면 되므로) 제가 알기로 대용량의 DB를 관리 할 경우 테이블을 일자 또는 월별로 쪼개서 각각 파일..
2017.04.14 -
공부 하려고 만들어 본 용어 정리표 잘 안보이시는 분들은 아래의 엑셀 파일 다운로드 해주세요.
DW 관련 용어 정리공부 하려고 만들어 본 용어 정리표 잘 안보이시는 분들은 아래의 엑셀 파일 다운로드 해주세요.
2017.02.15 -
MySQL 설치를 하는 중에 모든 설정 및 디렉터리, my.cnf 등을 모두 잘 설정하였는데 mysql system 테이블 설치만 하면... 자꾸 오류가 나는 경우가 있습니다. 오류의 내용은 다음과 같습니다. /usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory영어 울렁증으로 인하여, 영어를 자세히 읽어 보지 않고 뒤쪽에 ..
MySQL 설치 시 libaio 관련 ErrorMySQL 설치를 하는 중에 모든 설정 및 디렉터리, my.cnf 등을 모두 잘 설정하였는데 mysql system 테이블 설치만 하면... 자꾸 오류가 나는 경우가 있습니다. 오류의 내용은 다음과 같습니다. /usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory영어 울렁증으로 인하여, 영어를 자세히 읽어 보지 않고 뒤쪽에 ..
2016.09.12 -
안녕하세요. 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 -
AlwaysOn을 운영하는 도중에 다음과 같은 메시지가 발생하여, 찾아본 내용을 정리하였습니다.오류 메시지는 다음과 같이 나옵니다. 오류 메시지는 다음과 같이 2종류가 함께 발새 합니다. 1번AlwaysOn Availability Groups connection with secondary database established for primary database 'DB명' on the availability replica '인스턴스명' with Replica ID: {d151138c-4a89-4812-8da5-b81cb60b98c8}. This is an informational message only. No user action is required. 2번 DbMgrPartnerCommitPolicy:..
DbMgrPartnerCommitPolicy::SetSyncStateAlwaysOn을 운영하는 도중에 다음과 같은 메시지가 발생하여, 찾아본 내용을 정리하였습니다.오류 메시지는 다음과 같이 나옵니다. 오류 메시지는 다음과 같이 2종류가 함께 발새 합니다. 1번AlwaysOn Availability Groups connection with secondary database established for primary database 'DB명' on the availability replica '인스턴스명' with Replica ID: {d151138c-4a89-4812-8da5-b81cb60b98c8}. This is an informational message only. No user action is required. 2번 DbMgrPartnerCommitPolicy:..
2016.08.11 -
새로운 서버를 받아서, SQL Server를 설치하고, 운영하는 도중에 기술지원을 받는 중에 CPU의 64 Core 중에 40 Core만 사용하고 있는 것을 발견하였습니다.인터넷에 찾아보았는데, 영문자료밖에 있지 않아서, 내용을 가져와 씁니다. 원문 : https://blogs.msdn.microsoft.com/sql_shep/2012/06/21/sql-server-2012-license-core-limitaion/ 이 에디션은 2012부터 나왔으며, 엔터프라이즈에서는 코어를 40개까지 밖에 지원하지 않는다고 합니다. 다음의 내용에 써 있습니다. 왜 이렇게 나눠서, 사용자를 불편하게 한지는 잘모르겠습니다. (아무래도... 라이센스 때문인가?) 확실한 방법으로 코어가 몇개인지 확인해 보고, 실제로 SQL ..
SQL Server - License Core Limitaion (40코어 이상 인식)새로운 서버를 받아서, SQL Server를 설치하고, 운영하는 도중에 기술지원을 받는 중에 CPU의 64 Core 중에 40 Core만 사용하고 있는 것을 발견하였습니다.인터넷에 찾아보았는데, 영문자료밖에 있지 않아서, 내용을 가져와 씁니다. 원문 : https://blogs.msdn.microsoft.com/sql_shep/2012/06/21/sql-server-2012-license-core-limitaion/ 이 에디션은 2012부터 나왔으며, 엔터프라이즈에서는 코어를 40개까지 밖에 지원하지 않는다고 합니다. 다음의 내용에 써 있습니다. 왜 이렇게 나눠서, 사용자를 불편하게 한지는 잘모르겠습니다. (아무래도... 라이센스 때문인가?) 확실한 방법으로 코어가 몇개인지 확인해 보고, 실제로 SQL ..
2016.08.09