The Yugabyte connector supports version 2024.1 and above.
The Yugabyte connector only supports Yugabyte SQL (YSQL).
It does not support Yugabyte Cloud Query Language (YCQL).
The source and destination databases should be on separate clusters.
In a Yugabyte workspace, you can only use the following table modes:
De-Identify
Truncate
Scale
Yugabyte workspaces cannot use the following generators:
Algebraic
Array JSON Mask
Array Regex Mask
Cross Table Sum
Event Timestamps
Geo
Sequential Integer
Yugabyte workspaces do not support upsert.
For Yugabyte workspaces, you cannot write the destination data to container artifacts.
For Yugabyte workspaces, you cannot write the destination data to an Ephemeral snapshot.
Source and destination databases should be on different clusters.
On the workspace configuration view, under Connection Type, click Yugabyte SQL.
In the Source Settings section, provide the details about connecting to the source database.
To provide the connection details, you can either populate the connection fields or use a connection string.
By default, Use connection string is off, and you provide the connection values in the individual fields:
In the Server field, provide the server where the database is located.
In the Database field, provide the name of the database.
In the Port field, provide the port to use to connect to the database.
In the Username field, provide the username for the account to use to connect to the database.
In the Password field, provide the password for the specified username.
To test the connection to the source database, click Test Source Connection.
To use a connection string to connect to the source database:
Toggle Use connection string to the on position.
In the Connection String field, provide the connection string.
The connection string uses the following format:
Server=serverIP;Database=databaseName;User Id=userName;Password=<password>
For Password, you set the value to <password>
, and then type the actual password in the Password field.
To test the connection to the source database, click Test Source Connection.
The Enable SSL/TLS setting indicates whether to encrypt source database authentication.
By default, the toggle is in the on position. We strongly recommend that you do not turn off SSL.
To indicate that Structural should trust the server certificate, toggle Trust Server Certificate to the on position.
For additional security, to connect through an SSH bastion :
Toggle Enable SSH Tunnel to the on position.
In the SSH Host field, provide the host for the SSH bastion.
In the SSH Port field, provide the port for the SSH bastion.
In the SSH User field, provide the name of the user to use to connect to the SSH bastion.
If you do not use a private key, then in the SSH Passphrase field, provide the passphrase to use for authentication.
If you do use a private key, then in the SSH Private Key field, provide the private key. If the private key uses a passphrase, then in the SSH Passphrase field, provide the passphrase for the private key.
By default, the source database includes all of the schemas. To specify a list of specific schemas to either include or exclude:
Toggle Limit Schemas to the on position.
From the filter option dropdown list, select whether to include or exclude the listed schemas.
In the field, provide the list of schemas to either include or exclude. Use commas or semicolons to separate the schemas.
Do not exclude schemas that are referred to by included schemas, unless you create those schemas manually outside of Structural.
By default, data generation is not blocked as long as schema changes do not conflict with your workspace configuration.
To block data generation when there are any schema changes, regardless of whether they conflict with your workspace configuration, toggle Block data generation on schema changes to the on position.
Under Destination Settings, provide the connection details for the destination database. Structural installs any generally available extensions that are used on the source database. However, you must manually install any custom extensions and plugins.
You can either populate the connection fields or use a connection string.
By default, Use connection string is off, and you provide the connection values in the individual fields:
In the Server field, provide the server where the database is located.
In the Database field, provide the name of the database.
In the Port field, provide the port to use to connect to the database.
In the Username field, provide the username for the account to use to connect to the database.
In the Password field, provide the password for the specified username.
To test the connection to the destination database, click Test Destination Connection.
To use a connection string to connect to the source database:
Toggle Use connection string to the on position.
In the Connection String field, provide the connection string.
The connection string uses the following format:
Server=serverIP;Database=databaseName;User Id=userName;Password=<password>
For Password, you set the value to <password>
, and then type the actual password in the Password field.
To test the connection to the destination database, click Test Destination Connection.
The Enable SSL/TLS setting indicates whether to encrypt the destination database authentication.
By default, the toggle is in the on position. We strongly recommend that you do not turn off this setting.
To indicate that Tonic should trust the server certificate, toggle Trust Server Certificate to the on position.
To connect to an SSH bastion for additional security:
Toggle Enable SSH Tunnel to the on position.
In the SSH Host field, provide the host for the SSH bastion.
In the SSH Port field, provide the port for the SSH bastion.
In the SSH User field, provide the name of the user to use to connect to the SSH bastion.
If you do not use a private key, then in the SSH Passphrase field, provide the passphrase to use for authentication.
If you do use a private key, then in the SSH Private Key field, provide the private key. If the private key uses a passphrase, then in the SSH Passphrase field, provide the passphrase for the private key.
Here are some errors that might occur during a Yugabyte data generation, and how to address them:
40001: could not serialize access due to concurrent update
None. You can ignore this error.
40001: Restart read required at: { read: { physical: logical: } local_limit: { physical: logical: } global_limit: in_txn_limit: serial_no: 0 }
None. You can ignore this error.
42830: there is no unique constraint matching given keys for referenced table
Verify that you .
If you have increased the value, you can increase it even further to see whether that resolves the issue.
If that does not resolve the issue, contact Tonic.ai support for assistance.
When a database operation fails with a transient error, the Structural environment setting TONIC_JOBFLOW_MAX_TRANSIENT_RETRIES
controls the number of times it is retried before the job fails.
The default value is 5, which indicates to retry 5 times after a transient error, then fail the job.
For the Yugabyte connector, you should increase this value to a higher value. We recommend 25 to start.
For information about how to configure an environment setting, go to . You can add this setting to the Environment Settings list on Structural Settings.
System requirements
Supported version for Yugabyte.
Structural differences and limitations
Features that are unavailable or work differently in Yugabyte workspaces.
Required configuration
Configuration to set up before you create a Yugabyte workspace.
Configure workspace data connections
Connect to Yugabyte source and destination databases.
Troubleshoot data generation
Data generation errors and how to address them.