본문 바로가기
반응형

분류 전체보기672

좌표(위도,경도)로 실제 거리 구하기 소수점 거리. GCS(Geographic Coordinate System)지리 좌표계(GCS)는 지구상에 위치를 정의하는데 3차원의 구면을 이용하는 좌표계로 한 지점은 위도(latitude)와 경도(longitude) 값으로 나타냅니다. 위도와 경도는 지구 중심에서 지표면 상에 지점까지 측정된 각으로 흔히 도(degrees)로 표시합니다. 위도와 경도에 대해 설명하면 아래와 같습니다. 위도(latitude)위도는 지구를 테이블위에 올려놓고 가로로 그은 선으로 생각하면 이해하기 쉽습니다.위 그림처럼 위도는 Equator를 기준으로 위쪽은 플러스 아래쪽은 마이너스 값을 가집니다.모두 아시겠지만 Equator는 "적도"입니다.우리에게 적도로 알려진 유래는 고대 중국 천문학에서 적도를 붉은 색으로 표현해서라고 합니다.위도는 .. 2024. 11. 14.
AWS RDS를 이용한 DB서버를 이중화 대한 간략 비교 설명 AWS에서 제공해주는  RDS를 통해 DB서버를 이중화 하는 방법을 알아보겠습니다. 1. AWS에 RDS를 구성하는 방법은 크게 두가지이다.   2. EC2인스턴스에 RDBMS를 설치하는 방법과, 관리형 서비스인 아마존 RDS를 이용하는 방법이다.  3. 전자는 직접 DB서버를 설치 및 관리하는 것으로 local 서버 환경을 AWS의 가상환경으로 옮긴 것 이외에는 크게 차이점이 없다.  4. OS와 RDBMS를 자유롭게 선택하고 설정할 수 있는 장점이 있다. 하지만 OS와 DB환경을 사용자가 직접 관리해줘야 하는 부담이 있다.  5. 패치 적용과 백업이 자동화 되어 있기 때문에 운영상에 큰 도움을 받을 수 있다. 6. 가능한 한 아마존 RDS를 사용하는 편이 설정과 운영에 들어가는 수고를 줄여줄 수 있지.. 2024. 10. 17.
Galera Cluster 대신 AWS Aurora 를 선택할까? C(Consistency) : RDB 를 사용하여 일관된 데이터를 지원A(Availability) : 어떠한 노드가 죽더라도 사용자로 하여금 끊김없는 서비스 가용 확보Mater 노드가 죽는 경우, Slave 가 승격Slave 노드가 죽는 경우, 다른 Slave 노드로 트래픽 분산Why use Galera Cluster (==purpose)Galera Cluster 의 목표는 뚜렷하다.Aiming Ultimate Availabilty using True Multi-master공식문서 상으로도, 아래와 같은 장점을 나열하고 있다.True Multi-master, Active-Active Cluster Read and write to any node at any time.Synchronous Replicati.. 2024. 10. 17.
프로비저닝(Provisioning) 이란? AWS 클라우드 작업을 하다보면 듣게 되는 프로비저닝(Provisioning) 단어가 어렵다 생각하지 마시고 있는 그대로 이해해보세요 프로비저닝(Provisioning) 이란 의미는 영어 직역한 그대로 "제공하는것" 이랍니다. 어떤 종류의 서비스든 사용자의 요구에 맞게 시스템 자체를 제공 하는 것을 프로비저닝이라고 하며  제공해줄 수 있는 것은 인프라 자원이나 서비스, 또는 장비가 될 수도 있다고 합니다. Server Resource Provisioning : CPU, Memory, IO 등과 같은 실제 서버의 자원을 할당해주고 운영할 수 있게 제공해주는 것을 말한다.1. OS Provisioning : OS를 서버에 설치하고 구성작업을 해서 사용할 수 있도록 제공하는 것을 말한다.2. Software .. 2024. 10. 16.
AWS RDS Replica 명령어 알아두기 클라우드 기반 DB 운영을 위한 AWS RDS에서 알아두면 좋을것 같은은 RDS 명령어들입니다.RDS에서 권한에 제한이 있어요. RDS는 Super권한 을 제한합니다.Super권한을 제한하면 아래와 같은 몇가지를 할 수 없습니다.SUPER권한이 없어서 불가능한 항목 * Replication 명령 : CHANGE MASTER TO, CHANGE REPLICATION FILTER, STOP SLAVE, START SLAVE ...* BINLOG관련 명령 : PURGE BINARY LOGS, BINLOG 명령등 불가* KILL 명령 : 오동작중인 thread를 죽여야 하기 때문에 필요* GRANT 명령 : USER 추가* 추가 접속 : max connection 까지 모두 차더라도 super 권한을 가진 1개.. 2024. 10. 15.
MySQL & Mariadb dual master 구성 - log_bin 설정 log_bin 설정 확인 및 참고사항RDS 구성시 dual master 구성을 진행중인데 log_bin = OFF 상태일때 관련 참고 내용입니다. MySQL 이진 로깅 형식을 설정하려면https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.탐색 창에서 파라미터 그룹을 선택합니다.수정할 DB 인스턴스와 연결된 DB 파라미터 그룹을 선택합니다.파라미터 그룹에 대한 자세한 정보는 Amazon RDS의 파라미터 그룹 단원을 참조하십시오.기본 파라미터 그룹을 수정할 수 없습니다. DB 인스턴스 가 기본 파라미터 그룹을 사용하고 있는 경우 새 파라미터 그룹을 생성하여 DB 인스턴스 와 연결합니다.작업에서 편집을 선택합니다.binlog_format 파라미터를 선택한 이진.. 2024. 10. 14.
mysqldump 실행시 function 백업 구조 백업이 안될경우 잘되는데 왜 안되지 Grant 권한 추가 하는데 왜 안되지 하실때는 잠시 생각하시고 원인을 확인하시면 좋스빈다.  - mysqldump 실행시 function 백업 구조 백업이 안될경우 해당 권한을 부여 해야합니다. GRANT SELECT ON mysql.proc TO 'proc'@'192.168.1.%';# 추가 : 계정 성생 및 Grant 권한 추가 CREATE USER 'USER'@'HOST' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, EXECUTE, SHOW VIEW, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, TRI.. 2024. 9. 27.
spatial database 공간 데이터 베이스 로컬 베이스, 지역기반 프로그램을 하다 보면 공간 데이터 베이스에 대한 개념이 필요하다. 여러모로 필요해서 정리해 보았다. 공간 데이터베이스 & 함수 in MariaDB (혹은 MySQL)공간 함수는 공간 관계 함수와 공간 연산 함수로 구분 질 수 있다.두 함수를 알아 보기 전 공간 Data Type을 먼저 알아본다. MySQL에는 문자형, 숫자 형, 날짜 형 외에 Geometry(공간 형)이 있다.공간 데이터 타입 ( Spatial Data Type )쉽게 설명하면 X, Y 좌표로 구성된 공간 데이터를 저장하고 연산할 수 있는 기능을 제공해주는 데이터베이스. 다른 말로, 공간 데이터의 저장 형태를 구분하는 공간 데이터 타입과 공간 데이터를 연산할 수 있는 공간 함수가 제공되는 데이터베이스라고 표현 가능.. 2024. 7. 30.
Mysql Geo 함수 - 거리구하기 point, linestring, polygon, geometry 등 디비로 표현할 수 있는 지도 데이터는 다양합니다.다양한 타입에 데이터를 조금 더 유용하게 사용할 수 있도록 해준 함수들도 물론 존재했습니다.그중에서 이번글에서는 두 위치 사이의 거리를 구하는 함수에 대해 설명하고자 합니다.구글맵에서 손이 가는대로 아무곳이나 A, B 두곳을 찍어서 거리를 구해봤습니다.위와 같은 A, B 위치가 있고 두 위치 사이의 거리가 76.04m라는 값이 화면상에 표시됩니다.구글맵에서 두 위치 사이의 거리를 알려주는 것처럼 같은 기능을 sql을 통해서 얻어내고자 합니다.A와 B 사이의 거리를 구하고자 할때 수학시간에 배웠던 거리 구하는 공식대로 각각의 경도, 위도를 그 식에 대입해서 구하는 방법대로 거리를 구한다고 .. 2024. 7. 30.
Mysql / Mariadb 공간 데이터베이스 쉽게 설명하면 X, Y 좌표로 구성된 공간 데이터를 저장하고 연산할 수 있는 기능을 제공해주는 데이터베이스라고 생각하시면 됩니다. 다른 말로, 공간 데이터의 저장 형태를 구분하는 공간 데이터 타입과 공간 데이터를 연산할 수 있는 공간 함수가 제공되는 데이터베이스라고 표현 가능합니다.   우리가 일반적으로 사용하고 있는 RDBMS인 Oracle, MariaDB, MySQL, PostgreSQL 등에서 공간 데이터를 처리하기 위한 기능을 제공하고 있습니다. 이 솔루션을 이용해 공간 데이터베이스를 생성/관리할 수 있는 겁니다. 심지어 Hive에서도 관련 Library를 설치하면 공간 데이터를 저장하고 공간 연산이 가능합니다.   그럼, 공간 데이터 타입과 공간 함수를 알면 공간 데이터베이스를 정복하게 되는걸까.. 2024. 7. 29.
Mariadb Geo 함수 이용하기, 공간 데이터베이스 공간 데이터베이스란 말 그대로 공간 정보를 저장할 수 있는 데이터베이스를 뜻한다.좀 더 명확한 개념을 이야기해보자면 공간에 존재하는 점, 선, 폴리곤등을 포함하는 객체의 데이터를 저장하고, 검색하는데 최적화된 데이터베이스라고 정의할 수 있다.공간 데이터베이스는 단순히 공간 데이터를 저장해줄 뿐 아니라 공간 데이터를 활용한 공간 함수을 함께 제공한다.🛣 Mysql의 공간 데이터 타입 (Spatial Data Type)Mysql에서는 공간 데이터를 저장할 수 있도록 타입을 제공하고 있다.타입정의예시Point좌표 공간의 한 지점POINT(10 10)LineString다수의 Point를 연결해주는 선분LINESTRING(10 10, 20 20, 30 30)Polygon다수의 선분들이 연결되어 닫혀있는 상태PO.. 2024. 7. 26.
UTC Time to KST Time, TimeZone을 이용한 시간변환 (CONVERT_TZ) 원본 : https://m.blog.naver.com/developer501/222491601872 해당 게시물의 2편으로 Java8 이후의 날짜 API 에 대한 내용을 포스팅 하기에 앞서, UTC TIME으로 세팅된 시간설정을 KST TIME으로 변경하는 방법에 대해서 알아보려고 한다​우선 아래 쿼리를 보자​​STR_TO_DATE 와 CONVERT_TZ 부분이 눈에 띈다. STR_TO_DATE는 지난 포스팅(하단)을 참고하고, 이번 포스팅에서는 CONVERT_TZ 에 대해서 알아보려 한다STR_TO_DATE에 대한 포스팅은 지난 포스팅을 참고 하자-> https://blog.naver.com/developer501/2224916015041. Default Timezone 설정 확인우선 현재 Defaul.. 2024. 7. 4.
대용량 partition lock 없이 삭제 방 원본 : https://dungbeetle.co.kr/mysql-%EB%8C%80%EC%9A%A9%EB%9F%89-partition-lock-%EC%97%86%EC%9D%B4-%EC%82%AD%EC%A0%9C%ED%95%98%EA%B8%B0/ mysql 대용량 partition lock 없이 삭제하기 - 쇠똥구리 DBA's Work and Life Balance간혹 대용량 파티션 데이터의 삭제는 테이블의 성격에 따라선 까다로운 작업이 되기도 한다dungbeetle.co.kr 1. 대용량 파티션 테이블이란간혹 대용량 파티션 데이터의 삭제는 테이블의 성격에 따라선 까다로운 작업이 되기도 한다파티션 테이블은 보통 insert해서 데이터를 저장하는 용도로 사용하지만때로는 실시간으로 트래픽이 치는 테이블도 파티션.. 2024. 7. 2.
유럽 금리인하 시작, 엔비디아, 인스타그램에 중간광고 ? [시사] 1. '금리인하' 유럽 문 열었지만 미국이 열쇠… 9월 내릴 확률 56% ∙유럽이 ‘기준금리 인하’ 문을 열면서 ‘통화정책 전환’ 분위기 확산 ∙캐나다은행(BOC)은 4년 3개월 만에 기준금리 기존 5%에서 4.75%로 인하  -유럽권이 피벗에 나선 건 물가는 점차 안정됐지만, 고금리 장기화에 따른 경기 침체   -미국의 기준금리 인하 기대가 높아진 건 최근 고용시장 둔화 신호가 나타났기 때문 https://n.news.naver.com/mnews/article/025/00033655212. 韓 시총 가뿐히 넘긴 ‘엔비디아’… 영국·프랑스 곧 따라잡는다? ∙MS·애플보다 더 빠르게 3조달러 달성 ∙‘엔비디아’ 조만간 영국, 프랑스의 시가총액을 넘어설 것이라는 전망  -생성형 AI인 ‘챗GPT’ .. 2024. 6. 10.
UFT8MB4 변환시 에러 - Specified key was too long; max key length is 3072 bytes UTF8 -> UTF8MB4 변환시 발생하는 에러중 하나로 아래처럼 변환시 에러가 발생한다.ALTER TABLE 테이블명 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 에러 발생 [ERROR] /usr/local/libexec/mysqld: Incorrect key file for table '테이블명.MYI'; try to repair it 이경우  UTF8MB4 에서는 한 글자당 4바이트이기 때문에 인덱스 최대 사이즈가 달라지기 때문에 발생한다.4000바이트로 최대값인 3072바이트보다 크기 때문이다. # 해결 방벙 > 속성의 크기를 줄인다.ALTER TABLE 테이블명 DROP PRIMARY KEY, ADD PRIMARY KEY(컬럼.. 2024. 4. 30.
Mysql euckr -> utf8mb4 변환시 ALTER [IGNORE] 참고 ALTER [IGNORE] TABLE tbl_name alter_specification [, alter_specification] ... alter_specification: ADD [COLUMN] column_definition [FIRST | AFTER col_name ] | ADD [COLUMN] (column_definition,...) | ADD INDEX [index_name] [index_type] (index_col_name,...) | ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) | ADD [CONSTRAINT [symbol]] UNIQUE [INDEX] [index_name] [index_type] (.. 2024. 4. 17.
MySQL의 sql_mode와 기본 sql_mode들이 하는 역할 MySQL 서버에는 sql_mode 라는 시스템 변수가 있습니다. 이 변수를 이용하면 각기 다른 클라이언트에 다른 sql 모드를 적용하는 것이 가능합니다. sql_mode 설정은 서버 운영 요구사항에 맞게 global 하게 설정할 수도 있고 각각의 애플리케이션 요구사항에 맞도록 session에 설정하는 것도 가능합니다. Mode는 MySQL이 지원하는 SQL 문법과 데이터 유효성 검사에 영향을 주게 됩니다. 예를 들어 GROPU BY를 할 때 SELECT문에 unique한 column이 있더라도 SELECT가 가능하게 되서 데이터 조회가 가능하게 만드는 것도 가능합니다. sql_mode 설정 방법 서버가 시작할 때 sql_mode를 설정하고 싶다면 command line에서 --sql-mode=“mode.. 2024. 4. 1.
AWS Aurora 아키텍처 Aurora 클러스터 개념 Aurora DB Cluster 하나 이상의 DB 인스턴스와 DB 인스턴스의 데이터를 관리하는 클러스터 볼륨(스토리지 레이어)으로 구성 - Primary Instance: 읽기/쓰기작업 지원, 클러스터 볼륨의 모든 데이터 수정을 실행 - Aurora Replica: Primary와 동일한 스토리지 볼륨에 연결되고, 읽기 작업만 지원 (최대 15개) 스토리지는 3개의 가용 영역(AZ)에 걸쳐 있는 가상 디스크 Aurora DB 성능 Aurora는 읽기와 쓰기 모두 인스턴스 크기에 따라 확장됨 기본적인 MySQL(RDS)는 동기식, 순차적인 과정에 따라 복제가 일어나기 때문에 I/O 작업이 굉장히 많음 (트랜잭션당 평균 7.4 I/O) primary에서 쓰기가 발생하면 6개의 스토.. 2024. 3. 11.
Mysql Incorrect integer value 에러 발생시 에러 나오지 않게 하려면? 안녕하세요. Mysql 버젼을 업그레이드하고나서 발생할때 뭐지 하면서 놀라기도 하는데요. SQL 사용에 대한 보안 등급이 높아지면서 해당 부분이 기본설정으로 되어 있어서 발생하게 됩니다. 하지만 가능하면 입력 컬럼 input data type에 맞게 호출하시면 좋을것 같습니다. 우선 에러 발생을 안하게 하는 방법을 알려드릴께요. # 에러 내용 Incorrect integer value: '' for column 'memChnl' at row 1 ...... 해당 내용의 경우 int 컬럼에 값이 잘못 입력이 된 상태로 실행되었기 때문이기에 해당 값을 int 형으로 맞춰주거나 아니면 에러를 무시 하도록 해야합니다. ​ ​ # 설정 확인 (Mysql 5.7 기준) ​ select @@global.sql_mod.. 2024. 2. 29.
Mysql 5.7 Old_password 대체용 function Mysql 5.7 상위 버젼부터는 Old_password 함수가 없어졌기 때문에 그전에 사용했었다면 대체 가능한 함수를 만들어서 사용해야합니다. DROP FUNCTION IF EXISTS OLD_PASSWORD; DELIMITER $$ CREATE FUNCTION OLD_PASSWORD (input BLOB) RETURNS CHAR(16) DETERMINISTIC BEGIN DECLARE nr BIGINT; DECLARE nr2 BIGINT; DECLARE ad BIGINT; DECLARE inlen INT; DECLARE i INT; DECLARE b CHAR; DECLARE tmp INT; DECLARE output CHAR(16); SET nr = 1345345333; SET nr2 = 0x1234.. 2024. 2. 15.
반응형