Skip to content

How MySQL Defines the Raw Data Contract

July 2026

For MySQL, raw data is the rows from the tables Skippr reads now, whether that comes from auto-discovery or a tight tables allowlist.

Short Answer

The raw data contract for MySQL is the row shape from the tables Skippr reads from the configured database. If you omit tables, Skippr can discover all readable tables. If you set an explicit list, the contract narrows to those named objects, and the resulting lineage follows the mysql.{database}.{schema}.{table} namespace.

That choice matters immediately. A connection string pointing at appdb plus auto-discovery says the raw layer is every table the MySQL user can read in that database. A narrower config that reads only sales.orders and sales.customers makes the contract much easier to explain, because the downstream raw layer is tied to a small set of known transactional tables.

Why Teams Struggle with This

MySQL is familiar enough that teams often skip the contract conversation and rely on discovery defaults. That usually creates a raw layer that is broader, noisier, and harder to govern than anyone intended.

  • Auto-discovery is convenient, but it turns every readable table into part of the raw contract unless you narrow it later.
  • The connection string decides which database you are reading, so a copied DSN can quietly point at the wrong source environment.
  • Binlog CDC is valuable later, but the initial raw contract is still defined by table reads, not by replication machinery.
  • A table allowlist is often the clearest way to keep the raw layer aligned with actual business entities.

How Skippr Handles It

Skippr makes the MySQL contract visible because the connector is small: one connection string and an optional tables list. That leaves room for a deliberate source decision instead of letting the connector silently become a whole-database export.

It also gives teams a clean growth path. You can start with a few tables that everyone recognizes, then add binlog CDC later without rewriting the explanation of what those raw tables mean.

  • Uses one MySQL connection string for server and database access.
  • Supports auto-discovery or a named tables allowlist.
  • Preserves raw lineage with the namespace mysql.{database}.{schema}.{table}.
  • Can extend into MySQL binlog CDC after the table contract is already settled.

What the First Useful Version Looks Like

The first useful version is one database and a short table list such as customers, orders, and subscriptions. That usually reveals whether the MySQL schema is organized enough to serve as a clean raw boundary.

If you do keep auto-discovery for an initial test, treat it as a discovery exercise rather than as the final contract. The tables that remain in the long-term raw layer should be chosen, not inherited by accident.