DBMS/AgensSQL

RDB와 GDB 융합으로 Data Warehouse 구축 및 추출 : AgensSQL과 AGE의 Hybrid Query 튜닝

(주)비트나인 2023. 9. 3. 14:48

 

RDB와 GDB 융합으로 Data Warehouse 구축 및 추출

: AgensSQL과 AGE의 Hybrid Query 튜닝 가이드

 

 

빅데이터와 클라우드 기술의 발전으로 현재 데이터 환경의 변화는 데이터 레이크와 데이터웨어하우스를 중심으로 이루어지고 있습니다. 이러한 변화와 관련하여 RDB와 Graph 융합을 통한 차별화된 솔루션을 제시한 제품이 AgensSQL Enterprise Edition+입니다. 이 글에서는 RDB와 Graph의 융합을 통해 생긴 장점들과 Hybrid Query 튜닝의 중요성, 그리고 효율적인 데이터 레이크와 데이터웨어하우스 구축 방법을 소개하겠습니다.

 

AgensSQL과 AGE의 결합을 통한 RDB와 GDB 융합

 AgensSQL은 객체 및 관계형 데이터처리에 유리한 PostgreSQL 기능을 사용하고 거기에 다양한 기능이 추가되어 효율적으로 사용할 수 있는 DBMS입니다. PostgreSQL의 다양한 Extension들의 사용을 통한 확장성이 유리하고, 고가용성(HA) 지원 및 데이터 보완 강화로 안전하게 사용할 수 있습니다. 또한 데이터 샤딩을 통해 데이터를 분산 저장 및 처리를 할 수 있어서 빠른 처리를 할 수 있는 RDB 중에서 관점에서도 훌륭한 RDBMS입니다.

 게다가 Apache의 TLP(Top Level Project)로 진행중인 AGE(A Graph Extension) GDB를 함께 사용할 수 있다는 큰 장점을 가지고 있습니다. 이를 통해 복잡한 데이터를 빠르고 효율적으로 관리할 수 있습니다. 기존 RDB만 활용할 경우에는 관계가 복잡해지면 쿼리의 복잡도가 급격하게 증가하여 시스템의 성능에 부담이 됩니다. 반면, Graph 데이터베이스의 경우, 네트워크와 관계성이 있는 데이터 처리에 따른 따른 데이터 분석이 아주 큰 강점입니다. 

 이를 통해 AgensSQL은 방대한 양의 데이터 레이크로 부터, 안전하고 효율적인 DW(Data Warehouse) 구축뿐만 아니라, 이를 효율적으로 추출 및 구축하여 적절한 데이터마트(Data Mart)를 구축할 수 있습니다.




데이터 레이크와 데이터웨어하우스의 차이

 효율적인 데이터 관리를 위해 데이터 레이크와 데이터웨어하우스의 이해가 필요합니다. 이 두 용어는 비슷해 보이지만, 아래와 같은 주요 차이점이 있습니다.

데이터 레이크: 비정형, 반정형, 정형 등 다양한 형태의 원천 데이터를 수집하여 원본 그대로 저장하는 시스템입니다. 데이터 레이크의 강점은 적은 전처리로 원본 데이터를 보존하면서 빠르게 통합하여 다양한 데이터 분석 목적에 사용할 수 있다는 것입니다.

데이터웨어하우스: 데이터를 일정한 구조로 정리하고, 체계적으로 저장하는 데이터 저장 시스템입니다. 데이터웨어하우스는 비즈니스 인텔리전스와 데이터 분석에 필요한 정규화된 데이터를 제공하며 관계형 데이터베이스를 사용합니다.


AgensSQL과 AGE의 Hybrid DataBase를 활용한 데이터 레이크와 데이터웨어하우스의 장점 이용

AgensSQL과 AGE를 같이 사용하면 데이터 레이크와 데이터웨어하우스의 장점을 모두 활용할 수 있습니다. AgensSQL의 RDB와 AGE의 Graph DB의 융합을 통해 다양한 형태의 데이터 처리를 손쉽게 수행할 수 있습니다. 

 

  • 통합된 데이터 관리: 데이터 레이크와 데이터웨어하우스에 저장된 각 데이터의 관계를 RDB와 Graph 데이터베이스의 융합을 통해 손쉽게 찾아볼 수 있습니다. 이를 통해 분석에 필요한 데이터를 원활하게 연계하고 활용할 수 있습니다.
  • 다양한 데이터 처리 : RDB에서는 정형 데이터를 처리하는 데 최적화되어 있고, Graph 데이터베이스는 비정형 및 네트워크 데이터 처리에 성능을 발휘합니다. 이 둘을 결합하여 데이터 분석에 있어서 최적의 성능을 제공합니다. 특히 정형화된 형태의 데이터 처리를 AgensSQL을 사용하고, 복잡한 관계가 얽혀있는 데이터는 AGE를 이용하여 다양한 관계를 표현할 수 있습니다.
  • 유연한 쿼리 작성: Hybrid Query 기능을 활용하여 복잡한 정형 및 비정형 데이터를 한 번에 처리할 수 있는 쿼리를 작성할 수 있습니다. Cypher in SQL 등의 함수를 사용하여 두 데이터웨어하우스 간 장점을 결합하여 OLAP, 데이터 분석 등 다양한 활용을 할 수 있습니다.

 

