본문 바로가기
DB 인사이드 | PostgreSQL 16 Release - New Feature (2) 이번 문서에서는 앞서 나열된 PostgreSQL 16 Release의 주요 변경내용 중 일부를 테스트한 내용을 기술합니다.  [성능 개선] FULL OUTER JOIN 및 RIGHT OUTER JOIN의 병렬 처리PostgreSQL 16 버전부터 FULL OUTER JOIN 및 RIGHT OUTER JOIN의 병렬 처리를 지원함에 따라 Query Planner가 기존 버전 보다 더 효율적인 실행계획을 수립할 수 있습니다.📢 병렬 처리는 enable_parallel_hash 파라미터로 제어할 수 있습니다. -- PostgreSQL 15 버전EXPLAIN (COSTS OFF)SELECT COUNT(*) FROM repltab a FULL OUTER JOIN repltab b USING (c1); .. 2023. 11. 30.
DB 인사이드 | PostgreSQL 16 Release - New Feature (1) 2023년 9월 14일 PostgreSQL Global Development Group은 최신 버전의 PostgreSQL 16을 출시하였습니다. PostgreSQL 16의 주요 기능은 아래와 같습니다.📢 PostgreSQL 릴리즈 현황은 DB 인사이드 | PostgreSQL Setup - Version & Utility에서 확인할 수 있습니다.  성능개선새로운 Query Planner 최적화로 PostgreSQL 기능의 성능 향상FULL OUTER JOIN 및 RIGHT OUTER JOIN의 병렬 처리 가능집계 함수(ex. string_agg, array_agg) 사용 시 DISTINCT 또는 ORDER BY와 함께 사용할 경우, 쿼리에 대한 더 최적화된 실행 계획 생성enable_presorted_a.. 2023. 11. 30.
궁금하면 드루와요 | Druid Tuning Part.3 Druid Tuning: 제한된 자원속에서 카프카 스트림으로부터 데이터 수집하는 기능(성능)의 최적화 Part.1 Apache Druid란 (링크) Part.2 Druid Operator: 드루이드 오퍼레이터 도입으로 드루이드 설치부터 관리까지의 과정 개선 (링크) Part.3 Druid Tuning: 제한된 자원속에서 카프카 스트림으로부터 데이터 수집하는 기능(성능)의 최적화 Part.4 Druid Tiering: 데이터가 조회되는 빈도 기준으로 데이터를 구분 Part.5 Druid without Middle Manager (MM less): k8s 리소스(파드)를 사용한 드루이드 태스크 관리 개선 Kafka로부터 데이터 수집 후 데이터 처리 방법 드루이드에서는 스트리밍 데이터와 배치성 데.. 2023. 11. 30.
Chapter 4-4. Seq2Seq Seq2Seq란? Seq2Seq, 즉 Sequence-to-Sequence는 인코더-디코더 형태의 구조로 이루어져 있어 sequence 형태의 데이터를 처리하는 모델이다. 인코더 : 입력 시퀀스로부터 정보를 압축하여 고정된 크기의 문맥 벡터로 변환하는 역할 디코더 : 인코더가 전달한 문맥 벡터를 기반으로 출력 시퀀스를 순차적으로 생성하는 역할 그래서 Seq2Seq는 기존의 단순히 LSTM, GRU로만 구성된 모델들에 비해 sequence 데이터를 처리하는 데에 있어 대부분 더 좋은 성능을 발휘하게 된다. Seq2Seq 구조의 종류 Seq2Seq의 구조는 모델 각각의 입 / 출력 형태에 따라 다양한 종류로 나뉘게 된다. one-to-many : vector 형태의 데이터를 입력하여 sequence 형태의 .. 2023. 11. 30.
궁금하면 드루와요 | Druid Operator Part.2 Druid Operator: 드루이드 오퍼레이터 도입으로 드루이드 설치부터 관리까지의 과정 개선 Part.1 Apache Druid란 (링크) Part.2 Druid Operator: 드루이드 오퍼레이터 도입으로 드루이드 설치부터 관리까지의 과정 개선 Part.3 Druid Tuning: 제한된 자원속에서 카프카 스트림으로부터 데이터 수집하는 기능(성능)의 최적화 Part.4 Druid Tiering: 데이터가 조회되는 빈도 기준으로 데이터를 구분 Part.5 Druid without Middle Manager (MM less): k8s 리소스(파드)를 사용한 드루이드 태스크 관리 개선 Druid Operator란 Druid Operator는 쿠버네티스에서 실행 중인 드루이드 클러스터를 관리.. 2023. 10. 26.
Chapter 4-3. RNN Chapter 4-3. RNN RNN 우리가 다루는 데이터에는 서로 독립적이지 않고 연관되어 있는 경우가 많다. 예를 들어, 날씨 정보에서 현재 비가 오고 있다면 5분 후에 날씨도 비가 올 것이라고 예측할 수 있다. 또한 이미지 데이터나 문장처럼 데이터의 위치와 순서가 중요한 데이터도 있다. 예를 들어, 이미지 데이터에서 픽셀 단위로 이루어진 고양이 이미지를 순서와 상관없이 혼합해버리면 해당 이미지를 고양이로 이해하기 어려울 것이다. 추가로 문장 데이터를 예로 들면 “나는 구글에서 일한다”라는 문장과 “나는 일할 때 구글을 사용한다”의 문장에서 구글이란 단어는 문자는 같지만 문맥상 다른 의미를 갖는다. 이처럼 시간의 영향을 받거나 위치나 순서가 중요한 데이터를 일반적으로 순차 데이터(sequential .. 2023. 10. 26.
DB 인사이드 | PostgreSQL Extension - PG_STAT_MONITOR 시작하며SQL 튜닝보다 중요한 작업은 튜닝대상을 식별하는 일이라고 생각합니다.DBMS별로 제공되는 정보의 한계를 명확히 알아야 하며, 여기저기 산재해 있는 정보들을 조합하여 온전한 결론에 도달해야 하기 때문입니다. 자칫 부정확한 판단으로 애꿎은 SQL을 선택했다면, 이는 안 하느니만 못한 결과를 초래할 수도 있으므로, 그 중요성은 이루 다 말할 수 없습니다.PostgreSQL에서는 튜닝대상 선정을 위해 PG_STAT_STATEMENTS라는 Extension을 많이 사용합니다. 해당 Extension은 매우 범용적이지만 제공되는 정보에는 다소 아쉬운 부분들이 존재합니다.본 문서에서는 PG_STAT_STATEMENTS를 확장한 Percona의 PG_STAT_MONITOR Extension에 대해 알아보고, .. 2023. 9. 21.
Chapter 4-2. 기초 베이지안 통계 Chapter 4-2. 기초 베이지안 통계 베이지안 통계학은 딥 러닝의 여러 분야에서 사용된다. 대표적인 분야가 바로 생성 모델이다. 이번 챕터에서는 베이지안 통계학의 기본 개념과 간단한 예제를 통해 베이지안 통계학이 어떻게 동작하는지 살펴보자. Frequentist와 Bayesian 통계학을 배우는 목적은 여러 가지가 있는데, 그 중 하나는 확률분포를 결정하는 모수(unknown parameter)를 추정하는 것이다. 모수(unknown parameter)를 과학적으로 추정하려고 시도한 결과, 모수를 바라보는 여러 관점들이 나타났다. 그 중 두 가지가 바로 빈도론자(Frequentist)와 베이지안(Bayesian)이다. 대표적인 통계적 실험인 동전 던지기로 빈도론자와 베이지안의 차이를 이해해보자. 우.. 2023. 9. 21.
궁금하면 드루와요 | Apache Druid란 아파치 드루이드는 대규모 데이터를 분석, 저장할 수 있는 도구입니다. 저희는 k8s 환경에서 드루이드를 운영하고 있으며, 카프카를 연계해 데이터를 수집하고 있습니다. 직접 운영하며 사용한 방법과 수집 구조, 한정된 자원 속에서 수집 성능을 개선한 경험에 대해 이야기를 나누고자 합니다. k8s 환경에서 드루이드를 운영하는 사람, 또 운영하고자 하는 사람, 드루이드에서 Kafka로부터 데이터 수집 성능을 개선하려는 사람들과 함께 소통하고 싶습니다. 총 5파트로 나누어, 이번달에는 아파치 드루이드의 기본 개념을 알아보겠습니다. Part.1 Apache Druid란? Part.2 Druid Operator: 드루이드 오퍼레이터 도입으로 드루이드 설치부터 관리까지의 과정 개선 Part.3 Druid Tuning:.. 2023. 9. 21.