Database초보우낙
오라클 엑사 이론 수업 본문
▣ 1. 엑사 시스템이 나오게 된 배경
DB서버랑 스토리지서버를 Interconnect를 이용해서 통신
웹 서버 : 🌐 웹 화면을 구성하기 위한 코드를 구현하는 서버 (html, 자바스크립트 등)
애플리케이션 서버 : ? 🖥️ 화면에서 버튼을 클릭했을 때 작동되게 하는 코드가 있는 서버
데이터 베이스 서버 : ? 🗄️ 데이터를 관리하고 운영하는 서버
스토리지 서버 : ? ☁️ 실제로 물리적인 데이터가 저장되는 서버(cpu, 메모리)
여기서 데이터 베이스 서버가 OLTP 서버와 DW 서버로 나뉘는데
OLTP 서버는 실시간으로 계속 데이터가 저장되는 서버(쿠팡의 주문 테이블) ⌛
DW 서버는 실시간으로 저장되는 데이터를 모은 과거 이력 데이터가 저장되는 서버(과거 데이터) 🗓️
▣ 2. 회사에서 DW 서버가 필요한 이유는?
과거를 분석하고 미래를 예측하기 위한 데이터 분석을 위해서 필요한다
오라클 엑사는 이 DW 서버용 오라클 제품
기존 DW서버들의 단점을 극복하기 위한 노력의 일환으로 등장
▣ 3. 엑사가 출현하게 된 배경 2가지
각 컴퓨터 저장 장치의 속도는 다음과 같습니다:
- CPU : CPU의 속도는 일반적으로 가장 빠르며, 이는 나노초(ns) 단위로 측정됩니다. CPU에 데이터가 저장되면, 프로세서가 이 정보를 매우 빠르게 접근할 수 있습니다.
- DRAM : DRAM (Dynamic Random-Access Memory)은 CPU 다음으로 빠른 속도를 보입니다. 이는 일반적으로 나노초 단위로 측정되며, CPU 캐시와 마찬가지로 데이터에 매우 빠르게 접근할 수 있습니다.
- Flash : 플래시 메모리의 속도는 DRAM보다 느리지만, SSD와 비교하면 더 빠릅니다. 이는 일반적으로 마이크로초(μs) 단위로 측정됩니다.
- SSD : SSD (Solid State Drive)는 플래시 메모리를 사용하여 데이터를 저장하며, 이는 일반적으로 밀리초(ms) 단위로 측정됩니다. SSD는 전통적인 하드 드라이브보다 훨씬 빠르며, 부팅 시간, 파일 전송, 응용 프로그램 로딩 등에서 더 빠른 성능을 제공합니다. (C드라이브)
- HDD : HDD (Hard Disk Drive)는 일반적으로 밀리초 단위로 측정되는 느린 응답 시간을 가지고 있습니다. 하지만 대용량 데이터를 저장하는데 효과적이며, 비용 대비 용량이 큰 편입니다. (하드디스크)
- Tape : 테이프 드라이브는 가장 느린 저장 매체 중 하나로, 이는 보통 초(s) 단위로 측정됩니다. 그러나 테이프 드라이브는 대용량 데이터를 저장하는 데 매우 효과적이며, 장기 보관을 위한 백업 저장소로 주로 사용됩니다.
- Cache: 이 계층은 CPU와 가장 가까우며 데이터에 가장 빠르게 접근할 수 있습니다. 그러나 용량이 가장 작습니다.
- Memory: 이 계층은 Cache 다음으로 빠르며, 용량이 더 큽니다. 이곳에서 실행 중인 프로그램의 데이터와 명령어가 저장됩니다.
- Disk: 이 계층은 가장 넓은 용량을 가지며, 비휘발성 스토리지(전원이 꺼져도 데이터가 유지되는)를 제공합니다. 하지만, Cache나 Memory에 비해 접근 속도가 느립니다.
메모리가 크면 많은 데이터를 올릴 수 있어서 성능이 좋다. 그렇지만 메모리를 꽂을 수 있는것은 한계가 있다. 이것을 SSD가 매꿨다. 새로운 메모리/스토리지 계층 구조에는 RAM과 Disk 사이에 SSS라는 것이 등장했다. 플래시 메모리라는 것을 이용해서 오라클의 성능을 높여보자 라고 한것이다.
엑사가 출현하게 된 배경 2가지
1. 데이터 베이스 + 스토리지의 결합
2. 하드웨어의 발전(차세대 스토리지의 대안 기술)
무어의 법칙이란?
무어의 법칙은 "반도체 칩에 집적할 수 있는 트랜지스터의 수는 약 2년마다 2배로 증가한다"는 무어의 예측을 바탕으로 한 법칙입니다. 이 법칙은 1965년 인텔의 공동 설립자인 고든 무어가 처음 제시하였습니다.
기존 DW에서 작업의 성능저하의 근본적인 원인은?
복잡한 데이터 분석 쿼리들이 동시에 복합적으로 발생하면서 CPU, 메모리, 디스크, 네트워크(하드웨어 자원)를 두고서 서로 경쟁하며 상당한 대기시간이 요구되어지는 것이 원인이다.
▣ 4. 데이터 베이스와 스토리지의 결합 💾
하드웨어 기술이 점점 좋아지고 데이터도 점점 빅데이터가 되면서 증가되는데 발맞춰서 데이터베이스 서버의 성능 향상을 획기적으로 증가시킨 기술이 엑사 데이터 베이스이다
데이터 베이스와 스토리지의 결합의 산출물이 엑사 데이터 베이스이다.
오늘날의 데이터베이스의 성능은 결국 스토리지에 의해 제한이 된다.
이유는 스토리지의 병목 현상 때문이다.
물리적 기계적 회전의 디스크 속도로 인해서 랜덤 I/O 병목 현상이 일어난다.
결과적으로 데이터 대역폭 제한은 DW서버의 성능을 제한한다
데이터 베이스 사용에 있어서 종종 디스크에서 데이터베이스 서버로 가는 데이터 이동을 제한하는 병목현상이 발생한다고 오라클은 지적한다.
오라클에 따르면 이는 전통적인 스토리지 제품들이 좁고 제한된 데이터 베이스스토리지 인터페이스를 제공하기 때문에 이로 인해 데이터 베이스 I/O 경로상에서 데이터 대역폭을 제한하는 많은 병목현상이 발생하게 되고 따라서 데이터 베이스 사용전반의 성능이 제한받게 된다.
디스크와 데이터 베이스 서버 사이의 파이프가 데이터 크기에 비해 너무 작고 느리다(10배~100배)
전통적인 스토리지 장치의 문제는 SQL을 수행하면 스토리지로부터 돌아오는것은 데이터베이스쿼리의 결과가 아니라 데이터 블럭(data block)들이다. 데이터 베이스 쿼리가 요구하는 것보다 더 많인 데이터를 돌려보내면서 대역폭 낭비를 하게 되는 것이다.
▣ 5. 엑사데이터 아이디어 💡
엑사 데이터 아이디어는 기존 오라클 데이터베이스의 구조와 기능은 그대로 유지하되 다음과 같이 디스크 스토리지와 데이터 베이스 서버간의 너무 작은 대역폭을 늘리기 위해
- 파이프를 추가
- 더 큰 파이프를 만들고
- 파이프 보다 더 작은 데이터를 실어 보내고 (블럭이 아닌 행으로 보냄)
- 보다 적은 랜덤 디스크 i/o를 구현했다.
랜덤 디스크 I/O란? (Random Disk I/O)란?
하드 디스크 드라이브의 플래터(원판)을 돌려서 읽어야할 데이터가 저장된 위치로 디스크 헤더(disk arm)을 이동시킨 다음 데이터를 읽는것을 의미한다.
랜덤 디스크 I/O는 읽어야하는 데이터가 물리적으로 불연속적으로 있기때문에 디스크 헤더를 이동시켜야한다.
이때 디스크 헤더를 이동시키는 시간을 seek time이라고 한다
디스크에 데이터를 쓰고 읽는데 걸리는 시간은 디스크 헤더를 움직여서 읽고 쓸 위치를 옮기는 단계에서 결정된다.
SQL 쿼리의 성능을 좌우하는것은, 어떻게 디스크 I/O를 줄이느냐가 핵심
▣ 6. 엑사 데이터는 위의 4가지 사항을 어떻게 해결하였는가 ? 🚀
엑사 데이터가 오라클 데이터 베이스의 구조와 기능을 유지하면서 데이터 대역폭 및 스토리지 병목현상을 극복하기 위해서 제하는 솔루션의 핵심은 바로 지능적 스토리지 서버이다.
오라클은 웹 서버, 애플리케이션 서버, 데이터베이스 서버와 마찬가지로 스토리지 서버도 역시 별도로 존재해야 한다. 🌐
엑사 솔루션은 엑사 스토리지 서버와 오라클 데이터베이스 서버를 고속의 interconnect 로 연결하여 하나의 데이터 베이스 머신으로 구성하는것이다. 🖧
해결해야할 문제 | 오라클 엑사 데이터의 해결방법 |
파이프 수 증가의 필요 → | 스토리지 서버의 초 병렬 구조 |
더 큰 파이프가 필요 → | 고속의 인터커넥트 |
더 작은 데이터를 보내는 방법 필요 → | 스토리지 서버내의 데이터 처리 기술 |
랜던 디스크 i/o 를 최소화 필요 → | 엑사 데이타 플래쉬 캐쉬를 통해서 처리 |
▣ 7. 엑사 데이터 아키텍쳐 🏛️
엑사데이터 시스템은 오라클 데이터 베이스를 위해서 하드웨어와 소프트웨어가 완전히 통합된 데이터 베이스 플랫폼으로 오라클 데이터 베이스 서버와 플랫폼으로 오라클 데이터 베이스 서버와 interconnect와 엑사 스토리지 서버로 구성되어있다.
엑사 시스템의 가장 큰 특징은?
종래의 스토리지가 데이터 베이스 인식 스토리지 서버로 대체됨으로써 데이터 베이스 서버와 스토리지 서버로 이원화되는 2계층 구조라는 점이다.
(엑사를 쓰지 않으면 스토리지가 서버로 되어있는것이 아닌 직접 꽂아서 사용하는 스토리지이다)
Exadata Storage SErver 에서 수행하는 기능:
스마트 스캔 :
대용량 데이터를 처리하는 과정에서 발생하는 네트워크나 프로세서의 병목문제를 보다 근본적으로 제거하려는 엑사 데이터의 핵심 소프트웨어 기술이다
종래에는 쿼리 실행시, 모든 데이터를 데이터베이스서버로 불어들여서 네트워크 프로세서에서 병목문제가 발생했는데 스마트 스캔을 적용하면 스토리지부터 필요한 데이터만 가져올 수 있어서 대용량 데이터를 매우 빠르게 처리할 수 있다
스마트 스캔의 주요 3가지 요소
1. column projection(db 서버로의 데이터 전송량 감소를 통한 최적화)
▶ select 문의 컬럼 리스트에 기술한 컬럼들의 데이터만 골라내서 전공
▶ 필요한 테이블의 컬럼의 데이터만 반환함으로써 엑사 스토리지 계층과 데이터베이스 계층사이에 전송되는 데이터의 양을 제한하는 기능입니다. 여기서 필요한 테이블의 컬럼이란 select 절에 기술한 컬럼을 애기합니다.
select empno, ename, sal
from emp;
2. predicate filtering (db서버로의 데이터 전송량 감소를 통한 최적화)
▶ select 문의 where절에 기술한 조건에 해당하는 row만 골라내서 전송
▶ 주로 사용되는 관심있는 row의 데이터만 DB계층으로 반환하는 기능을 말한다.
select empno, ename, sal
from emp
where job = 'SALESMAN';
3. storage index (Disk i/o 감소를 통한 최적화)
▶ 스토리지에 저장된 컬럼의 최소값과 최대값을 디스크 용량 전체에 걸쳐 추적해서 쿼리의 where절에서 지정된 컬럼 외에 다른 컬럼들을 제외시키는 기능을 수행. 불필요한 데이터에 대한 i/o를 사전에 방지하는 역할을 수행한다.
문제. 엑사에서 스마트 스캔을 할 수 있는 SQL의 where 절의 조건을 볼 수 있는 쿼리문은 ? 🎓
select *
from v$sqlfn_metadata
where offloadabls = 'YES';
-> 비교 연산자들을 볼 수 있다
'오라클 엑사' 카테고리의 다른 글
오라클 엑사 데이터 주요명령어 총정리4 (0) | 2024.04.15 |
---|---|
오라클 엑사 데이터 주요 명령어 3 (0) | 2024.04.12 |
오라클 엑사 데이터 주요 명령어 총정리2 (0) | 2024.04.11 |
오라클 엑사 데이터 주요 명령어 총정리 (0) | 2024.04.08 |