Hybrid Query 튜닝을 데이터 레이크와 데이터 웨어하우스 결합

 Hybrid Query 튜닝 기술을 사용하면 데이터 레이크와 데이터 웨어하우스의 각 저장소의 장점을 적절히 결합하여 추출할 수 있습니다. 예를 들어, 다음과 같은 방식으로 Hybrid Query를 활용하여 튜닝할 수 있습니다.

 

  • 병렬 처리: RDB와 GDB를 동시에 처리할 수 있는 병렬 쿼리를 활용하여 데이터 레이크와 데이터 웨어하우스의 정보를 동시에 조회할 수 있습니다. 이를 통해 전체 쿼리 시간이 크게 단축됩니다.
  • 데이터 결합: 원천 데이터의 필요한 부분을 추출한 후, 이를 AgensSQL과 AGE를 결합한 Hybrid Query 기능을 이용하여 관계형 데이터와 결합할 수 있습니다. 이를 통해 원본 데이터의 특정 부분에 대한 상세 분석이 가능합니다.
  • 효율적인 쿼리 작성: Hybrid Query를 통해 정형 및 비정형 데이터를 모두 포함하는 쿼리를 작성할 수 있습니다. 이를 통해 데이터 분석 및 처리 파이프라인을 간소화하고 일관된 가독성 있는 쿼리 결과를 도출할 수 있습니다.

 

 따라서 Hybrid Query 튜닝을 통해 동시에 데이터 레이크와 데이터 웨어하우스의 장점을 이용하여 훨씬 많은 데이터 처리 및 분석 작업을 동시에 수행할 수 있습니다. 이를 통해 단순히 데이터 저장 및 검색 작업에서 벗어나, 데이터 파악, 컨텍스트 이해 및 분석 수준까지 확장됩니다.

 

Hybrid Query를 튜닝하는 방법은 주로 성능 최적화와 효율적인 데이터 처리를 목표로 합니다. 다음은 Hybrid Query 튜닝을 구체화하는 몇 가지 시나리오입니다.

 

1. 작업 분할 및 병렬 처리

복잡한 쿼리에서 관계형 데이터베이스(RDB)와 그래프 데이터베이스(GDB)가 처리하기에 적합한 작업을 분할합니다. 각 데이터베이스에서 처리한 결과를 병합하여 최종 결과를 얻습니다. 예를 들어, RDB에서 고객 정보를 조회한 후, GDB에서 해당 고객의 관계 정보를 조회하여 최종 결과를 제공하는 작업을 수행할 수 있습니다. 작업을 분할하여 병렬 처리함으로써 전체 쿼리 처리 시간이 단축되며 성능이 향상됩니다.

 

2. 인덱스 및 최적화된 데이터 접근

데이터베이스에서 인덱스를 효율적으로 사용하여 검색 성능을 높입니다. 인덱스를 사용하는 쿼리는 빠른 응답 시간을 보장합니다. GDB에서는 그래프 인덱스를 활용하여 빠른 관계 탐색 및 조회가 가능합니다. 적절한 인덱싱 전략을 선택하여 Hybrid Query의 성능을 최적화할 수 있습니다.

 

3. 중간 결과 캐싱 및 파이프라인 처리

작업 분할 후 각 데이터베이스에서 조회된 중간 결과를 캐싱하여 사용할 수 있습니다. 이렇게하면 반복되는 쿼리의 경우 조회되었던 데이터를 재활용할 수 있어 쿼리 응답 시간이 감소됩니다. 또한, RDB에서 조회된 데이터를 GDB로 전달하거나 GDB에서 조회된 데이터를 RDB로 전달할 때 파이프라인 처리를 활용하여 효율성을 높입니다.

 

4. 쿼리 계획 최적화 & 조인 전략

적절한 쿼리 계획을 설정하고, 테이블 조인 전략을 최적화하여 데이터 처리 성능을 향상시킬 수 있습니다. 다양한 계획과 조인 전략 중 가장 효율적인 방법을 선택하여 자원을 절약하고 처리 시간을 단축할 수 있습니다.

 

5. 튜닝 도구 및 모니터링 사용

성능 최적화 및 시스템 모니터링 도구를 사용하여 실행된 쿼리의 성능을 개선할 여지가 있는지 확인합니다. 이를 통해 문제가 발생하는 부분을 찾아 손쉽게 수정할 수 있습니다. Hybrid Query 튜닝을 통해 RDB와 GDB의 장점을 적절하게 결합하고, 최적화된 성능과 효율적인 데이터 처리를 도모할 수 있습니다. 이를 활용해 다양한 데이터 처리 작업에 효과적으로 대응할 수 있습니다.



