본문 바로가기
728x90

MySQL22

[Airflow] Metastore version, RDBMS 종류에 따른 차이 정리 최근에 Airflow Metastore에 있는 데이터 이관을 하면서 Metastore 이관 관점에서 Metastore에 관련된 테이블, 컬럼 정보들을 정리해봤습니다.1. Airflow version별 metastore의 구성 차이2.1.3(PostgreSQL)1) 테이블 수28개 테이블ab_permissionab_permission_viewab_permission_view_roleab_register_userab_userab_user_roleab_view_menualemberic_versionconnectiondagdag_codedag_pickledag_rundag_tagimport_errorjoblogrendered_task_instance_fieldssens.. 2024. 4. 27.
[DataBase] RDBMS 이관 PostgreSQL to MySQL, 여러가지 방법과 에러 정리 이번 포스트에는 회사업무중에 필요에의해 기존에 있던 PostgreSQL DB를 MySQL로 이관시켜야 하는 요구사항이 있었습니다. 보통 PostgreSQL이 더 관대한 RDBMS로써 이기종 DBMS간 이관을 할 때, 찾아보니 MySQL → PostgreSQL은 많이 사례가 있고 자료가 있었지만, 우리의 경우 반대의 경우 였기 때문에 많은 리서칭이 필요했습니다. 이관 대상 대상 구분 대상 여부 스키마(Schemas) Y(MySQL에서는 Databases) 테이블(Tables) Y 제약사항(Constraints) Y Index Y Sequence Y(Auto Increments) User / Role - 이관 방법 1. PostgreSQL dump file https://www.postgresql.org/d.. 2023. 9. 29.
[SQL] SQL 성능확인, Query Plan 보는 법 (Oracle, MySQL) 1. Query Plan이란? SQL 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터 접근에 사용되는 순서가 있는 단계별 집합 엑세스 플랜의 관계형 모델 개념의 특화된 경우 SQL이 선언형이기 때문에 주어진 쿼리를 실행하기 위해 수많은 방법이 존재하는 것이 일반적이며 이에 따라 다양한 성능 차이를 보임 Query Optimizer는 Query 실행을 위한 각기 다른 가능성 있는 올바른 플랜 중 일부를 평가한 다음 최적의 옵션을 고려할 때 반환 2. Query Plan 보는 법, 요소(Oracle) 1) Query Plan 보는 법 위에서 아래로 내려가면서 제일 먼저 읽을 위치 찾기 내려가는 과정에서 같은 들여쓰기가 있으면, 무조건 위에서 아래 순으로 읽기 같은 레벨에 들여쓰기된 하위 스텝이 존재하면.. 2023. 1. 31.
[MySQL] 바이너리 로그(binlog)란? 1. binlog란? 빈로그 혹은 바이너리 로그는 MySQL 서버 인스턴스의 데이터 변경사항들에 대한 정보를 포함하는 로그 파일의 세트 에러코드, 바이너리 로그 자체에 대한 메타데이터 등 다양한 데이터가 같이 포함되게 됨 기본적으로 Transaction Commit 시에 기록되어지며, 데이터 변경 순서를 보장 주로 복제(Replication) 및 복구(Recovery)를 목적으로 binary log가 사용 됨 복제: Secondary Node 가 Primary Node 로부터 binlog 데이터를 전달받아서 로깅 함(릴레이 로그) 부하분산 기능을 제공, 바이너리 로그는 마스터라는 서버에서 생성되고 슬레이브란 서버는 마스터 서버에 접속하여 이 마스터의 바이너리 로그를 읽어와서 똑같이 그 이벤트를 실행시켜 .. 2023. 1. 19.
[MySQL] MySQL version 확인 방법 1. SQL로 확인 1) SELECT VERSION(); SELECT VERSION(); 2) SHOW VARIABLES LIKE 'VERSION'; SHOW VARIABLES LIKE 'VERSION'; SHOW VARIABLES LIKE '%VERSION%'; 2. shell로 확인 2023. 1. 11.
[SQL] MySQL의 Binding Variables, 바인딩 변수 사용법(mysql,python), 장점 1. 바인딩 변수 사용의 장점 바인딩 변수의 장점은 SQL문 처리과정 중 Parsing과정에서 드러나게 됩니다. 1) SQL문 처리 과정 사용자가 SQL문장(Select)을 실행 SQL 파싱(parsing) SQL 최적화(optimizer) 실행(Execution) 추출(Fetch) 2) Parsing 과정 서버프로세스는 Shared Pool의 LibraryCache를 조회해서 문자 하나하나 공백, 대소문자까지 비교하여 동일한 SQL문장이 있는지 확인 Soft Parsing: 동일한 SQL문장과 SQL구문을 보낸 사용자나 옵티마이저 MODE관련 설정까지 일치하는 SQL커서가 존재하고 있다면, Library Cache의 parse-tree와 Query Execution Plan을 가지고 와서 실행 opti.. 2023. 1. 10.
[AWS] RDS(Relational Database Service) vs AuroraDB (feat. MySQL, PostgreSQL) 1. RDS(Relational Database Service)란? 1) 정의 클라우드에서 배포,설치,패치,백업을 쉽게만드는 관계형 DB를 관리된 SQL DB로 서비스한다.(아마존 클라우드에서 관계형 데이터베이스를 사용할 수 있는 서비스)Aurora, MySQL,PostgreSQL,MariaDB,Microsoft SQL Server 그리고 Oracle DB 엔진을 지원한다. (Aurora가 포함되는 개념) 2) 특징 RDS 구축 형태 기존 데이터베이스 아키텍처를 중심으로 완전히 관리되는 추상화 계층을 제공 RDS 내에서 데이터베이스 플랫폼은 EC2에서 수동으로 수행하는 것처럼 구축 EC2인스턴스는 적절한 Amazon Machine Image (AMI)에서 프로비저닝 되고, EBS(Elastic Block.. 2022. 12. 28.
[Database] Upsert란? DBMS 별 Upsert 예제 1. Upsert(Update + Insert)란? Upsert는 중복되는 값이 있다면 Update를 하고 중복되는 값이 없다면 Insert를 하는 쿼리 Unique Key의 값이 중복된다면 Update를 하고, Unique 컬럼의 값이 존재하지 않는다면 INSERT를 하는 것 Unique Key, 즉 중복되면 값이 있으면 안되는 컬럼에 추가하려는 데이터 값이 중복되지 않으면, INSERT 중복이 된다면, 중복의 대상이 되는 데이터 값을 UPDATE시키는 것(기준은 Unique Key 컬럼이다) 2. Upsert MySQL vs PostgreSQl 1. MySQL INSERT INTO users (col1, col2) VALUES ('val1', 'val2') ON DUPLICATE KEY UPDATE .. 2022. 6. 27.
[DataBase] (Oracle vs MySQL) CTAS(Create Table As Select), INSERT INTO SELECT, TEMP Table, View + with절,Inline view 이번 포스트에는 oracle과 MySQL에서 각각 CTAS, INSERT INTO SELECT가 어떻게 사용되는지, TEMP table과 View의 개념과 장단점 그리고 Oracle과 MySQL에서는 어떻게 다른지에 대해 포스팅 하겠습니다. 1. CTAS(Create Table As Select) CTAS의 기본 개념은 MySQL과 오라클 모두 같다. 1) 기본 문법 CREATE TABLE 'target' AS SELECT * FROM 'origin'; --AS 이후에는 기존의 조회쿼리처럼 원하는 컬럼만 지정하거나 조건절 및 정렬도 가능하다. 2) 데이터는 복사하지 않기 CREATE TABLE 'target' AS SELECT * FROM 'origin' WHERE 1=0; MySQL 기본 문법 데이터 .. 2022. 6. 15.
728x90