Logo Nil

Postgres multi-tenant berbicara PostgreSQL

Menghubungkan Sungai Nil ke Excel, Google Sheets, AI, dan REST

Nile — Postgres untuk aplikasi B2B multi-tenant. Pelaporan di sini mencakup setiap tenant, yang biasanya memang tujuannya.

Satu koneksi, setiap permukaan

Ke mana data Nile Anda dapat digunakan?

Query Streams membaca data Nile dari Microsoft Excel, Google Sheets, Power BI, asisten AI melalui MCP, dan endpoint REST melalui satu koneksi baca saja. Nile memvirtualisasikan tenant di dalam satu basis data Postgres tunggal daripada memberikan setiap pelanggan basis datanya sendiri, sehingga tabel yang sadar tenant membawa kolom tenant_id dan satu koneksi dapat melihat semuanya. Aplikasi Anda membatasi diri pada satu tenant dalam satu waktu; koneksi pelaporan tidak, dan untuk analisis lintas pelanggan, itulah perilaku yang Anda inginkan.

Nile adalah PostgreSQL yang dikirim melalui jaringan. — driver standar, jadi setiap panduan di bawah ini berlaku tanpa perubahan. Satu-satunya bagian khusus Nile adalah string koneksi, yang dibahas di bawah ini. detail koneksi.

  1. Untuk tim, vendor, dan mitra Anda
  2. Nile to Excel Microsoft Excel · Add-in Excel

    Ambil hasil Nile secara langsung ke dalam lembar kerja dan perbarui sesuai kebutuhan — Excel desktop, Excel Online, Microsoft 365.

    Panduan PostgreSQL
  3. Nile ke Google Sheets Tambahan lembar

    Jalankan kueri Nile yang tersimpan dari bilah sisi dan seret baris ke dalam lembar kerja. Kolaborator yang berbagi dapat memperbaruinya sendiri.

    Panduan PostgreSQL
  4. Tanyakan pada Nova tentang Nile Nova AI · teks ke SQL

    Ajukan pertanyaan dalam bahasa Inggris yang mudah dipahami. Nova sudah mengetahui tabel Nile Anda, menulis dan menjalankan SQL, menjelaskan jawabannya, dan membuat grafiknya — tidak perlu menulis kueri, tidak perlu memberikan kredensial.

    Cara kerja Nova
  5. Nile ke Penampil Data Berbagi hasil · tim, vendor, mitra · telepon, tablet, desktop

    Bagikan hasil Nile secara langsung kepada siapa pun — kolega, vendor, mitra — sebagai tabel yang dapat di-bookmark dan akan berjalan ulang setiap kali dibuka, di ponsel, tablet, atau desktop. Mereka hanya melihat hasilnya, bukan kode SQL atau kredensialnya.

    Cara kerja Penampil Data
  6. Untuk aplikasi dan sistem
  7. API REST Nile Titik akhir HTTP

    Publikasikan kueri Nile sebagai endpoint JSON terautentikasi yang dapat dipanggil oleh aplikasi apa pun, dengan spesifikasi OpenAPI 3.1 dan koleksi siap pakai untuk Postman, Insomnia, dan Hoppscotch. Tidak ada port basis data yang dibuka.

    Panduan PostgreSQL
  8. Nile ke Power BI Power Query M

    Tempelkan Power Query M yang dihasilkan ke dalam Power BI Advanced Editor dan laporan akan membaca hasil Nile secara langsung melalui HTTPS — tanpa driver ODBC, tanpa port basis data yang dibuka.

    Cara kerja Power BI
  9. Nile ke Airtable Platform otomatisasi

    Sinkronkan data Nile ke dalam basis data Airtable sesuai jadwal, atau ambil data tersebut di dalam skrip otomatisasi Airtable.

    Panduan PostgreSQL
  10. Sungai Nil ke Baserow Platform otomatisasi

    Mengisi tabel Baserow dari Nile melalui endpoint REST — baik yang dihosting sendiri atau di cloud Baserow.

    Panduan PostgreSQL
  11. Nile ke SeaTable Platform otomatisasi

    Jaga agar basis data SeaTable selalu mutakhir dengan data Nile tanpa mengekspor file atau mengekspos basis data.

    Panduan PostgreSQL
  12. Nile ke Smartsheet Platform otomatisasi

    Masukkan hasil Nile ke dalam tabel Smartsheet agar rencana dan laporan dibaca dari sistem sumber, bukan dari ekspor minggu lalu.

    Panduan PostgreSQL
  13. Nil ke Anvil Anvil Works · Platform aplikasi

    Dukung aplikasi Python Anvil dengan Nile melalui endpoint REST, alih-alih menyematkan kredensial basis data di dalam aplikasi.

    Panduan PostgreSQL
  14. Untuk alat AI
  15. Server Nile MCP Klien Claude, Cursor, dan MCP

    Berikan akses baca saja kepada asisten AI ke Nile beserta skema yang dibutuhkannya untuk menulis SQL yang benar — tanpa kredensial di dalam obrolan.

    Panduan PostgreSQL
  16. Dikirimkan kepada orang-orang
  17. Peringatan dan laporan dari Sungai Nil Slack · Discord · Email · Webhook

    Atur jadwal untuk menjalankan kueri Nile dan kirimkan baris data ke Slack, Discord, email, atau webhook yang ditandatangani — atau tahan pesan hingga jumlah baris, ambang batas, atau perubahan persentase melampaui batas yang Anda tetapkan.

    Cara kerja peringatan dan laporan

