ナイルのロゴ

マルチテナントPostgres PostgreSQLについて話す

接続する ナイル川 Excel、Google Sheets、AI、RESTへ

Nile ― マルチテナント型B2Bアプリケーション向けのPostgres。レポート機能はすべてのテナントを横断的に監視できるため、通常はそれが重要なポイントとなります。

一つの接続、あらゆる表面

ナイル川のデータはどこに保存されるのか?

Query Streams は、Microsoft Excel、Google Sheets、Power BI、MCP 経由の AI アシスタント、および REST エンドポイントから、読み取り専用接続を介して Nile のデータを読み取ります。Nile は、各顧客に独自のテナントを割り当てるのではなく、単一の Postgres データベース内でテナントを仮想化するため、テナント対応テーブルには tenant_id 列があり、1 つの接続ですべてのテナントを参照できます。アプリケーションは一度に 1 つのテナントにスコープされますが、レポート接続はスコープされません。顧客横断的な分析には、まさにこの動作が適しています。

Nileはネットワーク上のPostgreSQLです — 標準ドライバーなので、以下のガイドはすべて変更なく適用されます。Nile固有の部分は接続文字列のみで、以下で説明します。 接続の詳細.

  1. チーム、ベンダー、パートナーの皆様へ
  2. ナイル川を卓越へ Microsoft Excel · Excelアドイン

    Nileのリアルタイム結果をワークシートに直接取り込み、必要に応じて更新できます。対応プラットフォームは、デスクトップ版Excel、Excel Online、Microsoft 365です。

    PostgreSQLガイド
  3. ナイルからGoogleスプレッドシートへ Sheetsアドオン

    サイドバーから保存済みのNileクエリを実行し、結果をシートにドラッグ&ドロップします。共有されている共同作業者は、各自でシートを更新できます。

    PostgreSQLガイド
  4. ノヴァにナイル川について聞いてみよう Nova AI · テキストからSQLへ

    平易な英語で質問してください。Novaは既にNileのテーブルを把握しており、SQL文を作成して実行し、回答を説明してグラフ化します。クエリを作成する必要も、認証情報を提供する必要もありません。

    Novaの仕組み
  5. ナイル川からデータビューアへ 結果共有 · チーム、ベンダー、パートナー · 電話、タブレット、デスクトップ

    Nileのリアルタイム結果を、同僚、ベンダー、パートナーなど、誰とでも共有できます。共有されるのはブックマーク可能なグリッド形式で、スマートフォン、タブレット、デスクトップなど、どのデバイスで開いても常に最新の状態が表示されます。相手には結果のみが表示され、SQLや認証情報は一切表示されません。

    データビューアの仕組み
  6. アプリとシステム向け
  7. ナイルREST API HTTPエンドポイント

    Nileクエリを認証済みのJSONエンドポイントとして公開し、あらゆるアプリケーションから呼び出し可能です。OpenAPI 3.1仕様に準拠し、Postman、Insomnia、Hoppscotch用のコレクションも用意されています。データベースポートは開放されません。

    PostgreSQLガイド
  8. NileからPower BIへ Power Query M

    生成された Power Query M を Power BI アドバンスト エディターに貼り付けると、レポートは HTTPS 経由で Nile のリアルタイムの結果を読み取ります。ODBC ドライバーもデータベース ポートも開く必要はありません。

    Power BI の仕組み
  9. ナイル川からエアテーブルへ 自動化プラットフォーム

    Nileの行をスケジュールに基づいてAirtableベースに同期したり、Airtableの自動化スクリプト内で取得したりできます。

    PostgreSQLガイド
  10. ナイル川からバセロウへ 自動化プラットフォーム

    RESTエンドポイント経由でNileからBaserowテーブルにデータを供給します(セルフホスト環境またはBaserowクラウド環境)。

    PostgreSQLガイド
  11. ナイル川から海面まで 自動化プラットフォーム

    ファイルをエクスポートしたりデータベースを公開したりすることなく、SeaTableのベースをナイル川のデータで常に最新の状態に保つ。

    PostgreSQLガイド
  12. ナイルからスマートシートへ 自動化プラットフォーム

    Nileの結果をSmartsheetのグリッドに反映させることで、計画やレポートが先週のエクスポートデータではなく、ソースシステムから読み込まれるようにします。

    PostgreSQLガイド
  13. ナイル川からアンビルへ Anvil Works · アプリプラットフォーム

    Anvil PythonアプリをNileでバックアップするには、アプリ内にデータベース認証情報を埋め込むのではなく、RESTエンドポイントを使用します。

    PostgreSQLガイド
  14. AIツール向け
  15. ナイルMCPサーバー Claude、Cursor、およびMCPクライアント

    AIアシスタントに、正しいSQLを作成するために必要なスキーマを含むNileへの読み取り専用アクセス権を付与します。チャットに認証情報は含めません。

    PostgreSQLガイド
  16. 人々に届けられる
  17. ナイル川に関する警報と報告 Slack · Discord · メール · Webhook

    Nileクエリをスケジュール設定して、結果をSlack、Discord、メール、または署名付きWebhookに送信するか、行数、しきい値、または変化率が設定した値を超えるまでメッセージを保留することができます。

    アラートとレポートの仕組み