다음 예제에서는 AgensGraph를 사용하여 관계형 데이터베이스(RDB)의 DW에서 고객 정보를 조회하고, 같은 엔진 내의 그래프 데이터베이스(GDB)의 DW에서 조회 후, RDB DW와 GDB DW를 결합하여 고객의 상품 추천 정보를 조회하는 쿼리입니다.

 

WITH customer_info AS (
    SELECT customer_id, customer_name
    FROM customers
    WHERE customer_id = ‘123
), —- Using SQL Query To extract information from Cypher query(RDB DW)
product_recommendations AS (
    SELECT rec.id as rec_id, rec.name as rec_name,

    COUNT(*) as frequency
    FROM cypher($$
        MATCH (c:Customer {id:$1})-[:PURCHASED]->

        (p:Product)<-[:PURCHASED]-(other_c:Customer)
        -[:PURCHASED]->(rec:Product)
        WHERE c.id = customer_info.customer_id AND 

        NOT (c)-[:PURCHASED]->(rec)
        RETURN rec.id, rec.name $$) AS t (id, name)
    GROUP BY rec.id, rec.name
    ORDER BY frequency DESC
) —- Querying from Graph DW using SQL Query (GDB DW)
SELECT customer_info.customer_id, customer_info.customer_name, product_recommendations.rec_id, product_recommendations.rec_name, product_recommendations.frequency
FROM customer_info, product_recommendation

—- Merging between RDB DW and GDB DW

 

 위 쿼리 예제는 RDB DWGDB DW의 정보를 추출 후, 둘을 결합하여 고객과 추천 정보를 추출하는 Hybrid Query의 OLAP(Online Analytical Processing) 과정입니다. 먼저 WITH 절을 사용하여 RDB DW에서 고객 정보를 조회한 후, GDB DW에서 RDB DW의 정보를 조회하여 고객과 구매 패턴이 유사한 다른 고객을 기반으로 추천 상품을 서열화하여 product_recommendations CTE(Common Table Expression)를 생성하고, 하여 반환합니다. 선택된 고객 정보(customer_info)와 추천 상품 정보(product_recommendations)가 반환된 다음, 두 테이블을 조인하여 최종 결과를 얻습니다. 

 이렇게 AgensSQL은 Graph DB가 제공되는 AGE와 결합하여 관계형 및 그래프 데이터베이스의 장점을 모두 활용할 수 있는 다양한 DW의 데이터 처리 작업에 효과적으로 결합 후, 사용자가 원하는 Data Mart를 구성할 수 있는 통합된 데이터 환경을 가지고 있습니다.

 

또한 관계형 데이터와 그래프 데이터에서 각 데이터 유형에 유리한 Index 기능이 제공되어서, 각각 DW에 맞는 Index를 사용하여 병렬처리를 통해 성능을 극대화를 할 수 있으며, 적절한 쿼리 튜닝 및 최적화를 할 수 있다는 장점이 존재합니다.



결론

 지금까지 AgensSQL의 AGE와의 결합, 그리고 RDB와 GDB의 효율적인 관리 및 사용을 위한 Hybrid Query와 관련된 다양한 주제를 다루었습니다. 

 AgensSQL은 기본적으로 PostgreSQL 기반의 관계형 데이터베이스 제품으로, 객체 및 관계형 데이터를 처리하는 PostgreSQL의 많은 기능을 제공할 뿐만 아니라 데이터 보안 강화, HA(고가용성) 지원, 모니터링, 샤딩 등 안전하고 탁월한 성능으로 사용할 수 있어서 기존 RDB 사용자들에게 유익하게 사용할 수 있습니다. 

이러한 AgensSQL의 장점들을 바탕으로 AGE와 통합되었을 때 그래프 데이터베이스와 관계형 데이터베이스를 유기적으로 결합하여 각 쿼리의 튜닝기능을 통해 강점을 극대화하여 OLAP, Data Mart 등 사용자가 원하는 정보 및 지식을 효율적으로 추출할 수 있습니다. 이를 통해 Hybrid Query를 사용하여 복잡한 데이터 분석과 처리 작업을 수행할 수 있으며, 병렬 처리와 최적화 기술을 통해 더욱 빠르고 효율적으로 수행할 수 있습니다.  

 따라서 AgensSQL은 데이터 웨어하우스 관리를 더욱 효과적으로 수행할 수 있는 솔루션으로, 탁월한 기능과 유연성을 통해 데이터의 가치를 극대화하는데 도움을 줄 것입니다.

 

 

 

글 : 최홍훈 전임 ( 비트나인 글로벌 사이언스팀 )