Google Cloud SQL for SQL Server Setup Guide
Follow these instructions to replicate your Google Cloud SQL for SQL Server database to your destination using Fivetran.
Prerequisites
To connect your Google Cloud SQL for SQL Server database to Fivetran, you need:
- A Google Cloud SQL for SQL Server database instance. If you don't have one, follow .
- SQL Server 2012 - 2019
- Your database host's IP (e.g.,
1.2.3.4) or domain (your.server.com) - Your database's port (usually
1433)
IMPORTANT: We do not support single-user mode.
Setup instructions
Choose connection method
First, decide whether to connect your Google Cloud SQL for SQL Server database to Fivetran directly, using an SSH tunnel, or using Google Cloud Private Service Connect.
Connect directly (TLS required)
IMPORTANT: You must have TLS enabled on your database to connect directly to Fivetran. Follow Google Cloud's to enable TLS on your database.
Fivetran connects directly to your database instance. This is the simplest connection method.
To connect directly, configure your firewall and/or other access control systems to allow incoming connections to your SQL server host and port (usually 1433) from for your database's region.
Connect using SSH (TLS optional)
Fivetran connects to a separate server in your network that provides an SSH tunnel to your database. You must connect through SSH if your database is in an inaccessible subnet.
To connect using SSH, do the following:
In your , select Connect via an SSH tunnel to expose Fivetran's public SSH key. Copy the key by clicking the blue clipboard icon.
Add the public key to the
authorized_keysfile of your SSH server. The key must be all on one line, so make sure that you don't introduce any line breaks when cutting and pasting.If you want Fivetran to tunnel SSH over TLS, follow Google Cloud's to enable TLS on your database.
Connect using Google Cloud Private Service Connect Private Preview
IMPORTANT: You must have a Business Critical plan to use Google Cloud Private Service Connect.
Google Cloud Private Service Connect allows VPCs and Google-hosted or on-premises services to communicate with one another without exposing traffic to the public internet. Learn more in Google Cloud's .
Follow our to configure Private Service Connect for your database.
Enable database access
Grant Fivetran's data processing servers access to your database.
In your , click on your master database.

In the left menu, go to the Connections tab.
In the Networking section, click Add network.

In the New network window, create a network for Fivetran. What you enter in the Network field depends on whether you're connecting directly or using an SSH tunnel.
- If you're connecting directly, enter for your database's region.
- If you're connecting using an SSH tunnel, enter
{your-ssh-tunnel-server-ip-address}/32.
When you've finished, click Done, then click Save. It will take a few minutes for the database to be updated with the new settings.

In the left menu, go to the Overview tab.
In the Connect to this instance section, find your database's public IP address and make a note of it. You will need it to configure Fivetran.

Create user
Create a database user for Fivetran's exclusive use.
Open a connection to your Google Cloud SQL for SQL Server master database in a SQL Server console (such as a SQL workbench, DataGrip, or mssql).
Create a login for Fivetran by executing the following SQL command. Replace
<login_username>andsome-passwordwith a username and password of your choice.CREATE LOGIN <login_username> with password = '<some-password>';content_copyCreate a user from the login you created. Replace
<user_username>with a username of your choice.CREATE USER <user_username> from login <login_username>;content_copy
Grant user permissions
Grant the Fivetran user SELECT permission for the databases, schemas, tables, or specific columns you want Fivetran to sync.
You can grant access to everything in a given database:
GRANT SELECT on DATABASE::<database> to <username>;
content_copyor all tables in a given schema:
GRANT SELECT on SCHEMA::<schema> to <username>;
content_copyor a specific table:
GRANT SELECT ON [<schema>].[<table>] TO <username>;
content_copyor a set of specific columns in a table:
GRANT SELECT ON [<schema>].[<table>] ([<column 1>], [<column 2>], ...) TO <username>;
content_copyEnable incremental updates
For incremental updates, we use one of the following tracking mechanisms:
These mechanisms let Fivetran copy only the rows that have changed since the last data sync so we don't have to copy the whole table every time. Learn more in our .
Choose to enable change tracking, change data capture, or Fivetran Teleport Sync. Depending on whether you are connecting Fivetran to your primary instance or an availability group replica, you may be limited in the mechanism you can choose. See our for more information.
Change tracking
Enable change tracking at the database level:
ALTER DATABASE [<database>] SET CHANGE_TRACKING = ON;content_copyEnable CT for each table you want to integrate:
ALTER TABLE [<schema>].[<table>] ENABLE CHANGE_TRACKING;content_copyGrant the Fivetran user
VIEW CHANGE TRACKINGpermission for each of the tables that have CT enabled:GRANT VIEW CHANGE TRACKING ON [<schema>].[<table>] TO <username>;content_copy
Change data capture
Enable change data capture at the database level:
EXEC msdb.dbo.gcloudsql_cdc_enable_db '[<database>]'content_copyEnable CDC for each table you want to Fivetran to sync:
EXEC sys.sp_cdc_enable_table @source_schema = [<schema>], @source_name = [<table>], @role_name = [<username>];content_copyTo check if CDC is enabled, run the query below:
EXEC sys.sp_cdc_enable_table @source_schema = N'[<schema>]', @source_name = N'[<table>]', @role_name = N'CDC'content_copyNOTE: Fivetran only supports tables with a single CDC capture instance. Our syncs only include tables and columns that are present in a CDC instance. If you add new tables or columns, you must that includes them and delete the old instance.
Fivetran Teleport Sync
You do not need to do any additional configuration to use Fivetran Teleport Sync.
Finish Fivetran configuration
In your , enter a destination schema prefix. This prefix applies to each replicated schema and cannot be changed once your connector is created.
In the Host field, enter your database host's IP (for example,
1.2.3.4) or domain (for example,your.server.com).Enter your database instance's port number. The port number is usually
1433.Enter the Fivetran-specific user that you created in .
Enter the password for the Fivetran-specific user that you created in .
Enter the name of your database (for example,
your_database).Choose your connection method. If you selected Connect via an SSH tunnel, provide the following information:
- SSH hostname (do not use a load balancer's IP address/hostname)
- SSH port
- SSH user
- If you enabled TLS on your database in , set the Require TLS through tunnel toggle to ON.
Choose your incremental update method.
Click Save & Test. Fivetran tests and validates our connection to your Google Cloud SQL for SQL Server database. Upon successful completion of the setup tests, you can sync your data using Fivetran.
Setup tests
Fivetran performs the following tests to ensure that we can connect to your Google Cloud SQL for SQL Server database and that it is properly configured:
- The Connecting to SSH Tunnel Test validates the SSH tunnel details you provided in the setup form. It then checks that we can connect to your database using the SSH Tunnel. (We skip this test if you aren't connecting using SSH.)
- The Connecting to Host Test validates the database credentials you provided in the setup form. The test verifies that the host is not private and then checks the connectivity to the host.
- The Validating Certificate Test generates a pop-up window where you must choose which certificate you want Fivetran to use. It then validates that certificate and checks that we can connect to your database using TLS. (We skip this test if you're connecting using a Google Cloud Virtual Machine.)
- The Connecting to Database Test checks that we can access your database.
- The Checking
statement_timeoutValue Test checks that we can access your database'spg_settingstable. It then verifies that thestatement_timeoutvalue is greater than 5 minutes.
NOTE: The tests may take a few minutes to finish running.
Related articles
Comments
0 comments
Please sign in to leave a comment.