Postgres multi-locataire parle PostgreSQL
Connecter Nil vers Excel, Google Sheets, l'IA et REST
Nile — Postgres pour applications B2B mutualisées. Les rapports générés ici ont une vue d'ensemble de chaque locataire, ce qui est généralement l'objectif principal.
Une seule connexion, chaque surface
Où vos données sur le Nil peuvent-elles aller ?
- 1 connexion sortante
- 0 ports d'entrée
- lecture seule · les identifiants restent stockés
fonctionne sur
- Pour votre équipe, vos fournisseurs et vos partenaires
-
Excel module complémentaire · actualisation à la demande
-
Google Sheets module complémentaire · actualisation à la demande
-
Nova AI Poser une question en langage clair · Conversion de texte en SQL
-
Visionneuse de données partagez les résultats en direct · équipe, fournisseurs, partenaires · sur n'importe quel appareil
- Pour les applications et les systèmes
-
API REST Point de terminaison JSON · OpenAPI 3.1
-
Power BI Power Query M
-
Synchronisations planifiées Google Sheets · Airtable · Baserow · SeaTable · Smartsheet · Anvil
- Pour les outils d'IA
-
assistants IA Claude · Curseur · Serveur MCP
- Livré aux personnes
-
Alertes et rapports Slack · Discord · Courriel · Webhook
Query Streams lit les données Nile depuis Microsoft Excel, Google Sheets, Power BI, les assistants IA via MCP et un point de terminaison REST grâce à une unique connexion en lecture seule. Nile virtualise les locataires au sein d'une seule base de données Postgres au lieu d'en attribuer une à chaque client. Ainsi, les tables, gérées par locataire, contiennent une colonne `tenant_id` et une seule connexion permet d'accéder à l'ensemble des locataires. Votre application est limitée à un seul locataire à la fois ; une connexion de reporting, en revanche, ne l'est pas. Pour une analyse inter-clients, ce comportement est précisément celui recherché.
Nile est PostgreSQL sur le réseau — le pilote standard, donc tous les guides ci-dessous s'appliquent sans modification. La seule partie spécifique à Nile est la chaîne de connexion, traitée dans détails de connexion.
- Pour votre équipe, vos fournisseurs et vos partenaires
-
Nil à Excel Microsoft Excel · Complément Excel
Importez directement les résultats en direct de Nile dans une feuille de calcul et actualisez-les à la demande — Excel de bureau, Excel Online, Microsoft 365.
Guide PostgreSQL -
Nil vers Google Sheets Module complémentaire Sheets
Exécutez une requête Nile enregistrée depuis la barre latérale et glissez-déposez les lignes dans la feuille. Les collaborateurs peuvent ensuite la mettre à jour eux-mêmes.
Guide PostgreSQL -
Demandez à Nova ce qu'il pense du Nil. Nova AI · Texte vers SQL
Posez votre question en langage clair. Nova connaît déjà vos tables Nile, rédige et exécute la requête SQL, explique la réponse et la représente graphiquement — aucune requête à écrire, aucune information d’identification à fournir.
Comment fonctionne Nova -
Visionneuse de données du Nil Partage des résultats · équipe, fournisseurs, partenaires · téléphone, tablette, ordinateur
Partagez un résultat Nile en direct avec qui vous voulez (un collègue, un fournisseur, un partenaire) sous forme de grille que vous pouvez ajouter à vos favoris et qui se met à jour automatiquement à chaque ouverture, sur un téléphone, une tablette ou un ordinateur. Ils voient les résultats, jamais le code SQL ni les identifiants.
Fonctionnement du visualiseur de données - Pour les applications et les systèmes
-
API REST du Nil point de terminaison HTTP
Publiez une requête Nile sous forme de point de terminaison JSON authentifié, accessible à toute application, avec une spécification OpenAPI 3.1 et des collections Postman, Insomnia et Hoppscotch prêtes à l'emploi. Aucun port de base de données n'est ouvert.
Guide PostgreSQL -
Nil vers Power BI Power Query M
Collez le code Power Query M généré dans l'éditeur avancé de Power BI et le rapport affichera les résultats Nile en direct via HTTPS — sans pilote ODBC ni port de base de données ouvert.
Comment fonctionne Power BI -
Nil vers Airtable Plateforme d'automatisation
Synchronisez les lignes Nile dans une base Airtable selon une planification, ou récupérez-les dans un script d'automatisation Airtable.
Guide PostgreSQL -
Du Nil à Baserow Plateforme d'automatisation
Alimentez une table Baserow à partir de Nile via le point de terminaison REST — auto-hébergé ou cloud Baserow.
Guide PostgreSQL -
Du Nil à la table de mer Plateforme d'automatisation
Maintenez une base SeaTable à jour avec les données du Nil sans exporter de fichier ni exposer la base de données.
Guide PostgreSQL -
Nil à Smartsheet Plateforme d'automatisation
Intégrez les résultats de Push Nile dans une grille Smartsheet afin que les plans et les rapports soient lus à partir du système source et non de l'exportation de la semaine dernière.
Guide PostgreSQL -
Du Nil à l'enclume Anvil Works · Plateforme d'applications
Utilisez Nile pour alimenter une application Anvil Python via le point de terminaison REST au lieu d'intégrer les identifiants de base de données dans l'application.
Guide PostgreSQL - Pour les outils d'IA
-
Serveur MCP du Nil Claude, clients de Cursor et MCP
Donnez à un assistant IA un accès en lecture seule à Nile avec le schéma dont il a besoin pour écrire du SQL correct — aucune information d'identification dans la conversation.
Guide PostgreSQL - Livré aux personnes
-
Alertes et rapports sur le Nil Slack · Discord · Courriel · Webhook
Programmez une requête Nile et faites en sorte que les lignes soient livrées à Slack, Discord, par e-mail ou via un webhook signé — ou conservez le message jusqu'à ce qu'un nombre de lignes, un seuil ou un pourcentage de variation dépasse la limite que vous avez définie.
Fonctionnement des alertes et des rapports
Comment ça marche
5 étapes, aucune modification du pare-feu entrant
Installez l'agent réseau sur une machine ayant accès à Internet. Il ouvre une seule connexion sortante et n'écoute jamais, aucune règle de pare-feu entrante n'est donc nécessaire.
Dans la console Nile, ouvrez la base de données, puis Paramètres et Connexion, et choisissez l'option PostgreSQL.
Générez un identifiant si vous n'en possédez pas. Nile affiche le mot de passe une seule fois, à ce moment précis ; copiez-le donc avant de quitter la page.
Collez la chaîne de connexion dans le premier champ. L'hôte, le port, la base de données, le nom d'utilisateur et le mot de passe seront automatiquement extraits de cette chaîne.
Laissez l'option « Utiliser SSL » activée, testez et enregistrez. Vous pourrez ensuite lire les données depuis Microsoft Excel, Google Sheets, Power BI, MCP ou via l'API REST grâce à cette connexion.
Analyse approfondie des fonctionnalités
Ce que le Nil vous offre
Une base de données par locataire, une seule requête
Le modèle de Nile est la partie intéressante de ce connecteur, et il change la nature même d'une connexion de reporting.
- Nile conserve tous les locataires dans une seule base de données Postgres et les sépare à l'aide d'une colonne tenant_id dans les tables dédiées aux locataires, plutôt que de fournir à chaque client une base de données ou un schéma distinct.
- Votre application définit un contexte de locataire pour chaque connexion et ne voit donc qu'un seul client à la fois. Une connexion Query Streams ne définit pas ce contexte et voit donc tous les clients.
- Cela simplifie la génération de rapports inter-locataires, qui se résume à une simple opération GROUP BY plutôt qu'à un projet d'intégration. L'utilisation par client, le chiffre d'affaires par forfait ou les comptes inactifs ce mois-ci figurent tous dans un seul et même rapport.
- Cela signifie également que vous êtes libre de concevoir le contrôle d'accès. La connexion n'est pas limitée à un locataire ; par conséquent, si vous avez besoin de rapports par client, filtrez sur tenant_id dans la requête enregistrée et partagez cette requête plutôt que la connexion.
- Tout ce que l'agent exécute est en lecture seule, donc rien ici ne peut modifier les données du locataire, quel que soit le contenu de la requête.
-- Le reporting inter-locataires est un GROUP BY ordinaire SELECT t.name AS tenant, COUNT(o.id) AS orders, SUM(o.amount) AS revenue FROM public.tenants AS t JOIN public.orders AS o ON o.tenant_id = t.id WHERE o.placed_at >= now() - interval '30 days' GROUP BY t.name ORDER BY revenue DESC;
Les informations d'identification ne sont affichées qu'une seule fois, et les points de terminaison régionaux sont des serveurs Postgres ordinaires.
Deux remarques pratiques qui couvrent la plupart des aspects liés à la mise en place de cette procédure.
- Nile génère un identifiant unique servant de nom d'utilisateur et affiche le mot de passe une seule fois. En cas de perte, il est conseillé d'en générer un nouveau plutôt que d'essayer de récupérer l'ancien.
- Les points de terminaison sont régionaux et se terminent par .db.thenile.dev, sur le port standard 5432. Il n'y a pas de pooler dans ce chemin et l'agent n'applique aucune adaptation de pooler.
- Le protocole TLS est requis et l'agent l'applique aux noms d'hôtes Nile ; par conséquent, décocher la case SSL ne crée pas de connexion non chiffrée. La chaîne de certificats n'est pas vérifiée. — à considérer comme une protection contre toute personne lisant le trafic, et non comme une preuve de l'identité du serveur ayant répondu.
- La chaîne de connexion collée est supprimée une fois les champs remplis, le mot de passe est donc stocké à un seul endroit plutôt qu'à deux.
Partagé par tous les connecteurs de base de données
C'est valable pour tous les connecteurs de base de données.
- Sortant uniquement L'agent ouvre une connexion chiffrée vers Query Streams. Aucun port entrant à rediriger, aucun VPN, aucune liste blanche d'adresses IP : votre base de données n'est en aucun cas exposée sur Internet.
- Les identifiants restent en place — Le nom d'utilisateur et le mot de passe de la base de données sont stockés sur la machine où l'agent est installé. Query Streams ne les reçoit jamais et ne peut pas accéder à votre base de données par lui-même.
- Lecture seule, obligatoire — une seule instruction à la fois, SELECT et les instructions associées uniquement. Une tentative d'écriture est bloquée sur votre machine avant même d'être envoyée au serveur, sans dépendre d'une autorisation préalablement définie par un tiers.
- Déployez autant d'agents que vous le souhaitez — un par site, région ou cloud. Toutes les sources de données visibles apparaissent dans un menu déroulant unique ; il est donc inutile de savoir quel agent héberge quoi.
Voici ce que vous obtenez une fois qu'une requête est enregistrée.
- Partagez les compétences, pas le SQL. — un collègue ou un partenaire externe peut exécuter votre requête et modifier ses filtres sans jamais voir la requête sous-jacente.
- Filtres provenant des deux directions — Déclarez-les vous-même comme @variables, ou laissez le connecteur repérer les valeurs littérales déjà présentes dans votre clause WHERE et les proposer sous forme de listes déroulantes.
- Lisez-le depuis n'importe où — Microsoft Excel, Google Sheets, Power BI, l'API REST, les assistants IA via MCP, le générateur de requêtes et Nova lisent tous la même requête enregistrée.
- Exécutez-en plusieurs simultanément — cinq requêtes enregistrées dans cinq onglets de feuille de calcul, diffusées simultanément, quelle que soit la taille des résultats.
- Connectez-le à tout autre élément que vous avez connecté. — une autre base de données, une API métier ou un dossier de fichiers, dans une seule instruction en lecture seule.
SQL inter-sources
Associez Nile au reste de vos données
Une seule requête peut couvrir Nile et vos autres connexions simultanément. Chaque source exécute uniquement la partie qu'elle peut, renvoie le résultat, et la jointure est centralisée ; les sources ne communiquent jamais entre elles et aucune donnée n'est copiée.
3 connexions · 3 agents
Une déclaration
-- rien copié, rien fusionné, rien programmé
SELECTIONNER c.region, COUNT(*) AS commandes, SUM(i.montant_dû) AS facturé
DE application nile.public.orders1 f
JOINDRE erp_sql.dbo.clients2 c ON c.id = f.customer_id
JOINDRE facturation.stripe.factures3 i ON i.customer = c.stripe_id
GROUPE PAR région c.
ORDER BY facturé DESC;
Les trois éléments sont la connexion, le schéma et la table ; le nom de la connexion est celui que vous lui avez donné. Les colonnes sont données à titre d'exemple ; vos tables seront les vôtres. Chaque élément est en lecture seule : seules les instructions SELECT, WITH et EXPLAIN sont autorisées, avec une limite quant aux données qu'une source peut transmettre pour une requête donnée. Fonctionnement des requêtes fédérées
Détails de connexion
Ce dont le Nil a besoin
- Hôte
- <region>.db.thenile.dev
- Port
- 5432
- Conducteur
- Npgsql, pris en charge par l'agent — rien à installer côté Nil
- Format de collage
- La chaîne de caractères provenant de Base de données, Paramètres, Connexion, PostgreSQL — sous forme d'URI postgres://
- Nom d'utilisateur
- L'identifiant d'authentification généré par la console, et non une adresse e-mail.
- TLS
- Obligatoire et appliqué pour les noms d'hôtes Nile. Chiffré ; la chaîne de certificats n'est pas vérifiée.
- Mise en commun
- Aucun. L'agent n'applique aucune adaptation de pooler pour le Nil.
- Étendue du locataire
- Aucun contexte de locataire n'est défini ; la connexion voit donc tous les locataires. Filtrez sur tenant_id dans la requête si nécessaire.
- Enregistré sous
- PostgreSQL, avec le Nil conservé comme badge
- Schéma par défaut
- public, ce que contient une référence fédérée
Il est important de comprendre Nile comme cible de reporting, notamment en raison de ce qu'elle ne fait pas dans ce contexte. L'isolation des locataires, qui en fait une base de données utile, est appliquée par connexion, par l'application, lors de la définition d'un contexte de locataire. Une connexion de reporting qui n'en définit jamais ne contourne pas un contrôle ; elle utilise la base de données conformément au modèle prévu pour un opérateur qui a besoin de visualiser l'ensemble du système.
Concrètement, la décision de portée est désormais intégrée à la requête plutôt qu'à la connexion. L'ajout d'un filtre tenant_id à une requête enregistrée et le partage de cette requête permettent d'obtenir une vue limitée au client sans divulguer la connexion, un principe que Query Streams utilise systématiquement : partager la capacité d'exécuter une requête, mais pas les informations d'identification sous-jacentes.
Pour une requête inter-sources, Nile fonctionne comme une base de données Postgres classique. Une connexion nommée nile_app est enregistrée sous le nom nile_app.public.orders et se connecte à un dossier de fichiers CSV, à un système d'information local ou à une API de facturation en une seule opération en lecture seule, sans aucune copie ni planification.
Documentation du fournisseur : www.thenile.dev
FAQ
Questions sur le Nil
Quels outils peuvent lire les données du Nil via les flux de requêtes ?
Tous ces outils, depuis une seule connexion : Excel, Google Sheets, MCP, API REST, Airtable, Baserow, SeaTable, Smartsheet, Anvil, Power BI, alertes et rapports programmés. Connectez la base de données une seule fois et tous les systèmes accèdent à la même connexion en lecture seule ; aucune configuration n’est requise pour chaque outil et aucune copie supplémentaire des données n’est nécessaire.
Dois-je ouvrir un port de pare-feu pour ma base de données Nile ?
Non. L'agent réseau Query Streams s'exécute au sein de votre réseau et ouvre une seule connexion sortante chiffrée. Aucun trafic entrant n'est intercepté, aucun VPN n'est requis et la base de données conserve ses règles de pare-feu existantes.
Les flux de requêtes peuvent-ils modifier les données du Nil ?
Non. L'agent impose un accès en lecture seule lors de l'exécution : une seule instruction à la fois, uniquement SELECT et les instructions associées. Les informations d'identification restent sur l'agent et ne sont jamais envoyées aux flux de requêtes.
De quoi Query Streams a-t-il besoin pour se connecter à Nile ?
Un hôte accessible, un rôle et son mot de passe : l’agent intègre le pilote, aucune installation n’est donc requise sur la base de données. Hôte : <region>.db.thenile.dev. Port : 5432. Pilote : Npgsql, fourni par l’agent ; aucune installation n’est nécessaire côté Nile. Format à coller : la chaîne de caractères de la section Base de données, Paramètres, Connexion, PostgreSQL, sous forme d’URI postgres://.
Puis-je joindre Nile à une autre base de données dans la même requête ?
Oui, il s'agit bien d'une requête fédérée. Une seule instruction peut référencer Nile et vos autres connexions simultanément, sous la forme `connection.schema.table`. Chaque source exécute uniquement la partie qu'elle peut traiter et renvoie le résultat ; la jointure est centralisée, ce qui évite toute connexion entre les sources et empêche toute copie ou planification. L'accès en lecture seule s'applique à chaque élément (SELECT, WITH et EXPLAIN uniquement), et la quantité de données qu'une source peut transmettre pour une requête donnée est limitée. Les requêtes fédérées sont une fonctionnalité incluse dans votre abonnement ; la page dédiée affiche les limites actuelles de la source et de la taille des données.
La connexion à Nile est-elle différente de la connexion à PostgreSQL ?
Seule la chaîne de connexion est nécessaire. Nile utilise le protocole PostgreSQL ; par conséquent, les filtres, la planification, le partage, les modules complémentaires Excel et Google Sheets ainsi que le serveur MCP fonctionnent de manière identique. La carte Nile pré-remplit les paramètres d'hôte, de port et SSL attendus par le fournisseur.
Existe-t-il un guide Nile to Excel ?
Oui, il s'agit bien du guide PostgreSQL, et il est correct pour Nile tel qu'il est rédigé. Nile utilise le protocole PostgreSQL ; par conséquent, la connexion à Excel, à Google Sheets et à toute autre destination suit les mêmes étapes. Seule la chaîne de connexion est spécifique à Nile, et la carte Nile la renseigne automatiquement.
Placez Nile là où le travail se déroule.
Installez l'agent, configurez-le pour qu'il pointe vers votre base de données et choisissez une destination.
Lecture seule Sortant uniquement Les identifiants restent sur l'agent

