MySQL is an open-source relational database management system.
This guide serves as a reference for version 1 of Stitch’s MySQL destination.
Details and features
Stitch features
High-level details about Stitch’s implementation of MySQL, such as supported connection methods, availability on Stitch plans, etc.
Release status |
Released |
Stitch plan availability |
All Stitch plans |
Stitch supported regions |
Operating regions determine the location of the resources Stitch uses to process your data. Learn more. |
Supported versions |
5.7.8 and later |
Connect API availability |
Supported
This version of the MySQL destination can be created and managed using Stitch’s Connect API. Learn more. |
SSH connections |
Supported
Stitch supports using SSH tunnels to connect to MySQL destinations. |
SSL connections |
Supported
Stitch will attempt to use SSL to connect by default. No additional configuration is needed. |
VPN connections |
Unsupported
Virtual Private Network (VPN) connections may be implemented as part of a Premium plan. Contact Stitch Sales for more info. |
Static IP addresses |
Supported
This version of the MySQL destination has static IP addresses that can be whitelisted. |
Default loading behavior |
Upsert |
Nested structure support |
Supported
|
Destination details
Details about the destination, including object names, table and column limits, reserved keywords, etc.
Note: Exceeding the limits noted below will result in loading errors or rejected data.
Maximum record size |
20MB |
Table name length |
60 characters |
Column name length |
64 characters |
Maximum columns per table |
1017 |
Maximum table size |
Depends on the InnoDB page size |
Maximum tables per database |
None |
Case sensitivity |
Insensitive |
Reserved keywords |
Refer to the Reserved keywords documentation. |
Replication
Replication process overview
A Stitch replication job consists of three stages:
Step 1: Data extraction
Stitch requests and extracts data from a data source. Refer to the System overview guide for a more detailed explanation of the Extraction phase.
Step 2: Preparation
During this phase, the extracted data is buffered in Stitch’s durable, highly available internal data pipeline and readied for loading. Refer to the System overview guide for a more detailed explanation of the Preparation phase.
Step 3: Loading
Stitch loads the data into MySQL.
Note: With this destination, a new database is created for each integration. The name of the databases created are based on the integration names. To avoid any issues, make sure that you don’t create any databases with a name that matches an existing integration.
Loading behavior
By default, Stitch will use Upsert loading when loading data into MySQL.
If the conditions for Upsert loading aren’t met, data will be loaded using Append-Only loading.
Refer to the Understanding loading behavior guide for more info and examples.
Primary Keys
Primary Keys in MySQL v1 destinations cannot exceed 768 characters in string fields.
Incompatible sources
No compatibility issues have been discovered between MySQL and Stitch's integration offerings.
See all destination and integration incompatibilities.
Transformations
System tables and columns
Stitch will create the following tables in each integration’s dataset:
Additionally, Stitch will insert system columns (prepended with _sdc
) into each table.
Data typing
Stitch converts data types only where needed to ensure the data is accepted by MySQL. In the table below are the data types Stitch supports for MySQL destinations, and the Stitch types they map to.
- Stitch type: The Stitch data type the source type was mapped to. During the Extraction and Preparing phases, Stitch identifies the data type in the source and then maps it to a common Stitch data type.
- Destination type: The destination-compatible data type the Stitch type maps to. This is the data type Stitch will use to store data in MySQL.
- Notes: Details about the data type and/or its allowed values in the destination, if available. If a range is available, values that exceed the noted range will be rejected by MySQL.
Stitch type | Destination type | Notes |
BIGINT | BIGINT |
|
BOOLEAN | TINYINT(1) | |
DATE | DATETIME |
|
DOUBLE | FLOAT(53) | |
FLOAT | FLOAT(53) | |
INTEGER | INT |
|
NUMBER | DECIMAL |
|
STRING | LONGTEXT |
|
JSON structures
MySQL supports nested records within tables, whether it’s a single record or repeated values. This means that when nested data structures are loaded into MySQL, they will be maintained.
Column names
Column names in MySQL:
Stitch will perform the following transformations to ensure column names adhere to the rules imposed by MySQL:
Transformation | Source column | Destination column |
Trim leading and trailing spaces |
customerid
|
customerid
|
Replace characters which are not a-z, A-Z, 0-9, _ or $ with an underscore |
customer-id
|
customer_id
|
Convert to lowercase |
CustomerID
|
customerid
|
Table names
Table and schema names in MySQL:
Stitch will perform the following transformations to ensure table and schema names adhere to the rules imposed by MySQL:
Transformation | Source name | Destination name |
Trim leading and trailing spaces |
customerid
|
customerid
|
Replace characters which are not a-z, A-Z, 0-9, _ or $ with an underscore |
customer-id
|
customer_id
|
Convert to lowercase |
CustomerID
|
customerid
|
Timezones
MySQL will store the value as TIMESTAMP WITHOUT TIMEZONE
. In MySQL, this data is stored without timezone information and expressed as UTC with fractional seconds.
Compare destinations
Not sure if MySQL is the destination for you? Check out the Choosing a Stitch Destination guide to compare each of Stitch’s destination offerings.
Related | Troubleshooting |
Questions? Feedback?
Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.