Jordi Santacreu Carranco
03/16/2026, 3:45 PMkapa.ai
03/16/2026, 3:45 PMJordi Santacreu Carranco
03/16/2026, 3:46 PMkapa.ai
03/16/2026, 3:46 PMcreated_on field, here are the approaches supported by Airbyte:
1. Create a MySQL View (Recommended)
Since Airbyte doesn't support custom SQL predicates directly on source tables, the most reliable approach is to create a view in your MySQL database that filters data to only the last year:
CREATE VIEW my_table_last_year AS
SELECT * FROM my_table
WHERE created_on >= DATE_SUB(NOW(), INTERVAL 1 YEAR);
Then configure your Airbyte connection to sync this view instead of the full table. [forum: CDC to Kafka]
2. Use Row Filtering (Mappings)
Airbyte's row filtering feature (via Mappings) allows you to filter rows based on field values. If created_on is a string or number type, you could use this to filter out older records. However, note that filtering is only supported for fields of type string and number, so this depends on how your created_on field is stored. [filter rows docs]
3. Use Incremental Sync with a Start Date
If you're using the Connector Builder or a connector that supports it, you can configure a Start datetime to only pull records from a specific point in time (e.g., one year ago), using created_on as the cursor field. [incremental sync docs]
-------------------------
Bottom line: The most straightforward and reliable option for the standard MySQL connector is to create a filtered view in MySQL and sync that view. This gives you full control over the date range without relying on Airbyte-side filtering. š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Jordi Santacreu Carranco
03/16/2026, 3:47 PMJordi Santacreu Carranco
03/16/2026, 3:48 PMkapa.ai
03/16/2026, 3:48 PMgit clone git@github.com:airbytehq/airbyte.git
cd airbyte
# Create your connector directory
mkdir airbyte-integrations/connectors/source-my-mysql
cd airbyte-integrations/connectors/source-my-mysql
# Initialize the project and add the CDK
poetry init
poetry add airbyte-cdk
[environment setup]
2. Add a metadata.yaml File
Each connector requires a valid metadata.yaml file in its root directory. [environment setup]
3. Implement the Connector Entrypoints
Your connector must support these commands: spec, check, discover, and read. [environment setup]
4. Build and Test the Docker Image
airbyte-ci connectors --name source-my-mysql build
Then load it into your local Airbyte instance:
kind load docker-image airbyte/source-my-mysql:dev -n airbyte-abctl
[connector contributions]
-------------------------
For a full step-by-step walkthrough, I'd recommend following the custom Python connector tutorial in the Airbyte docs, and adapting it for MySQL using the mysql-connector-python or PyMySQL library.
> ā ļø Note: Before building from scratch, consider whether the existing MySQL source connector in Airbyte's catalog already meets your needs, potentially combined with the view-based filtering approach we discussed earlier. š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Jordi Santacreu Carranco
03/16/2026, 3:49 PMkapa.ai
03/16/2026, 3:49 PMCREATE VIEW my_table_last_year AS
SELECT * FROM my_table
WHERE created_on >= DATE_SUB(NOW(), INTERVAL 1 YEAR);
Then in your Airbyte connection, select this view instead of the original table. This is the approach explicitly recommended in the Airbyte community for cases where you want to limit the data replicated. [forum: CDC to Kafka]
Why Other Options Are Limited
⢠The standard MySQL catalog connector does not support configuring a start_datetime or cursor-based filtering at the source level ā that feature is specific to connectors built with the Connector Builder or config-based framework.
⢠Airbyte's row filtering via Mappings may work if created_on is stored as a string or number type, but this filtering happens after data is fetched, not at the query level.
-------------------------
Bottom line: For the catalog MySQL connector, creating a filtered view in MySQL is the cleanest and most supported way to limit data to the last year. š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.kapa.ai
03/16/2026, 3:49 PMCREATE VIEW my_table_last_year AS
SELECT * FROM my_table
WHERE created_on >= DATE_SUB(NOW(), INTERVAL 1 YEAR);
Then in your Airbyte connection, select this view instead of the original table. This is the approach explicitly recommended in the Airbyte community for limiting replicated data. [forum: CDC to Kafka]
Why the Standard MySQL Connector Is Limited
⢠The standard MySQL catalog connector does not support configuring a start_datetime or cursor-based date filtering at the source level ā that feature is only available for connectors built with the Connector Builder or config-based framework. [incremental sync docs]
⢠Airbyte's row filtering via Mappings happens after data is fetched, not at the query level, so it won't reduce the amount of data pulled from MySQL.
The MySQL view approach is your cleanest option with the existing catalog connector. š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.kapa.ai
03/16/2026, 3:50 PMCREATE VIEW my_table_last_year AS
SELECT * FROM my_table
WHERE created_on >= DATE_SUB(NOW(), INTERVAL 1 YEAR);
Then in your Airbyte connection, select this view instead of the original table. This is the approach explicitly recommended in the Airbyte community for limiting replicated data. [forum: CDC to Kafka]
> Note: The start_datetime / cursor-based filtering feature is only available for connectors built with the Connector Builder or config-based framework ā not for the standard MySQL catalog connector. [incremental sync docs]
The MySQL view approach is your best option with the existing catalog connector. š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.