애널리틱스 파이프라인을 위한 Postgres 데이터베이스 접근

여러분 안녕하세요. 이 글과 비슷한 게시물을 찾지 못해서 이렇게 글을 남깁니다.

저희 조직은 Snowflake 내에서 분석 대시보드를 구축하고 있으며, Discourse에 있는 사용자 데이터를 통합하기를 희망하고 있습니다.

현재 우리는 EC2 인스턴스 내부의 Docker에서 Discourse를 자체 호스팅(self-hosting)하고 있습니다. 여기에는 몇 가지 옵션이 있는 것 같습니다:

  1. AWS Database Migration Service를 사용하여 EC2에 호스팅된 Postgres 서버에 액세스합니다. 이렇게 하려면 Postgres 포트(기본적으로 공개적으로 액세스할 수 있도록 구성되지 않은 것으로 보입니다)를 노출하고 새로운 Postgres 사용자를 생성해야 하지만, 그 외에는 꽤 좋은 해결책인 것 같습니다.
  • SQL 덤프를 S3 버킷으로 직접 전송하는 방식(Discourse에서 백업이 작동하는 방식)은 Snowflake에서 SQL을 데이터 형식으로 지원하지 않으므로 작동하지 않습니다.
  1. Data Explorer 플러그인을 설치하고, 원하는 데이터를 출력하는 쿼리를 작성한 다음, 결과를 CSV/JSON 파일로 내보내어 Snowflake에 가져옵니다.
  • 이 해결책은 위의 1번보다 단계가 더 많아 보이지만, 이 또한 목적을 달성할 수 있으며 Discourse DB를 망가뜨릴 가능성이 더 낮습니다.

분석 파이프라인에 DB 데이터를 가져오는 방법에 대한 조언이나 다른 사람들의 경험을 듣고 싶습니다. 감사합니다!

Snowflake이 Postgres와 통신할 수 있다면, Postgres 포트를 열어서(접근을 제한하기 위해 적절한 방화벽을 설정하고) Snowflake가 Postgres와 통신하도록 하면 됩니다.

Snowflake가 CSV/JSON을 읽을 수 있다면, Data Explorer를 사용하여 API를 통해 데이터를 자동으로 가져올 수 있습니다.

이건 타당해 보여요. 아마도 직접적인 방법(제 1안)을 시도해 볼 것 같아요. 스토리지 비용은 저렴하고, 이제 전체 DB를 Snowflake로 덤프해서 모든 분석 쿼리를 하나의 저장소에서 정의하는 것이, 특정 분석 요청에 대해 Data Explorer에서 일부 쿼리를 정의하고, 추가 요청이 들어오면 또 다른 쿼리 세트를 정의하고, 그렇게 계속 반복하는 것보다 훨씬 적은 오버헤드를 요구하는 것 같습니다.