仕組み

5つのステップ、受信ファイアウォールの変更は不要

01

インターネットに接続できるマシンにネットワークエージェントをインストールしてください。ネットワークエージェントは送信接続を1つだけ開き、受信接続を待機することはないため、受信ファイアウォールルールは不要です。

02

Nileコンソールでデータベースを開き、「設定」と「接続」を選択して、PostgreSQLオプションを選択します。

03

認証情報をお持ちでない場合は、生成してください。Nileはパスワードをその場で一度だけ表示しますので、ページを離れる前にコピーしておいてください。

04

接続文字列を最初のフィールドに貼り付けてください。ホスト、ポート、データベース、ユーザー名、パスワードがそこから読み込まれます。

05

SSLの使用を有効にしたまま、テストして保存してください。Microsoft Excel、Google Sheets、Power BI、MCP、またはRESTから、その単一の接続を介してデータを読み込むことができます。

機能の詳細解説

ナイル川があなたに与えるもの

データベース1つ、テナントごとにクエリ1つ

Nileのモデルはこのコネクタの興味深い部分であり、レポート接続の用途を根本的に変えるものです。

  • Nileは、すべてのテナントを1つのPostgresデータベースに保持し、テナント対応テーブル上のtenant_id列でテナントを分離することで、顧客ごとに個別のデータベースやスキーマを提供するのではなく、テナント管理機能を実現しています。
  • アプリケーションは接続ごとにテナントコンテキストを設定するため、一度に1つの顧客しか認識できません。一方、クエリストリーム接続ではそのコンテキストが設定されないため、すべての顧客をまとめて認識できます。
  • これにより、テナントをまたいだレポート作成は、統合プロジェクトではなく、単純なGROUP BY句で済むようになります。顧客ごとの利用状況、プラン別の収益、今月ログインしていないアカウントなど、すべてが1つのステートメントで表示されます。
  • つまり、アクセス制御は自由に設計できるということです。ここでの接続はテナントに紐づいていないため、顧客ごとのレポートが必要な場合は、保存済みクエリでtenant_idをフィルタリングし、接続ではなくそのクエリを共有してください。
  • エージェントが実行する処理はすべて読み取り専用なので、クエリの内容に関わらず、テナントデータを変更することはできません。
-- テナント間レポートは、通常の GROUP BY 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; です。

認証情報は一度だけ表示され、リージョンエンドポイントは通常のPostgresです

この設定を行う際に発生するほとんどの事柄を網羅した、2つの実用的な注意事項です。

  • Nileは認証IDをユーザー名として生成し、パスワードを一度だけ表示します。もしパスワードを紛失した場合は、古いパスワードを復元しようとするのではなく、新しいパスワードを生成してください。
  • エンドポイントはリージョンごとに設定され、.db.thenile.dev で終わり、標準ポートは 5432 です。このパスにはプーラーは存在せず、エージェントはプーラーの適応処理を適用しません。
  • TLSは必須であり、エージェントはNileホスト名に対してTLSを強制するため、SSLチェックボックスをオフにしても暗号化されていない接続は生成されません。証明書チェーンは検証されません。 これは、通信内容を読み取られることを防ぐための保護策であり、どのサーバーが応答したかの証明ではないと解釈してください。
  • 貼り付けられた接続文字列は、入力欄がすべて入力されると破棄されるため、パスワードは2か所ではなく1か所に保存されます。