Cara kerjanya

5 langkah, tanpa perubahan firewall masuk.

01

Instal Network Agent pada mesin yang dapat terhubung ke internet. Network Agent membuka satu koneksi keluar dan tidak pernah mendengarkan, sehingga tidak diperlukan aturan firewall masuk.

02

Di konsol Nile, buka basis data, lalu Pengaturan dan Koneksi, dan pilih opsi PostgreSQL.

03

Buat kredensial jika Anda belum memilikinya. Nile hanya menampilkan kata sandi sekali, pada saat itu juga, jadi salinlah sebelum Anda meninggalkan halaman.

04

Tempelkan string koneksi ke kolom pertama. Host, port, basis data, nama pengguna, dan kata sandi akan dibaca dari string tersebut.

05

Biarkan opsi Gunakan SSL tetap aktif, uji, dan simpan. Baca data tersebut dari Microsoft Excel, Google Sheets, Power BI, MCP, atau REST melalui satu koneksi tersebut.

Analisis mendalam fitur

Apa yang diberikan Sungai Nil kepada Anda

Satu basis data, setiap penyewa, satu kueri

Model Nile adalah bagian yang menarik dari konektor ini, dan hal itu mengubah kegunaan sebuah koneksi pelaporan.

  • Nile menyimpan semua penyewa dalam satu basis data Postgres dan memisahkannya dengan kolom tenant_id pada tabel yang mengenali penyewa, alih-alih memberikan setiap pelanggan basis data atau skema terpisah.
  • Aplikasi Anda menetapkan konteks penyewa per koneksi dan karenanya hanya melihat satu pelanggan dalam satu waktu. Koneksi Query Streams tidak menetapkan konteks tersebut, sehingga dapat melihat semua pelanggan sekaligus.
  • Hal itu membuat pelaporan lintas penyewa menjadi lebih sederhana dengan menggunakan klausa GROUP BY, bukan proyek integrasi. Penggunaan per pelanggan, pendapatan berdasarkan paket, atau akun mana yang belum masuk bulan ini, semuanya tergabung dalam satu laporan.
  • Ini juga berarti kontrol akses sepenuhnya berada di bawah kendali Anda. Koneksi di sini tidak dibatasi pada penyewa (tenant), jadi jika Anda memerlukan pelaporan per pelanggan, filter berdasarkan tenant_id dalam kueri yang tersimpan dan bagikan kueri tersebut, bukan koneksinya.
  • Semua yang dijalankan agen bersifat hanya baca, jadi tidak ada yang dapat memodifikasi data penyewa terlepas dari apa pun isi kueri tersebut.
