9P by neo 17일전 | favorite | 댓글 1개
  • PostgreSQL 데이터베이스 간에 데이터를 이동하고 변환하는 가장 쉬운 방법을 제공
  • 실시간 스트리밍 : PostgreSQL 논리적 복제를 사용하여 거의 실시간으로 데이터 변경 사항을 스트리밍
  • 대량 복사 : 병렬 처리 가능한 대량 복사로 초기 데이터 동기화를 빠르게 수행
  • 강력한 변환 : 정규 표현식을 기반으로 변환을 적용하고, 민감한 데이터를 마스킹하며, 열 값에 따라 필터링
  • 유연한 라우팅 : 테이블 간 데이터를 매끄럽게 라우팅하며, 다른 이름의 테이블이나 동일한 테이블로 사용자 정의 열 매핑을 통해 라우팅
  • 변환 규칙 예시
    • 이메일 주소 마스킹: 이메일 열을 마스킹 문자로 변환.
    • 전화번호 형식화: 정규 표현식을 사용하여 전화번호 형식 변환.
  • 테이블 라우팅 및 열 매핑
    • 유연한 테이블 라우팅: 사용자 테이블을 고객 테이블로 라우팅하며, ID와 사용자 이름을 고객 ID와 고객 이름으로 매핑함.
    • 다중 테이블 라우팅: 주문 테이블을 거래 테이블로 라우팅하며, ID와 총 금액을 거래 ID와 금액으로 매핑함.
  • 일반적인 사용 사례
    • PostgreSQL DB 간에 실시간 데이터 복제
    • 데이터 변환을 포함한 ETL 파이프라인 구성
    • 데이터 리라우팅, 마스킹, 필터링
    • 다운타임 없이 데이터베이스 마이그레이션 실행
    • PostgreSQL에서 이벤트 스트리밍
  • 작동 방식
    • pg_flo는 PostgreSQL의 논리적 복제 시스템을 활용하여 데이터 변경 사항을 캡처하고 스트리밍함.
    • NATS를 메시지 브로커로 사용하여 WAL에서 읽기를 복제기 및 작업자 프로세스와 분리하여 유연성과 확장성을 제공함.
    • 변환과 필터링은 데이터가 목적지에 도달하기 전에 적용됨.
Hacker News 의견
  • pg_flo 프로젝트는 매우 흥미로워 보이며, 특히 S3로의 아카이브와 저렴한 도구 버전이 매력적임

    • Debezium과 같은 도구는 대규모 데이터(TBs) 대신 소규모 데이터(GBs)로 작업할 수 있어 로컬 테스트가 용이함
    • Kafka와 Debezium을 사용하는 것은 단기적인 노력이며, 번거로움을 평가 중임
    • 팀에서 평가 중인 다른 솔루션으로는 peerdb가 있음
  • PostgreSQL 논리적 복제를 사용하여 메인 데이터베이스에서 데이터를 정리하고 S3로 아카이브하는 프로젝트를 진행 중임

    • 일부 테이블은 읽기 작업을 위해 보조 Postgres 인스턴스에서 사용 가능해야 하며, 이때 복제가 필요함
    • 메인 데이터베이스에서 두 가지 삭제 작업이 문제임
      • 첫 번째 삭제는 데이터 정리를 위한 것이며, 복제된 데이터베이스에 반영되지 않기를 원함
      • 두 번째 삭제는 롤백을 위한 것이며, 데이터 상태를 변경하므로 복제되어야 함
    • 이러한 두 가지 삭제 작업을 구분하여 롤백 삭제만 복제할 수 있는 방법이 있는지 궁금함
  • Postgres CDC 솔루션을 조사 중이며, pg_flo가 도움이 될 수 있을지 궁금함

    • 실패 모드에 대해 설명해줄 수 있는지 궁금함
    • 예를 들어, NATS 서버(또는 워커/복제자) 노드가 죽으면 어떻게 되는지 알고 싶음
    • Postgres에서 ElasticSearch/ClickHouse로 데이터를 이동하는 것이 얼마나 어려운지 궁금함
  • Debezium의 대안이 될 수 있기를 바람

    • Debezium은 처음에 전체 CDC 상태를 Kafka로 복사해야 하며, Kafka 보존 시간을 무한대로 설정해야 하는데, 이는 많은 Kafka 서비스 시스템에서 허용되지 않음
  • pglogical은 Postgres 내부에서 실행될 수 있지만, pg_flo는 확장이 아닌 외부 서비스로 보임

    • 이는 실제로 이점일 수 있음
    • Azure Postgres, Supabase, Neon 등 Postgres as a service 인스턴스와 함께 pg_flo를 사용할 수 있을지 궁금함
    • 벤더가 승인하지 않은 확장을 설치할 필요 없이 WAL을 읽을 수 있는지 궁금함
  • 이 도구를 사용해보는 것이 매우 기대됨

    • 네트워크 연결 끊김/불안정성 중간에 복사를 처리할 수 있는지 궁금함
  • Sequin과 비교했을 때 어떻게 다른지 궁금함

    • CDC 이벤트 기반 워크플로우를 가능하게 하면서도 임의로 이벤트 스트림을 필요에 따라 재생할 수 있는 도구를 찾고 있음
  • 비슷한 도구를 찾고 있었는데, 완벽한 타이밍임

    • 다양한 변환을 통해 대량 복사(예: 야간)를 수행하고, 지속적으로 스트리밍하지 않는 것이 지원되는지 궁금함
  • S3에 백업하는 것보다 복제를 사용하는 것이 더 나을지 궁금함

  • 매우 멋진 도구임