すべてのデータベースコネクタで共有されます

すべてのデータベースコネクタに当てはまる

  • 発信専用 エージェントは、クエリ ストリームへの暗号化された接続を 1 つだけ開きます。受信ポートの転送も、VPN も、IP 許可リストも不要で、データベースに関する情報がインターネットに公開されることは一切ありません。
  • 認証情報はそのまま保持されます データベースのユーザー名とパスワードは、エージェントをインストールしたマシン上に存在します。Query Streamsはこれらを受け取ることはなく、単独ではデータベースにアクセスできません。
  • 読み取り専用、強制 一度に1つのステートメントのみ、SELECT文とその関連文のみ。書き込みは、誰かが設定した権限に頼るのではなく、サーバーに送信される前に自分のマシン上で拒否されます。
  • エージェントは好きなだけデプロイできます サイト、リージョン、クラウドごとに1つずつ。ユーザーが確認できるすべてのデータソースは単一のドロップダウンリストに表示されるため、どのエージェントがどのデータをホストしているかを誰も知る必要はありません。

クエリが保存されると、次のようになります。

  • SQLではなく、機能を共有する。 同僚や外部パートナーが、クエリの背後にあるステートメントを見ることなく、クエリを実行してフィルターを変更できてしまう。
  • どちらの方向からでもフィルターをかける それらを@変数として自分で宣言するか、コネクタにWHERE句に既に存在するリテラル値を検出させて、ドロップダウンとして提供させます。
  • どこからでも読める Microsoft Excel、Google Sheets、Power BI、REST API、MCP上のAIアシスタント、クエリビルダー、Novaはすべて、同じ保存済みクエリを読み取ります。
  • 複数同時に実行 — 5つの保存済みクエリを5つのワークシートタブに表示し、結果の規模に関わらず同時にストリーミングします。
  • すでに接続済みの他のものにも接続してください — 別のデータベース、ビジネスAPI、またはファイルフォルダを、1つの読み取り専用ステートメントで取得します。

クロスソースSQL

Nileを他のデータと連携させる

1つのステートメントで、Nileと他の接続を同時に処理できます。各ソースは実行可能な部分のみを実行し、結果をストリームで返送します。結合は中央で行われるため、ソース同士が直接通信したり、データがどこかにコピーされたりすることはありません。

接続数3件・エージェント数3名

ナイル川 マルチテナントPostgres
マイクロソフトSQLサーバー 関係エンジン
ストライプ 支払いと請求

一つの声明

-- コピーなし、マージなし、スケジュールなし
セレクト   c.region、COUNT(*) AS orders、SUM(i.amount_due) AS invoiced
フロム     ナイルアプリ公共命令1  f
ジョイン     erp_sql.dbo.顧客2   c ON c.id = f.customer_id
ジョイン     請求する.stripe.invoices3 i ON i.customer = c.stripe_id
GROUP BY c.領域
ORDER BY 請求書記載のDESC;

接続、スキーマ、テーブルの3つの部分から構成され、接続名はユーザーが自由に設定できます。これは例示用の列であり、テーブルはユーザー自身が設定します。読み取り専用はすべての要素に適用され、SELECT、WITH、EXPLAINのみが使用可能で、1つのクエリで1つのソースが渡せるデータ量には上限があります。 フェデレーションクエリの仕組み

接続の詳細

ナイル川に必要なもの

ホスト
<region>.db.thenile.dev
ポート
5432
ドライバ
エージェントによって提供されるNpgsql - Nile側でインストールする必要はありません
貼り付け形式
データベース、設定、接続、PostgreSQL からの文字列 - postgres:// URI として
ユーザー名
コンソールから生成された認証情報IDであり、メールアドレスではありません。
TLS
Nileホスト名には必須であり、強制適用されます。暗号化されていますが、証明書チェーンは検証されていません。
プーリング
なし。エージェントはナイル川に対してプーラー適応を適用しません。
テナントの範囲
テナントコンテキストが設定されていないため、接続はすべてのテナントを認識します。必要な場合は、クエリで tenant_id をフィルタリングしてください。
保存先
PostgreSQL、Nileはバッジとして保持されている
デフォルトスキーマ
連邦参照が持つパブリックなもの