-- Pelaporan lintas penyewa adalah perintah biasa 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;

Kredensial ditampilkan sekali, dan titik akhir regional adalah Postgres biasa.

Dua catatan praktis yang mencakup sebagian besar hal yang terjadi saat menyiapkan ini.

  • Nile menghasilkan ID kredensial sebagai nama pengguna dan menampilkan kata sandinya hanya sekali. Jika Anda kehilangan ID tersebut, buatlah yang baru daripada mencoba memulihkan yang lama.
  • Endpoint bersifat regional dan berakhiran .db.thenile.dev, pada port standar 5432. Tidak ada pooler di jalur ini dan agen tidak menerapkan adaptasi pooler apa pun.
  • TLS diperlukan dan agen menerapkannya untuk nama host Nile, sehingga menghapus centang pada kotak SSL tidak menghasilkan koneksi yang tidak terenkripsi. Rantai sertifikat tidak diverifikasi. — anggaplah itu sebagai perlindungan terhadap siapa pun yang membaca lalu lintas data, bukan sebagai bukti server mana yang merespons.
  • String koneksi yang disalin akan dihapus setelah kolom diisi, sehingga kata sandi disimpan di satu tempat, bukan di dua tempat.

Digunakan bersama oleh setiap konektor basis data.

Hal ini berlaku untuk setiap konektor basis data.

  • Hanya untuk keberangkatan — agen membuka satu koneksi terenkripsi ke Query Streams. Tidak ada port masuk yang perlu diteruskan, tidak ada VPN, tidak ada daftar IP yang diizinkan, tidak ada informasi tentang basis data Anda yang terekspos ke internet.
  • Kredensial tetap tersimpan. — Nama pengguna dan kata sandi basis data tersimpan di mesin tempat Anda menginstal agen. Query Streams tidak pernah menerimanya dan tidak dapat mengakses basis data Anda sendiri.
  • Hanya baca, diberlakukan — satu pernyataan dalam satu waktu, hanya SELECT dan sejenisnya. Permintaan penulisan ditolak di mesin Anda sendiri sebelum dikirim ke server, alih-alih bergantung pada izin yang telah diatur oleh seseorang.
  • Sebarkan agen sebanyak yang Anda inginkan. — satu per situs, wilayah, atau cloud. Setiap sumber data yang dapat mereka lihat muncul dalam satu menu tarik-turun, sehingga tidak ada yang perlu tahu agen mana yang menghosting apa.

Yang Anda dapatkan setelah kueri disimpan

  • Bagikan kemampuannya, bukan kode SQL-nya. — seorang kolega atau mitra eksternal dapat menjalankan kueri Anda dan mengubah filternya tanpa pernah melihat pernyataan di baliknya.
  • Filter dari kedua arah — deklarasikan sendiri sebagai @variabel, atau biarkan konektor menemukan nilai literal yang sudah ada di klausa WHERE Anda dan menawarkannya sebagai menu tarik-turun.
  • Bacalah dari mana saja — Microsoft Excel, Google Sheets, Power BI, REST API, asisten AI melalui MCP, Query Builder, dan Nova semuanya membaca kueri tersimpan yang sama.
  • Jalankan beberapa sekaligus — lima kueri tersimpan ke dalam lima tab lembar kerja, dialirkan secara bersamaan, sebesar apa pun hasilnya.
  • Hubungkan dengan hal lain yang sudah Anda hubungkan. — basis data lain, API bisnis, atau folder file, dalam satu pernyataan baca saja.

SQL lintas sumber

Hubungkan Nile dengan data Anda yang lain.

