Accéder à la base de données Postgres pour le pipeline analytique

Bonjour à tous, je n’ai pas trouvé de post similaire, alors voici :

Mon organisation développe nos tableaux de bord analytiques (dans Snowflake) et espère intégrer les données utilisateur que nous avons dans Discourse.

Actuellement, nous hébergeons Discourse nous-mêmes sur une instance EC2 dans Docker. Il semble y avoir quelques options ici :

  1. Utiliser AWS Database Migration Service pour accéder au serveur Postgres hébergé sur l’EC2. Cela nécessiterait d’exposer le port Postgres (qui, je crois, n’est pas configuré pour être publiquement accessible par défaut) et de créer un nouvel utilisateur Postgres, mais sinon cela semble être une très bonne solution.
  • Une simple sauvegarde SQL vers un bucket S3 (comment fonctionnent les sauvegardes dans Discourse) ne fonctionnera pas, car SQL n’est pas accepté comme format de données par Snowflake.
  1. Installer le plugin Data Explorer, écrire les requêtes qui produisent les données que nous voulons, puis exécuter + exporter les données résultantes en CSV/JSON que nous pouvons ensuite importer dans Snowflake.
  • Cette solution semble comporter plus d’étapes que la 1. ci-dessus, mais ferait également l’affaire et présente moins de risques de perturber la base de données Discourse.

J’apprécierais vos commentaires ou vos expériences pour intégrer les données de votre base de données dans un pipeline analytique. Merci !

Si Snowflake peut communiquer avec Postgres, alors j’ouvrirais un port Postgres (avec un pare-feu approprié pour limiter l’accès) et le laisserais communiquer avec lui.

Si Snowflake peut lire des fichiers CSV/JSON, vous pourriez utiliser l’explorateur de données et récupérer les éléments automatiquement via l’API.

1 « J'aime »

Cela tient la route. Je vais probablement essayer d’opter pour la voie directe (mon option 1). Le stockage est bon marché et le déchargement de toute la base de données vers Snowflake maintenant afin que nous puissions définir toutes nos requêtes analytiques dans un seul dépôt semble beaucoup moins lourd que de définir certaines requêtes dans Data Explorer pour un ensemble de demandes analytiques, puis ils en demandent plus, alors nous en définissons un autre ensemble, et ainsi de suite…