アナリティクスパイプラインのためのPostgresデータベースアクセス

皆さん、こんにちは。似たような投稿が見つからなかったので、以下に投稿します。

私の組織は、アナリティクスダッシュボード(Snowflake内)を構築しており、Discourseにあるユーザーデータを統合したいと考えています。

現在、DiscourseはDocker内のEC2インスタンスでセルフホストしています。この場合、いくつかの選択肢があるようです。

  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がcsv/jsonを読み取れるのであれば、データエクスプローラーを使用してAPI経由で自動的に取得できます。

「いいね!」 1

これは筋が通っています。おそらく直接的なルート(私のオプション1)で行こうと思います。ストレージは安価であり、すべての分析クエリを1つのリポジトリで定義するために、現在DB全体をSnowflakeにダンプしていますが、Data Explorerで分析リクエストのセットごとにクエリを定義し、その後さらにリクエストがあり、別のセットを定義し、というよりも、オーバーヘッドが大幅に少なくなるように感じます。