Satu pernyataan dapat mencakup Nile dan koneksi Anda lainnya sekaligus. Setiap sumber hanya menjalankan bagian yang mampu dijalankannya, mengirimkan hasilnya kembali, dan penggabungan terjadi secara terpusat — sumber-sumber tersebut tidak pernah berkomunikasi satu sama lain dan tidak ada yang disalin ke mana pun.

3 koneksi · 3 agen

Sungai Nil Postgres multi-tenant
Microsoft SQL Server Mesin relasional
Stripe Pembayaran & penagihan

Satu pernyataan

-- tidak ada yang disalin, tidak ada yang digabungkan, tidak ada yang dijadwalkan
PILIH   c.region, COUNT(*) AS orders, SUM(i.amount_due) AS invoiced
DARI     aplikasi nileketertiban umum1  f
GABUNG     erp_sql.dbo.pelanggan2   c ON c.id = f.customer_id
GABUNG     penagihan.stripe.faktur3 i ON i.customer = c.stripe_id
KELOMPOKKAN BERDASARKAN c.wilayah
PESAN OLEH ditagih DESC;

Tiga bagian tersebut adalah koneksi, skema, dan tabel — dan nama koneksi adalah apa pun yang Anda sebutkan. Kolom ilustratif; tabel Anda akan menjadi tabel Anda. Hanya baca berlaku untuk setiap bagian: SELECT, WITH, dan EXPLAIN saja, dengan batasan seberapa banyak data yang dapat diberikan oleh satu sumber untuk satu kueri. Cara kerja kueri terfederasi

Detail koneksi

Apa yang dibutuhkan Nile

Tuan rumah
<wilayah>.db.thenile.dev
Pelabuhan
5432
Pengemudi
Npgsql, dibawa oleh agen — tidak perlu diinstal di sisi Nile.
Format tempel
String dari Database, Settings, Connection, PostgreSQL — sebagai URI postgres://
Nama pengguna
ID kredensial yang dihasilkan dari konsol, bukan alamat email.
TLS
Diperlukan dan diberlakukan untuk nama host Nile. Terenkripsi; rantai sertifikat tidak diverifikasi.
Pengumpulan
Tidak ada. Agen tidak menerapkan adaptasi pooler apa pun untuk Nile.
Lingkup penyewa
Tidak ada konteks penyewa yang ditetapkan, sehingga koneksi melihat setiap penyewa. Filter berdasarkan tenant_id dalam kueri jika Anda membutuhkannya.
Disimpan sebagai
PostgreSQL, dengan Nile tetap sebagai lencana.
Skema default
publik, yang merupakan makna dari referensi terfederasi.

Nile layak dipahami sebagai target pelaporan khususnya karena apa yang tidak dilakukannya di sini. Isolasi penyewa yang membuatnya berguna untuk dikembangkan diterapkan per koneksi, oleh aplikasi, ketika menetapkan konteks penyewa. Koneksi pelaporan yang tidak pernah menetapkan konteks penyewa bukanlah melewati kontrol — koneksi tersebut menggunakan basis data sesuai dengan tujuan model untuk operator yang perlu melihat keseluruhan sistem.

Konsekuensi praktisnya adalah keputusan penentuan cakupan bergeser ke kueri, bukan ke koneksi. Menambahkan filter tenant_id ke kueri yang tersimpan dan membagikan kueri tersebut memberikan tampilan yang dicakup oleh pelanggan tanpa memberikan koneksi kepada siapa pun, yang merupakan pola yang sama yang digunakan Query Streams di tempat lain: berbagi kemampuan untuk menjalankan sesuatu, bukan kredensial di baliknya.

Untuk kueri lintas sumber, Nile adalah Postgres biasa. Koneksi yang Anda beri nama nile_app ditulis sebagai nile_app.public.orders, dan terhubung ke folder CSV, sistem pencatatan lokal, atau API penagihan dalam satu pernyataan baca saja — tanpa ada yang disalin dan tanpa ada yang dijadwalkan.

