가장 많이 사용하는 PostgreSQL의 오픈소스 익스텐션은?
PostgreSQL을 사용하는 경우 비즈니스 요구사항에 따라 기능 개선 및 추가를 위해 다양한 오픈소스 익스텐션을 활용할 수 있습니다. 이러한 익스텐션은 다양한 PostgreSQL 커뮤니티에서 개발되고 있습니다. 수백 개의 PostgreSQL용 OSS 확장 프로그램이 있으며, 그 중 상당수가 프로덕션 환경에서 사용하고 있습니다.
수많은 익스텐션들이 있지만 각각 사양을 확인하고 제대로 동작하는지를 검증하여 요구 사항에 맞게 최적의 선택을 하는 것은 쉽지 않습니다. 이 글에서는 비트나인의 제품라인을 찾는 고객과 일반 사용자가 자주 사용할만한 PG 익스텐션들을 소개하고자 합니다. 이 글을 통해 OSS 익스텐션을 선택하거나 비트나인의 AgensSQL Enterprise Edition을 고려할 때 도움되기를 바랍니다.
자주 사용하는 OSS 익스텐션
다음 목록은 PostgreSQL과 함께 자주 사용되는 OSS 익스텐션을 정리했습니다. 이 목록은 성능, 확장성, 운영성, 모니터링, 가용성, 호환성 및 보안을 포함한 비기능적 요구사항의 개념을 기반으로 합니다.
운영성 (Operability)
- pg_bulkload: 대량의 데이터를 빠르게 로드할 수 있는 기능을 제공합니다.
- pg_rman: 백업/복구 간소화 및 백업 생성 관리와 같은 백업 작업을 지원합니다.
- pgBackRest: 데이터베이스 백업 및 백업에 필요한 기능을 멀티 스레드 형태로 제공하는 백업/복구 관리 도구입니다.
- Barman: 여러 데이터베이스 클러스터의 특정 시점 복구를 중심으로 관리하여 PostgreSQL의 특정 시점 복구 프로세스를 간소화하는 백업/복구 관리 도구입니다.
- pg_repack: 불필요한 영역을 삭제하고 비대해진 테이블과 인덱스를 재구성하여 행을 재정렬합니다. 짧은 기간 동안 잠금상태를 유지하기 때문에 정상적인 비즈니스 운영 중에 사용할 수 있습니다.
- pgAdmin: 데이터베이스 객체의 생성, 유지 관리 및 사용을 간소화하는 GUI입니다.
확장성 (Extensibility)
- pg_bigm: 2그램(빅그램)이라는 방법으로 전체 텍스트 검색을 위한 인덱스를 생성하여 문자열을 빠르게 검색할 수 있습니다.
- PostGIS: 사용자가 SQL로 지리공간 정보를 관리, 편집, 검색 및 계산할 수 있게 해줍니다.
- oracle_fdw: PostgreSQL에서 Oracle 테이블 및 조회에 접근할 수 있는 외부 데이터 래퍼(foreign data wrapper)입니다.
- PostgreSQL JDBC 드라이버: Java에서 PostgreSQL에 연결하기 위한 API를 제공합니다.
- psqlODBC: Microsoft Access, Microsoft Excel 등에서 PostgreSQL에 연결하기 위한 API를 제공하는 PostgreSQL용 ODBC 드라이버입니다.
- Npgsql: Microsoft .NET에서 PostgreSQL에 연결하기 위한 API를 제공하는 .NET 데이터를 제공합니다.
- OCL: Open Client Library는 Oracle Call Interface와 애플리케이션 상호 운용성을 제공합니다.
성능 (Performance)
- pg_hint_plan: 쿼리에 힌트 절을 지정하여 SQL 문이나 GUC 매개 변수를 변경하지 않은채 실행 계획을 제어합니다.
- pg_dbms_stats: PostgreSQL 통계를 관리하고 실행 계획을 간접적으로 제어합니다.
- PgBouncer: PostgreSQL 서버와 클라이언트 사이에서 실행되는 소프트웨어입니다. 연결 풀링 기능을 제공합니다.
모니터링 (Monitoring)
- check_postgres: 데이터베이스 상태를 모니터링하고 비정상적인 상태를 보고합니다.
- pgBadger: PostgreSQL 로그 파일을 파싱하고 SQL 실행 상태와 같은 통계 보고서를 생성합니다.
- pg_statsinfo: 데이터베이스 운영을 모니터링하기 위해 PostgreSQL 운영 통계를 정기적으로 수집 및 축적합니다. 누적된 정보에 대한 텍스트 보고서를 생성합니다.
- pg_stats_reporter: 수집 및 축적된 정보를 기반으로 HTML 형식의 그래픽 리포트를 생성합니다.
가용성 (Availability)
- pgpool-II: PostgreSQL 서버와 클라이언트 사이에서 실행되는 소프트웨어입니다. 연결 풀링, 로드 밸런싱, 복제, 자동 장애 조치 등의 기능을 제공합니다.
호환성 (Compatibility)
- orafce: Oracle 데이터베이스와 호환되는 함수 및 데이터 유형 등의 호환성을 제공합니다.
- ora2pg: Oracle에서 PostgreSQL로의 마이그레이션을 지원하는 도구입니다. Oracle 데이터베이스에서 객체 정의와 데이터를 읽고 이를 PostgreSQL에서 실행 가능한 형식으로 변환합니다.
보안 (Security)
- pgaudit: PostgreSQL의 로그 기능을 사용하여 감사 로그를 가져옵니다.
각 OSS 익스텐션에 대한 사양과 자세한 내용은 각 확장기능들의 홈페이지를 참조하시기 바랍니다.
AgensSQL 엔터프라이즈에서 제공하는 OSS 익스텐션
PostgreSQL 기능과 OSS 익스텐션은 아래와 같이 분류되어 있습니다.
위의 그림과 같이 운영성, 확장성, 모니터링을 위한 OSS 익스텐션의 수가 많다는 것을 알 수 있습니다. 이러한 익스텐션들은 PostgreSQL 본체에 내장될 수 있는 구성 요소 또는 도구로 제공되어 다양한 애플리케이션의 API와 PostgreSQL의 호환성 구현, 외부 데이터와의 연동, 요구사항 및 운영 모드에 따른 PostgreSQL의 적용 등 여러 중요 작업을 수행하고 있기 때문입니다.
비즈니스 요구사항에 따라 최적의 OSS 익스텐션을 선택하려면 각 OSS 익스텐션의 특징과 이점을 이해하는 것이 우선입니다.
AgensSQL EE에 제공하는 OSS 익스텐션과 내장된 기능들도 별도로 표시했습니다. 이용자들은 해당 익스텐션들을 외부 개발 커뮤니티로부터 별도로 구할 필요 없습니다.
이 글에서는 일반적으로 자주 사용되는 PostgreSQL의 OSS 익스텐션을 알아봤습니다. 디지털 기술이 발전함에 따라 새롭고 매력적인 익스텐션은 계속 나타날 것입니다. PostgreSQL을 사용하면 비즈니스 시스템의 성장을 지원하고 촉진시키는 다양한 익스텐션들이 있으니, 이 이점을 활용해보시기 바랍니다.
글 : 서준섭 과장 ( 비트나인 글로벌 사업전략팀 )
'POSTGRESQL' 카테고리의 다른 글
PostgreSQL을 C언어로 사용해보자. (0) | 2023.08.28 |
---|---|
PostgreSQL Extension 소개 (0) | 2023.08.28 |
Vacuum이해와 사용법 (0) | 2023.08.28 |
PostgreSQL의 Advanced Feature(Table Inheritance)의 효율적인 사용 방법 (0) | 2023.08.21 |
[DB 보안] 국산 암호화 알고리즘 ARIA와 SEED를 활용한 PostgreSQL 데이터베이스 보안 강화 (0) | 2023.08.11 |