Nileがレポート作成対象として特に注目すべき点は、Nileがここでは何をしていないかという点にあります。Nileの基盤となるテナント分離は、アプリケーションがテナントコンテキストを設定する際に、接続ごとに適用されます。テナントコンテキストを設定しないレポート接続は、制御を回避しているわけではなく、データベース全体を監視する必要があるオペレーター向けにモデルが意図したとおりにデータベースを使用しているのです。

実際には、スコープの決定は接続ではなくクエリに移ります。保存済みのクエリにtenant_idフィルタを追加してそのクエリを共有することで、誰にも接続情報を与えることなく顧客スコープのビューが得られます。これは、Query Streamsが他のあらゆる場所で使用しているパターンと同じです。つまり、何かを実行する権限は共有しますが、その背後にある認証情報は共有しません。

クロスソースクエリの場合、Nileは通常のPostgresとして動作します。nile_appという接続はnile_app.public.ordersとして書き込まれ、CSVファイルのフォルダ、オンプレミスの記録システム、または課金APIに、コピーやスケジュール処理なしで、読み取り専用のステートメント1つで接続します。

ベンダー資料: www.thenile.dev

よくある質問

ナイル川に関する質問

クエリ ストリームを通じて Nile のデータを読み取ることができるツールはどれですか?

Excel、Google Sheets、MCP、REST API、Airtable、Baserow、SeaTable、Smartsheet、Anvil、Power BI、スケジュールされたアラートやレポートなど、すべてを1つの接続で利用できます。データベースに一度接続すれば、すべてのインターフェースが同じ読み取り専用接続を読み取ることができます。ツールごとの設定やデータの複製は一切不要です。

Nileデータベースへのファイアウォールポートを開放する必要がありますか?

いいえ。Query Streams Network Agentはネットワーク内で動作し、暗号化された単一の送信接続を開きます。受信トラフィックを監視するものはなく、VPNも不要で、データベースは既存のファイアウォールルールを維持します。

クエリ ストリームは Nile のデータを変更することができますか?

いいえ。エージェントは実行時に読み取り専用を強制します。つまり、一度に1つのステートメント(SELECT文など)のみを実行します。認証情報はエージェント上に保持され、クエリ ストリームに送信されることはありません。

Query StreamsがNileに接続するために必要なものは何ですか?

到達可能なホスト、ロール、およびそのパスワード - エージェントがドライバを運ぶため、データベースには何もインストールされません。ホスト: <region>.db.thenile.dev。ポート: 5432。ドライバ: Npgsql、エージェントによって運ばれます - Nile 側には何もインストールする必要はありません。貼り付け形式: データベース、設定、接続、PostgreSQL からの文字列 - postgres:// URI として。

同じクエリ内でNileデータベースを別のデータベースに結合することはできますか?

はい、それはフェデレーションクエリです。1つのステートメントでNileと他の接続を同時に参照でき、connection.schema.tableの形式で記述されます。各ソースは実行可能な部分のみを実行し、結果をストリームで返します。結合は中央で行われるため、ソース同士が接続されることはなく、何もコピーまたはスケジュールされません。読み取り専用はすべての部分(SELECT、WITH、EXPLAINのみ)に適用され、1つのソースが単一のクエリで渡せるデータ量には上限があります。フェデレーションクエリはプラン機能であり、フェデレーションクエリページには現在のソースとサイズの制限が表示されます。

Nileへの接続はPostgreSQLへの接続と異なりますか?

接続文字列のみが必要です。NileはPostgreSQLワイヤプロトコルを使用するため、フィルタ、スケジュール設定、共有、ExcelおよびGoogle Sheetsアドオン、MCPサーバーはすべて同じように動作します。Nileカードには、プロバイダが想定するホスト、ポート、SSL設定があらかじめ入力されています。

ナイル川流域からエクセル川流域へのガイドはありますか?

はい、これはPostgreSQLのガイドであり、記載されているとおりNileにも適用できます。NileはPostgreSQLのワイヤプロトコルを使用するため、NileからExcel、NileからGoogleスプレッドシート、その他のすべての宛先への接続手順は同じです。Nile固有の部分は接続文字列のみですが、Nileカードが自動的に入力してくれます。

ナイル川を仕事が行われる場所に置く

エージェントをインストールし、データベースを指定して、保存先を選択してください。

読み取り専用 発信専用 認証情報はエージェントに保持されます