Dokumentasi vendor: www.thenile.dev

Pertanyaan yang Sering Diajukan (FAQ)

Pertanyaan tentang Sungai Nil

Alat apa saja yang dapat membaca data Nile melalui Query Streams?

Semuanya, dari satu koneksi: Excel, Google Sheets, MCP, REST API, Airtable, Baserow, SeaTable, Smartsheet, Anvil, Power BI, peringatan dan laporan terjadwal. Hubungkan basis data sekali dan setiap antarmuka akan membaca koneksi baca-saja yang sama — tidak ada pengaturan per alat dan tidak ada salinan data kedua.

Apakah saya perlu membuka port firewall ke database Nile saya?

Tidak. Query Streams Network Agent berjalan di dalam jaringan Anda dan membuka satu koneksi keluar terenkripsi. Tidak ada yang mendengarkan lalu lintas masuk, tidak diperlukan VPN, dan basis data mempertahankan aturan firewall yang ada.

Bisakah Query Streams mengubah data di Nile?

Tidak. Agen tersebut memberlakukan mode baca saja pada saat eksekusi — satu pernyataan dalam satu waktu, hanya SELECT dan sejenisnya. Kredensial tetap berada di agen dan tidak pernah dikirim ke Query Streams.

Apa yang dibutuhkan Query Streams untuk terhubung ke Nile?

Host yang dapat dijangkau, peran dan kata sandinya — agen membawa driver, jadi tidak ada yang diinstal pada basis data. Host: <region>.db.thenile.dev. Port: 5432. Driver: Npgsql, dibawa oleh agen — tidak ada yang perlu diinstal di sisi Nile. Format tempel: String dari Database, Settings, Connection, PostgreSQL — sebagai URI postgres://.

Bisakah saya menggabungkan Nile dengan basis data lain dalam kueri yang sama?

Ya — itu adalah kueri terfederasi. Satu pernyataan dapat merujuk ke Nile dan koneksi Anda lainnya sekaligus, ditulis sebagai connection.schema.table. Setiap sumber hanya menjalankan bagian yang dapat dijalankannya dan mengalirkan hasilnya kembali; penggabungan terjadi secara terpusat, sehingga sumber-sumber tersebut tidak pernah terhubung satu sama lain dan tidak ada yang disalin atau dijadwalkan. Hanya baca berlaku untuk setiap bagian — hanya SELECT, WITH, dan EXPLAIN — dan ada batasan seberapa banyak data yang dapat diserahkan oleh satu sumber untuk satu kueri. Kueri terfederasi adalah fitur rencana; halaman kueri terfederasi memuat batasan sumber dan ukuran saat ini.

Apakah menghubungkan Nile berbeda dengan menghubungkan PostgreSQL?

Hanya string koneksi saja. Nile menggunakan protokol wire PostgreSQL, sehingga filter, penjadwalan, berbagi, add-on Excel dan Google Sheets, serta server MCP semuanya berfungsi identik. Kartu Nile secara otomatis mengisi host, port, dan pengaturan SSL yang diharapkan oleh penyedia layanan.

Apakah ada panduan Nile to Excel?

Ya — ini adalah panduan PostgreSQL, dan panduan ini benar untuk Nile seperti yang tertulis. Nile menggunakan protokol komunikasi PostgreSQL, jadi Nile ke Excel, Nile ke Google Sheets, dan semua tujuan lainnya mengikuti langkah-langkah yang sama. Satu-satunya bagian khusus Nile adalah string koneksi, dan kartu Nile akan mengisinya untuk Anda.

Tempatkan Nile di tempat pekerjaan berlangsung.

Instal agen, arahkan ke basis data Anda, dan pilih tujuan.

Hanya baca Hanya untuk keberangkatan Informasi kredensial tetap tersimpan pada agen.