copy copy 는 PostgreSQL의 테이블과 표준 파일 시스템 파일 간에 데이터 이동을 도와주는 function 입니다. copy from 은 파일 내용을 복사해 테이블에 전달합니다. (테이블에 이미 데이터가 존재하면 데이터를 덧붙입니다) 또 COPY는
pip3 업데이트psycopg2 설치터미널에서 PostgreSQL을 실행시킨다.터미널에서 python으로 접속
PostgreSQL 에서 데이터베이스의 메타 정보 및 활동 내용은 다음을 통해 이루어집니다. System Catalog Information Schema Statistics Collector System Catalog System Catalog는 테이블 형태로 되
running_cnt | tot_cnt\-------------+--------- 1 | 6(1 row)Time: 1.699 ms running_cnt | tot_cnt\-------------+--------- 1 |
연습 겸 아주 간단한 함수를 만들어본다.test_function 테이블을 생성한다.이번 달 날짜와 다음 달 날짜가 test_function에 insert 되도록 하는 함수 생성만들고 나니 사실상 함수에 넣는 파라미터는 아무 역할도 하지 못한다 ;;elapse 테이블
ERD 로 모델링을 마치고 이를 바탕으로 테이블에 데이터를 적재하는 과정을 살펴본 적이 있다.SQL문을 보고 살펴보던 중 몰랐던 내용이 있어 기록해둔다.상황은 이렇다. place 가 parent,city, country, continent 가 child가 된다.cf)
PostgreSQL Partitioning을 실습해봅니다.Table을 생성합니다.임의로 1000개의 날짜를 생성합니다.생성 구문을 보면 23년 4월 19일인 오늘의 날짜를 고려하면 2022~2023년 날짜만 생성됩니다.Partitioning Table에는 Partiti
절차형 프로그래밍 언어인 C언어처럼 SQL에도 절차 지향적인 프로그래밍이 가능하도록 벤더별로 프로그래밍 언어와 같은 절차형 SQL을 제공합니다. 오라클에서는 PL(Procedural Language)/SQL을 제공하며 SQL Server에서는 T-SQL 을 제공합니다.
Trigger는 방아쇠라는 뜻입니다. 총의 방아쇠를 당기면 총기 내부에서 일련의 과정을 통해 총알이 날아갑니다. 비슷하게 데이터베이스에서도 트리거는 특정 테이블에 INSERT, DELETE, UPDATE 같은 DML 문이 수행되었을 때, 데이터베이스에서 자동으로 동
시스템 카탈로그 뷰
최근 Tibero 테이블 400여개를 PG로, ElasticSearch index 200여개에 1억개 정도의 데이터를 PG 로 이관했습니다.데이터가 정상적으로 잘 넘어왔는지 간단하게 확인하려고 합니다.1\. SourceDB의 table 수와 TargetDB의 table
이기종 Database Migration을 진행하면서 AS-IS 와 TO-BE 의 각 OBJECT 마다의 개수 조회는 필수 적이다. 앞으로 자주 사용할만 한 조회 쿼리는 이 블로그에 하나씩 던지듯 기록해두려고 한다.아래는 제목에서와 같이 Parent Table 당 Ch
JSON 타입을 조회할 때 '->' 와 '->>' 를 사용할 수 있다.간단하게 해석을 해보자면 DATA 내에 friend 키의 0번째 값을 조회하는 과정이 'DATA -> 'friend' ->> 0' 이 부분입니다. 앞에서 말했듯 ->> 로 조회를 실행했으므로 결과는
연습1연습2연습3CREATE OR REPLACE PROCEDURE process_users_above_18()LANGUAGE plpgsqlAS $$DECLARE user_cursor CURSOR FOR SELECT name, email FROM use
PostgreSQL 의 모든 데이터 타입을 알아볼겸, 테스트할 때 종종 사용할 일이 있을 것 같아 남깁니다.
PostgreSQL를 기반으로 한 이기종 데이터베이스 간 마이그레이션을 진행하는 간단한 프로젝트가 생겼다. 대부분 Oracle이나 tibero와 같이 시스템카탈로그 조회가 어렵지 않은 DB를 소스 DB로 다뤘었고, 이 때는 DB 현황분석하는 것이 그닥 어렵지 않았다.하
Fuction을 공부하며 이것 저것 시도하며 이상한 것을 느꼈습니다. Fuction을 생성하는 데 매개변수 데이터 타입만 다르면 같은 이름으로 함수를 중복 생성할 수 있었습니다. 따라서 가능한 이유에 대해서 찾아봤습니다.postgresql 에서 function을 만들
이번에는 입력받는 매개변수 없이 현재 데이터 베이스의 모든 스키마 내의 베이스 테이블을 가져오는 함수를 생성해봅니다.ERROR: column reference "table_name" is ambiguous이전 Function1에서의 포스팅에서와 같이 from절 아래
이번 장은 for문과 loop를 이용하여 function을 사용하는 법을 익혀보려고 합니다. 우선은 천천히 감을 잡아가기 위해 나름대로의 난이도를 생각하여 쉬운 난이도부터 코드를 늘려가며 난이도를 높여보려고 합니다.for문과 loop 사용 연습 이에 대한 결과로 아래와
DBeaver에 붙을 때 driver setting 값 class name : com.agens.DriverURL Template : jdbc:agens://{host}:{port}/{database}
DB 사이즈 조회 1-1) 모든 DB 조회 (ok) 1-2) DB 별 스키마 조회 (ok) 1-3) DB의 스키마 별 테이블 조회 1-4) DB별 테이블 사이즈 조회 (스키마 종합으로 결과 다 나옴) 오브젝트 조회 1-1) DB 오브젝트 조회 1-1-1)
상황 : EDB(운영 DB)에서 PostgreSQL 로 이관 요청 샘플 데이터는 EDB에서 제공하는 샘플 데이터를 활용합니다.참고로 아래와 같은 경로에 샘플 데이터 (.sql) 파일이 존재합니다.'sample' 이라는 데이터베이스를 생성하여 해당 데이터베이스 아래 데이
Term checkpoint : 모든 데이터 파일이 순차적인 트랜잭션 로그 가운데, 한 시점을 기준으로 모든 데이터 파일이 물리적으로 모두 쓰여진 한 시점 shared buffer : DISK I/O를 최소화하려는 목적을 가진 메모리로 자주 사용되는 블록을 메모리에
알림: TABLE알림: 6알림: PARTITION_TABLE알림: 0알림: FUNCTION알림: 146알림: PROCEDURE알림: 5알림: SEQUENCE알림: 1알림: TRIGGER알림: 0알림: PACKAGE알림: 0알림: INDEX알림
ASIS DB에서 TOBE DB로 마이그레이션을 진행한 후 이관 검증을 할 수 있는 방법은 여러가지 있을 수 있습니다. 아래와 같이 검증 시나리오를 세웠으며 기록용으로 남깁니다. TOBE가 PostgreSQL 이므로 PostgreSQL 함수를 기록합니다.
프로젝트에서 필요해서 작성했던 내용을 기록해둔다.기본적인 맥락은 아래와 같다.위의 DDL문을 아래의 DDL 문으로 변경하는 것
이렇게 다양한 DDL문이 섞여있지만 해당 파이썬 스크립트를 이용하면 아래처럼 깨끗하게 TABLE DDL문만 발라낼 수 있습니다.fdw를 활용해서 마이그레이션을 할 때 해당 스크립트를 고도화해서 완전 자동화도 만들어봐야겠네요. ✔ 정규표현식 비캡쳐그룹늘 느끼는거지만 정규
postgresql의 user password 암호화 규칙과 네트워크 규칙 간의 상관관계를 알고싶어 테스트를 했습니다. 참고로 jdk1.6 버전과 jdbc1.6 버전에서는 scram-sha-256 암호화를 지원하지 않습니다.흥미롭습니다.
샘플 데이터 생성 Group by group by group by rollup group by cube
PostgreSQL을 처음 설치하고 설정해야하는 기본 파라미터에 대해 설명하겠습니다.처음 설정하는 매개 변수는 1.메모리(버퍼)관련, 2.체크포인트 관련, 3.서버 로그 관련 변수입니다. 순차적으로 소개하겠습니다.우선 메모리(버퍼)관련 매개 변수입니다. 메모리 관련 매
MariaDB를 Columnstore를 이용하여 DW로 사용중이고, PG를 사용하기 위해 데이터마이그레이션을 완료했습니다. 신규 서버이기 때문에 서버 장비도 업그레이드했으나 구조적인 한계로 인해 Columnstore 테이블의 조회 속도를 능가하기는 어려웠습니다. 조회
사이트에 나가게되면 간단하게 반복된 모니터링을 해야할 때가 있습니다. 이 때 간단하게 실행할 수 있는 방법을 기록해두려고 합니다. 또한 \\watch 기능을 처음 발견하게되어 잊어버리지 않도록 기록합니다.저는 주로 일회성 쿼리 실행은 다음과 같이 수행합니다.우선, 반복
pg_rewind를 수행하면서 여러가지 안되는 경우가 꽤 있어, 하루 정도 테스트해보고 결과를 기록합니다. 추가적으로 더 테스트해볼 여지가 있으며 여유가 있다면 테스트 케이스를 만들어서 공부해보도록 하겠습니다. 엑셀에 표로 정리한 후 마크다운 형식으로 다시 게시합니다.
개념적으로만 알고 있던 Deadlock을 실제 연출해보고자 합니다. 실제 운영 상황에서 발생할 수 있는 Deadlock 쿼리를 만들어봅니다. 쿼리 검증 1 이 쿼리는 gpt가 전달해준 쿼리로 데드락 검증을 진행합니다. 쿼리 검증 2 직접 Lock을 걸지 않는 상황에
pg_rewind 란? pg_rewind는 PostgreSQL에서 제공하는 유틸리티 중 하나로, 스트리밍 복제 또는 로그 복제를 사용하는 PostgreSQL 서버들 간에 데이터 디렉토리를 동기화하는 데 사용됩니다. 주로 스트리밍 복제를 설정한 후 스트리밍 장애나 서버
PostgreSQL에서 autovacuum이 일어나는 조건에 대해서 포스팅하려고 합니다. 이 포스팅은 PostgreSQL 버전 13을 기준으로 합니다.Autovacuum 은 'vacuum', 'vacuum analyze', 'vacuum freeze'와 같은 동작을 자