
The Copy You Forgot You Made
To get your data into most analytics tools, you start by making a copy. You set up a connector, a sync, a pipeline — and from then on, your data flows out of your database and into the tool's storage, where the charts are actually built. It feels like plumbing. Boring, necessary, invisible. You set it up once and stop thinking about it.
That copy is the most overlooked liability in your stack.
Your security team spent real effort locking down your production database — encryption, access controls, network rules, audit logs, the works. Then you quietly stood up a second copy of that same data, sensitive columns and all, inside a vendor's cloud — and it almost certainly got a fraction of the scrutiny. The riskiest copy of your data is not sitting in the database you hardened. It is sitting in the analytics tool you forgot you were feeding.
We have come to treat "ship the data to the tool" as just how analytics works. It is not a law of nature. It is a design choice — and once you see what that copy actually costs you, it is a strange one to keep making. Your analytics tool shouldn't keep a copy of your data.
Why Everyone Copies
It is worth being fair about how this became the default, because the reasons were real.
Traditional BI is built around moving data. A pipeline extracts records from your source systems and loads them into a separate analytical store — a warehouse, or the tool's own cache, cube, or in-memory engine. The dashboards then query that, not your live database. There were good reasons to do it this way. Running heavy analytical queries straight against a production database could slow down the app your customers were using. Older databases genuinely were not built to serve that kind of workload. And the tool usually wanted the data arranged in its own format to be fast.
So copying made sense — partly. But notice the other reason it stuck around, the one nobody puts in the sales deck: once your data lives inside a vendor's walls, you are much harder to leave. The copy is not only a performance decision. It is a retention strategy.
Either way, the mental model most teams carry is comforting and wrong. It is just a sync. It is behind a login. It is fine. A copy of your most sensitive data, living somewhere you do not fully control, is a lot of things. "Fine" is doing heavy lifting it cannot support.
A Second Copy Is a Second Attack Surface
Start with the security math, because it is the most direct. Every copy of your data is another place it can leak — and the copy is usually the weaker target.
It is a softer door. You hardened the source. The analytics copy tends to get less attention: looser network exposure, fewer audit controls, a smaller place in everyone's threat model right up until it is the thing that breaches. Attackers do not go at your strongest wall. They go at the copy behind the weaker one.
It has its own access list — and the list drifts. Who can see the warehouse extract is a separate question from who can see production, often owned by a different team and audited, if at all, separately. Permissions that are tight at the source get re-implemented loosely at the copy. The analyst who left last quarter may still have access to the export. And the row-level security you carefully enforce in your app frequently evaporates the moment the data lands in one flat analytical table, where every row sits next to every other.
It goes stale. A copy is a snapshot, or a sync with lag — and syncs break quietly. Half the "why doesn't the dashboard match the app?" fire drills in a company trace back to a copy that drifted from its source. You are not just risking the data. You are making decisions on a version of it that is hours or days behind reality.
None of this is the price of analyzing your data. It is the price of copying it first.
The Copy You Have to Govern Forever
The security costs are immediate. The governance costs are the ones that compound.
Every place a regulated dataset lives is a place you now have to account for. Under GDPR, CCPA, HIPAA, SOC 2 — pick your acronym — you are responsible for knowing where personal data sits, documenting it, controlling it, and being able to delete it on request. A copy in a vendor's cloud means your data has crossed a boundary: a new subprocessor to disclose, a new data-processing agreement, possibly a new jurisdiction, and one more line you have to defend in every audit.
Deletion is where it really bites. "Right to be forgotten" does not mean forgotten in your primary database. It means forgotten everywhere — including the analytics copy that, by definition, is the one everyone forgets. If you cannot confidently say you have purged a user from every downstream copy, you do not actually comply. You just hope.
And then there is the quiet one: leverage. Once your data and the modeling you have built on top of it live in someone else's store, switching tools stops being a decision and becomes a migration project. The copy you made for convenience turns into the reason you cannot leave. The cheapest data to govern, audit, and delete is the data you never copied in the first place — because there is nothing extra to find, document, or forget.
There's Another Way: Don't Move the Data
Here is the part that surprises people: copying was never required. It was just the easy path for the tools that existed.
There is a different model. Instead of extracting your data into its own store, the tool connects to your database and runs the query there — against the live source — and returns only the result. The rows never move. No second store, no nightly sync, no extract sitting in a vendor's cloud. What the tool needs in order to do this is not your data; it is a map of your schema — the shape of your tables and columns — so it can write a correct query. The structure, not the contents.
I will be honest about the trade-offs, because there are some. Querying live means you point the tool at a database that can handle the load — often a read replica, so heavy analytical questions never touch the instance serving your app. This is a real engineering posture, not a magic wand. But the governance math is not close. One copy instead of two. One access list to keep honest. One place to secure, one place to audit, one place to delete from. And numbers that are never stale, because they come straight from the source every time you ask.
The safest copy of your data is the one that does not exist. You cannot breach it, mis-permission it, leak it, or forget to delete it — because it was never made.
Your Data, Where It Lives
This is the bet VizKraft is built on.
When you ask a question, the query runs against your database in real time and the result streams back to your browser. Your rows stay in your database — we do not pull them, copy them, or persist them somewhere else. What we index is the structure of your schema, the table-and-column map needed to turn a plain-English question into correct SQL. Not your customer records. Not your PII. Not your financials. The contents of your database stay in your database; only the shape is known to us.
It is worth saying that precisely, because "we store none of your data" is exactly the kind of tidy claim a security team should distrust — and rightly poke at. So here is the exact line: the data stays where it lives; the schema is what gets mapped. And because there is no copy, there is nothing to keep in sync — add a million rows and there is no re-sync, no drift, no snapshot quietly going stale, because there was never a second copy to maintain.
No extract to harden. No second access list to audit. No vendor cloud to name in your compliance docs. No forgotten copy to purge when someone asks to be deleted.
Because the best thing an analytics tool can do with your data is the thing almost none of them do: leave it exactly where you put it.