> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sync.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Cloud Storage

You can use the Google Cloud Storage connector from the CData Sync application to move data
from any supported source to the Google Cloud Storage destination. To do so, you need to add
the connector, authenticate to the connector, and complete your connection.

## LakeBridge Connector for Delta Parquet and Apache Iceberg

The **Delta Parquet** and **Apache Iceberg** file formats require the LakeBridge connector. Before you configure the Google Cloud Storage destination with either of these file formats, install the LakeBridge connector in Sync.

When Sync starts, it launches the LakeBridge server as a background service on the local machine. When a Delta Parquet or Apache Iceberg job runs, the LakeBridge server starts a dedicated Spark JVM for that job and shuts it down after the job finishes. This isolates each job's memory and allows multiple jobs to run in parallel with independent Spark sessions.

By default, up to three LakeBridge jobs can run concurrently. You can change this limit with the `MaxConcurrentLakeBridgeJobs` setting in **System Settings** > **Advanced** > **Other Settings**. For details, see [Memory Management](https://docs.sync.cdata.com/26.4/en/getting-started/installation-and-configuration/memory-management.md).

To install the LakeBridge connector:

<ol>
  <li>In Sync, navigate to **Connections**.</li>

  <li>
    Select **... > Update Connector** at the end of the Google Cloud Storage row.

    > [!NOTE]
    >
    > Before you complete this step, you must add the Google Cloud Storage connector. For instructions, see "Add the Google Cloud Storage Connector" below.
  </li>

  <li>Select **Add New Version** in the **Update Connector** dialog.</li>
  <li>Upload the `lakebridge.zip` file that is provided by the CData Sync support team.</li>
  <li>Click **Update**.</li>
</ol>

When you install a newer version of the LakeBridge connector, the LakeBridge server stops and restarts automatically on the next job run. A Sync restart is not required.

## Microsoft Windows Prerequisites for Delta Parquet

Before you configure the Google Cloud Storage destination with the **Delta Parquet** file format in the Microsoft Windows operating system (OS), make sure that your environment meets the requirements explained below. These prerequisites ensure that Sync can interact correctly with Delta Lake by locating the required Hadoop binaries under Windows.

Configure your Windows OS, as follows:

<ul><li>Download Hadoop binaries (recommended version: 2.8.1 or later).</li>
<li>Ensure that `HADOOP_HOME` environment variable to the Hadoop installation directory.</li>
<li>Ensure that `%HADOOP_HOME%\bin` is included in your `PATH` system variable (specifically, `%HADOOP_HOME%\bin\winutils.exe` must be accessible).</li></ul>

This configuration is necessary because Delta Lake (on Spark) uses Hadoop's file system APIs to access local storage, the Hadoop Distributed File System (HDFS), and cloud object stores like Google Cloud Storage. Under Windows, Spark must be able to locate the Hadoop binaries (including winutils.exe and other native libraries) to function correctly. Without this configuration, operations such as writing Delta tables, managing checkpoints, or accessing cloud storage can fail with permission or file-system errors.

## Supported File Formats

When Sync writes data to Google Cloud Storage, you can choose the file format for the exported data. The following file formats are supported for the Google Cloud Storage destination:

* (Default) **Delta Parquet:** A format that uses a Delta Lake storage layer on top of the Parquet file format that is used by Sync to support delta processing. *Delta processing* is a method where, after your initial job run, only new or modified files are written or read in subsequent runs, which can reduce job times and resource use.

  **Limitations:**

  * **Naming restrictions:** Table and column names cannot include special characters or reserved SQL and Delta Lake keywords. Examples of special characters include spaces, commas, semicolons, braces, parentheses, equal signs, and the newline (`\n`) and tab (`\t`) characters.
  * **Primary keys:** Primary key constraints are not supported. Sync uses the source primary keys for incremental replication.
  * **Data types:** Unlike traditional databases, Delta Lake does not support column-size definitions (for example, `VARCHAR(100)`). It supports only a fixed set of data types and allows type widening when necessary.
  * **Schema changes:** The ALTER TABLE command supports only adding new columns. Changing the data type of an existing column (for example, from INT to VARCHAR) is not supported.
  * **Delete operations:** In standard jobs, both hard and soft deletions are supported. In CDC and enhanced CDC jobs, only soft deletions are supported.
* **Apache Iceberg:** A high-performance table format that supports atomicity, consistency, isolation, and durability (ACID) transactions and schema evolution.
* **CSV:** Plain text comma-separated values.
* **Avro:** A row-based binary format that supports schema evolution.
* **Parquet:** A columnar storage format that is optimized for analytics.

## Authentication Prerequisites

If you want to authenticate with a Google Cloud service account (for silent authentication or delegated organization-wide access), do the following before you configure your connection in Sync:

* Create a service account in Google Cloud and grant it the required permissions on your bucket or project.
* For OAuth JWT authentication, register a custom OAuth application and download the certificate file (.p12 or .pfx).
* For Service Account Key File authentication (**Delta Parquet** only), download the JSON key file for the service account.

Then proceed to the relevant authentication method below.

## Add the Google Cloud Storage Connector

To enable Sync to use data from Google Cloud Storage, you first must add the
connector, as follows:

<ol>
  <li>Open the **Connections** page of the Sync dashboard.</li>
  <li>Click **Add Connection** to open the **Select Connectors** page.</li>
  <li>Click the **Destinations** tab and locate
  the **Google Cloud Storage** row.</li>

  <li>
    Click the **Configure Connection** icon at the end of that row to open
    the **New Connection** page. This action opens the
    **Add Connection** dialog.

    **Note:** If the **Configure Connection** icon is not
    available, click the **Download Connector** icon to install
    the Google Cloud Storage connector.
  </li>

  <li>Enter a name for your connection in the **Add Connection** dialog.</li>
  <li>Click **Add** to open the **Settings** tab for your connector.</li>
</ol>

For more information about installing new connectors, see
[Connections](https://docs.sync.cdata.com/26.4/en/connections/connections.md).

## Authenticate to Google Cloud Storage

After you add the connector, you need to set the required properties.

* **File Format:** Select the file format that you want to use: **Delta Parquet** (default), **Apache Iceberg**, **CSV**, **Avro**, or **Parquet**.
* **URI:** Enter the path to the name of the bucket and folder that contain your files (for example, `gs://_BucketName/RemotePath`).
* **Project Id**: Enter the identifier (Id) of the project where your Google Cloud Storage instance resides.

  **Note:** This property is **required** only with the Avro file format. For other file formats, the property is optional and it is set in [Complete Your Connection](#complete-your-connection).

CData Sync supports authenticating to Google Cloud Storage in several ways. Select your authentication method below to proceed to the relevant section that contains the authentication details.

* [**Service Account Key File**](#service-account-key-file) (**Delta Parquet** file format only)
* [**OAuth**](#oauth) (default)
* [**OAuth PKCE**](#oauth-pkce)
* [**OAuth JWT**](#oauth-jwt)
* [**GCP Instance Account**](#gcp-instance-account)

**Note:** The full list of authentication methods above are for all file formats except **Delta Parquet**. That format uses only the **Service Account Key File** method.

### Service Account Key File

To connect with a service account key file, specify the following properties:

* **Auth Scheme:** Select **ServiceAccountKeyFile**.
* **Key file path:** Enter the path where the JSON key file for the service account is located.

### OAuth

To connect with OAuth custom credentials, specify the following properties:

* **Auth Scheme:** Select **OAuth**.
* **OAuth Version:** Select the version of OAuth that you want to use. The default version is **2.0**.
* (Optional) **Scope:** Specify the scope of your access to the application.
* (Optional) **OAuth Authorization URL:** Enter the OAuth authorization URL for the OAuth service.
* (Optional) **OAuth Access Token URL:** Enter the URL from which to retrieve the access token.
* (Optional) **OAuth Refresh Token URL:** Enter the URL from which to refresh the OAuth token.

### OAuth PKCE

CData Sync provides an embedded OAuth application with which to connect. To connect with the OAuth PKCE extension, specify the following properties:

* **Auth Scheme:** select **OAuthPKCE**.
* **OAuth Client Id:** Enter the client Id that you were assigned when you registered your application with an OAuth authorization server.

### OAuth JWT

To connect with a Google Cloud Storage account, specify the following properties:

<ul><li>**Auth Scheme:** Select **OAuthJWT**.</li>
<li>**OAuth JWT Cert:** Enter your Java web tokens (JWT) certificate store.</li>
<li>**OAuth JWT Cert Type:** Enter the type of key store that contains your JWT certificate. The default type is **PEMKEY\_BLOB**.</li>
<li>**OAuth Client Id:** Enter the client identifier (Id) that you were assigned when you registered your application with an OAuth authorization server.</li>
<li>**OAuth Client Secret:** Enter the client secret that you were assigned when you registered your application with an OAuth authorization server.</li>
<li>(Optional) **Scope:** Specify the scope of your access to the application.</li>
<li>(Optional) **OAuth Authorization URL:** Enter the OAuth authorization URL for the OAuth service.</li>
<li>(Optional) **OAuth Access Token URL:** Enter the URL from which to retrieve the access token.</li>
<li>(Optional) **OAuth Refresh Token URL:** Enter the URL from which to refresh the OAuth token.</li>
<li>(Optional) **OAuth JWT Cert Password:** Enter the password for your OAuth JWT certificate.</li>
<li>(Optional) **OAuth JWT Cert Subject:** Enter the subject of your OAuth JWT certificate.</li>
<li>(Optional) **OAuth JWT Subject:** Enter the user subject for which the application is requesting delegated access.</li>
<li>(Optional) **OAuth JWT Subject Type:** Select the subject type (**enterprise** or **user**) for the JWT authentication. The default type is **enterprise**.</li>
<li>(Optional) **OAuth JWT Public Key Id:** Enter the Id of the public key for JWT.</li></ul>

### GCP Instance Account

When you run CData Sync on a GCP virtual machine, Sync can authenticate by using the service account that is tied to the virtual machine. Select **GCPInstanceAccount** for **Auth Scheme** to use that account. No additional properties are required.

## Complete Your Connection

To complete your connection:

1. Specify the following properties:

   **For all file formats:**

   * (Optional) **Project Id**: Enter the identifier (Id) of the project where your Google Cloud Storage instance resides.

     **Note:** This property is **required** for the Avro file format, and it is set in [Authenticate to Google Cloud Storage](#authenticate-to-google-cloud-storage)

   **For the Delta Parquet and CSV file formats:**

   * **FMT:** Enter the format that you want to use to parse all text files. The default format is **CsvDelimited**.
   * **Aggregate Files:** Select whether you want to aggregate all the files that are located in the URI directory and that have the same schema into a single table named AggregatedFiles. By default, the **Enable** checkbox is not selected.
   * **Include Column Headers:** Select whether you want to obtain column headers from the first lines of the specified files. By default, the **Enable** checkbox is already selected.

   **For the Avro and Parquet file formats:**

   * **Data Model:** Select the data model that you want to use to parse documents for your format and to generate the database metadata. The default data model is **Document**.
   * **Aggregate Files:** Select whether you want to aggregate all the files that are located in the URI directory and that have the same schema into a single table named AggregatedFiles. By default, the **Enable** checkbox is not selected.

<ol start="2"><li>Define advanced connection settings on the **Advanced** tab. (In most cases, though, you should not need these settings.)</li>
<li>If you authenticate with OAuth or OAuthPKCE, click **Connect to Google Cloud Storage** to connect to your Google Cloud Storage account.</li>
<li>Click **Create & Test** to create your connection.</li></ol>

## More Information

For more information about interactions between CData Sync and Google Cloud Storage, see
[Google Cloud Storage Connector for CData Sync](https://cdn.cdata.com/help/JGN/synch/default.htm).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.