데이터베이스 기술/POSTGRESQL

가장 많이 사용하는 PostgreSQL의 오픈소스 익스텐션은?

(주)비트나인 2023. 8. 28. 17:14

가장 많이 사용하는 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을 사용하면 비즈니스 시스템의 성장을 지원하고 촉진시키는 다양한 익스텐션들이 있으니, 이 이점을 활용해보시기 바랍니다.

 

 

 

글 : 서준섭 과장 ( 비트나인 글로벌 사업전략팀 )