Managed · PG + MySQL speaks PostgreSQL / MySQL
Connect Aiven to Excel, Sheets and AI
Aiven managed PostgreSQL or MySQL on one card. Paste the Service URI — Aiven gives every service its own port, so there is nothing to guess.
One connection, every surface
Where your Aiven data can go
Connect Aiven once and the same read-only connection feeds all of these — no second setup, no second copy of the data. 9 of 11 have a step-by-step guide.
Aiven to Excel
Microsoft Excel · Excel add-in
Pull live Aiven results straight into a worksheet and refresh them on demand — desktop Excel, Excel Online, Microsoft 365.
Read the PostgreSQL guideAiven to Google Sheets
Sheets add-on
Run a saved Aiven query from the sidebar and drop the rows into the sheet. Shared collaborators can refresh it themselves.
Read the PostgreSQL guideAiven MCP server
Claude, Cursor and MCP clients
Give an AI assistant read-only access to Aiven with the schema it needs to write correct SQL — no credentials in the chat.
Read the PostgreSQL guideAiven REST API
HTTP endpoint
Publish a Aiven query as an authenticated JSON endpoint any application can call, with an OpenAPI 3.1 spec and ready-made Postman, Insomnia and Hoppscotch collections. No database port is opened.
Read the PostgreSQL guideAiven to Airtable
Automation platform
Sync Aiven rows into an Airtable base on a schedule, or fetch them inside an Airtable automation script.
Read the PostgreSQL guideAiven to Baserow
Automation platform
Feed a Baserow table from Aiven over the REST endpoint — self-hosted or Baserow cloud.
Read the PostgreSQL guideAiven to SeaTable
Automation platform
Keep a SeaTable base current with Aiven data without exporting a file or exposing the database.
Read the PostgreSQL guideAiven to Smartsheet
Automation platform
Push Aiven results into a Smartsheet grid so plans and reports read from the source system, not last week's export.
Read the PostgreSQL guideAiven to Anvil
Anvil Works · App platform
Back an Anvil Python app with Aiven through the REST endpoint instead of embedding database credentials in the app.
Read the PostgreSQL guideAiven to Power BI
Power Query M
Paste the generated Power Query M into the Power BI Advanced Editor and the report reads live Aiven results over HTTPS — no ODBC driver, no database port opened.
How Power BI works no Aiven walkthrough written yetAiven alerts and reports
Slack · Discord · Email · Webhook
Put a Aiven query on a schedule and have the rows delivered to Slack, Discord, email or a signed webhook — or hold the message until a row count, threshold or percentage change crosses the line you set.
How alerts and reports work no Aiven walkthrough written yetHow it works
5 steps, no inbound firewall change
Install the Network Agent wherever suits you. It opens one outbound connection and never listens, so Aiven sees an ordinary client and your network needs no inbound rule.
Pick the engine — PostgreSQL or MySQL. It decides how everything below is read, so set it before pasting.
Paste the Service URI from the Aiven console. It carries the host, the service's own port, the user and the database, which is why pasting beats typing here.
If you are connecting to a connection pool rather than the service itself, switch the mode to pooled and use the pool's port and name.
Save. Microsoft Excel, Google Sheets, Power BI, MCP and REST all read through that one connection, or join it to your other sources in a single read-only statement.
Feature deep-dive
What Aiven gives you
Every Aiven service gets its own port
Most managed Postgres runs on 5432 and most managed MySQL runs on 3306. Aiven does neither, and it shapes how this card behaves.
- The port is per service — a five-digit number Aiven allocates, not a well-known one. The card ships with the port field empty rather than prefilling a value that would be wrong.
- Because the port carries no engine signal, pasting a bare host and port is not enough to tell PostgreSQL from MySQL. Paste the whole Service URI and the scheme settles it.
- The defaults that can be prefilled are: the database defaultdb and the user avnadmin, which is what a fresh Aiven service starts with.
- A connection pool has its own port too, and its own name — on Aiven the pool name goes in the Database field.
Two engines, and they are not identical underneath
The card looks the same whichever engine you pick, but what the agent does with it differs, and it is worth being precise rather than reassuring.
- On PostgreSQL, TLS is enforced for .aivencloud.com hosts whatever the checkbox says. A string that lost its sslmode in the clipboard still travels encrypted.
- On MySQL the checkbox is real. It is on by default and should stay on — turn it off and the connection is unencrypted, with nothing to override it.
- Either way the traffic is encrypted but the certificate chain is not verified. Aiven's CA download is not wired into this card, and there is no field to upload it.
- Pooling adaptations are PostgreSQL-only. On a Postgres pool the agent turns off prepared statements and skips the session reset, which is what a transaction pooler needs; on MySQL the mode is recorded but changes nothing.
Paste the Service URI, not the pieces
Four fields and a per-service port is more than anyone should retype, so the card is built around the string.
- The postgres:// and mysql:// URI forms both parse, and the scheme is what tells the card which engine you meant.
- Anything with the wrong scheme is rejected rather than half-parsed into the wrong fields.
- A password with leading or trailing whitespace is flagged. It is a clipboard artifact and it fails as an ordinary authentication error, which sends people looking for the wrong problem.
- The pasted URI is never stored. It is read once to fill the form and then dropped, so the password lives in one place rather than two.
-- PostgreSQL on Aiven, read-only
SELECT c.name,
COUNT(o.id) AS orders,
SUM(o.amount) AS revenue
FROM public.customers AS c
JOIN public.orders AS o ON o.customer_id = c.id
WHERE o.placed_at >= now() - interval '30 days'
GROUP BY c.name
ORDER BY revenue DESC;
Shared by every database connector
True of every database connector
- Outbound only — the agent opens one encrypted connection out to Query Streams. No inbound port to forward, no VPN, no IP allowlist, nothing about your database exposed to the internet.
- Credentials stay put — the database username and password live on the machine you installed the agent on. Query Streams never receives them and cannot reach your database on its own.
- Read-only, enforced — one statement at a time, SELECT and friends only. A write is rejected on your own machine before it is ever sent to the server, rather than relying on a permission somebody remembered to set.
- Deploy as many agents as you like — one per site, region or cloud. Every data source they can see arrives in a single dropdown, so nobody has to know which agent hosts what.
What you get once a query is saved
- Share the capability, not the SQL — a colleague or an outside partner can run your query and change its filters without ever seeing the statement behind it.
- Filters from either direction — declare them yourself as @variables, or let the connector spot the literal values already sitting in your WHERE clause and offer those as dropdowns.
- Read it from anywhere — Microsoft Excel, Google Sheets, Power BI, the REST API, AI assistants over MCP, the Query Builder and Nova all read the same saved query.
- Run several at once — five saved queries into five worksheet tabs, streamed concurrently, however large the results.
- Join it to anything else you have connected — another database, a business API, or a folder of files, in one read-only statement.
Cross-source SQL
Join Aiven to the rest of your data
One statement can span Aiven and your other connections at once. Each source runs only the part it can, streams the result back, and the join happens centrally — the sources never talk to each other and nothing is copied anywhere.
3 connections · 3 agents
One statement
-- nothing copied, nothing merged, nothing scheduled
SELECT c.region, COUNT(*) AS orders, SUM(i.amount_due) AS invoiced
FROM aiven_pg.public.orders1 f
JOIN erp_sql.dbo.customers2 c ON c.id = f.customer_id
JOIN billing.stripe.invoices3 i ON i.customer = c.stripe_id
GROUP BY c.region
ORDER BY invoiced DESC;
The three parts are connection, schema and table — and the connection name is whatever you called it. Illustrative columns; your tables will be your tables. Read-only applies to every piece: SELECT, WITH and EXPLAIN only, with a ceiling on how much any one source may hand over for a single query. How federated queries work
Connection details
What Aiven needs
- Host
- <service>-<project>.<region>.aivencloud.com — the same hostname for either engine
- Port
- Assigned per service, so there is no default. A pool has its own port again
- Engines
- PostgreSQL or MySQL. Saved as whichever you pick, with Aiven kept as a badge
- Database
- defaultdb on a fresh service. When connecting to a pool, this is the pool's name
- Username
- avnadmin on a fresh service
- TLS on PostgreSQL
- Forced by the agent for .aivencloud.com hosts whatever the checkbox says. Encrypted; the certificate chain is not verified
- TLS on MySQL
- Controlled by the checkbox, on by default. Leave it on — nothing overrides it if you turn it off
- Pooling
- On a PostgreSQL pool the agent disables prepared statements and skips the session reset. MySQL has no equivalent
- Default schema
- public on PostgreSQL. On MySQL the database is the qualifier
The per-service port is the thing to internalise. Everywhere else in this catalogue a port is a detail you can leave alone, because 5432 and 3306 are near-universal; on Aiven it is a five-digit number that differs between two services in the same project. That has a knock-on effect worth knowing: a port normally hints at the engine, and here it cannot, so pasting a bare host and port leaves the card genuinely unable to tell PostgreSQL from MySQL. Paste the Service URI instead and the scheme answers it.
The engine asymmetry is stated plainly above rather than smoothed over, because smoothing it over would be the kind of half-truth that costs someone an unencrypted connection. On PostgreSQL the agent recognises the Aiven hostname and enforces TLS whatever the checkbox says. On MySQL there is no such recognition — the checkbox is the only thing standing between you and a cleartext connection, so leave it on. Both engines encrypt without verifying the certificate chain.
For a cross-source query the qualifier follows the engine, not the badge. A PostgreSQL connection you called aiven_pg is written aiven_pg.public.orders; a MySQL one is qualified by its database instead. Either joins to a folder of CSVs, an on-premises system of record or a billing API in one read-only statement — with nothing copied and nothing scheduled.
Vendor documentation: aiven.io
FAQ
Questions about Aiven
Which tools can read Aiven data through Query Streams?
All of them, from one connection: Excel, Google Sheets, MCP, REST API, Airtable, Baserow, SeaTable, Smartsheet, Anvil, Power BI, scheduled alerts and reports. Connect the database once and every surface reads the same read-only connection — there is no per-tool setup and no second copy of the data.
Do I have to open a firewall port to my Aiven database?
No. The Query Streams Network Agent runs inside your network and opens a single outbound encrypted connection. Nothing listens for inbound traffic, no VPN is required, and the database keeps its existing firewall rules.
Can Query Streams change data in Aiven?
No. The agent enforces read-only at the point of execution — one statement at a time, SELECT and friends only. Credentials stay on the agent and are never sent to Query Streams.
What does Query Streams need to connect to Aiven?
A reachable host, a role and its password — the agent carries the driver, so nothing is installed on the database. Host: <service>-<project>.<region>.aivencloud.com — the same hostname for either engine. Port: Assigned per service, so there is no default. A pool has its own port again. Engines: PostgreSQL or MySQL. Saved as whichever you pick, with Aiven kept as a badge. Database: defaultdb on a fresh service. When connecting to a pool, this is the pool's name.
Can I join Aiven to another database in the same query?
Yes — that is a federated query. One statement can reference Aiven and your other connections at once, written as connection.schema.table. Each source runs only the part it can and streams the result back; the join happens centrally, so the sources never connect to each other and nothing is copied or scheduled. Read-only applies to every piece — SELECT, WITH and EXPLAIN only — and there is a ceiling on how much any one source may hand over for a single query. Federated queries are a plan feature; the federated queries page carries the current source and size limits.
Is connecting Aiven different from connecting PostgreSQL?
Only the connection string. Aiven speaks the PostgreSQL wire protocol, so filters, scheduling, sharing, the Excel and Google Sheets add-ons and the MCP server all behave identically. The Aiven card pre-fills the host, port and SSL settings that provider expects.
Is there a Aiven to Excel guide?
Yes — it is the PostgreSQL guide, and it is correct for Aiven as written. Aiven speaks the PostgreSQL wire protocol, so Aiven to Excel, Aiven to Google Sheets and every other destination follow the same steps. The only Aiven-specific part is the connection string, and the Aiven card fills that in for you.
Put Aiven where the work happens
Install the agent, point it at your database, and pick a destination.
Read-only Outbound only Credentials stay on the agent

