Express synchronization pipeline tasks use the Apache Arrow columnar in-memory format for end-to-end data transport. This approach boosts synchronization throughput in large-scale data synchronization scenarios by leveraging vectorized batch reads and writes, zero-copy mapping, and the Arrow Flight SQL protocol. This topic describes how to create an express synchronization pipeline task.
Prerequisites
Configure the required source and destination data sources before you begin. This allows you to select them when configuring the input and output components. Express synchronization pipeline tasks support the following data sources:
Procedure
Step 1: Create an express synchronization pipeline
-
In the top navigation bar of the Dataphin homepage, choose Development > Data Integration.
-
In the top navigation bar of the integration page, select a project. In Dev-Prod mode, you must also select an environment.
-
In the offline integration list, click the New icon, select Express Synchronization, and open the Create Express Synchronization Pipeline dialog box.
-
In the Create Express Synchronization Pipeline dialog box, configure the pipeline parameters.
Parameter
Description
Pipeline name
Enter a name for the pipeline. The name can be up to 64 characters long and cannot contain the following special characters: vertical bar (|), forward slash (/), backslash (\), colon (:), question mark (?), angle brackets (<>), asterisk (*), or single quotation mark (').
Scheduling type
Select a scheduling type for the pipeline:
-
Periodic node: A task that runs at regular intervals.
-
Manual node: A task that has no dependencies and must be triggered manually.
Description
Enter a description for the express synchronization pipeline, up to 1,000 characters.
Select directory
Select the directory to store the task.
If you have not created a directory, you can create one:
-
Above the compute task list on the left, click the new folder icon to open the New Folder dialog box.
-
In the New Folder dialog box, enter a folder Name and select its location under Select Directory.
-
Click OK.
-
-
Click OK to create the express synchronization pipeline.
Step 2: Develop the pipeline script
The component library for express synchronization pipeline tasks supports only input and output components. The configuration for these components is the same as for those in offline integration tasks. You can also switch to script mode.
The input and output components for express synchronization pipeline tasks are divided into two categories based on whether the data source natively supports Arrow:
-
Apache Arrow acceleration: The data source provides a native columnar read/write path, allowing data to be transmitted in Arrow format without row-to-column conversion.
-
Apache Arrow adaptation: The data source does not provide a native columnar path, requiring conversion between the row format and the Arrow columnar format during read and write operations.
The following input components are supported:
|
Input component |
Arrow capability |
Arrow read/write mode |
Description |
|
Apache Arrow adaptation |
JDBC to Arrow columnar |
Reads data via JDBC and converts the result set to the Arrow columnar in-memory format in batches. |
|
|
Apache Arrow adaptation |
JDBC to Arrow columnar |
Reads data via JDBC and converts the result set to the Arrow columnar in-memory format in batches. |
|
|
Apache Arrow adaptation |
JDBC to Arrow columnar |
Reads data via JDBC and converts the result set to the Arrow columnar in-memory format in batches. |
|
|
Apache Arrow adaptation |
JDBC to Arrow columnar |
Reads data via JDBC and converts the result set to the Arrow columnar in-memory format in batches. |
|
|
Apache Arrow acceleration |
Storage API (Arrow) |
Reads data in native Arrow format at high throughput by using the MaxCompute Storage API, which eliminates the need for conversion. |
|
|
Apache Arrow acceleration |
Zero-copy columnar file read |
Directly maps ORC, Parquet, or text files to the Arrow memory layout to enable zero-copy reads without deserialization. |
|
|
Apache Arrow acceleration |
Zero-copy columnar file read |
Maps ORC, Parquet, or text files to the Arrow columnar layout for zero-copy vectorized scanning. |
|
|
Apache Arrow acceleration |
Arrow Flight SQL |
Reads data as a columnar stream by using the Arrow Flight SQL high-speed port of the Doris FE (default: 8070). |
|
|
Apache Arrow acceleration |
Arrow Flight SQL |
Reads data as a columnar stream by using the Arrow Flight SQL high-speed port of the SelectDB FE (default: 8070). You must specify a warehouse (compute cluster). |
|
|
Apache Arrow acceleration |
COPY protocol (Arrow) |
Reads data in native Arrow columnar format through the PostgreSQL COPY protocol, bypassing row-by-row result set parsing. |
|
|
Apache Arrow acceleration |
Native ArrowStream |
Reads data as a columnar stream in ArrowStream format by using the ClickHouse native client. The server returns Arrow columnar data directly, which eliminates row-by-row parsing. |
The following output components are supported:
|
Output component |
Arrow capability |
Arrow read/write mode |
Description |
|
Apache Arrow adaptation |
Arrow columnar to JDBC |
Converts Arrow columnar data to a row-based format before writing it via JDBC. |
|
|
Apache Arrow adaptation |
Arrow columnar to JDBC |
Converts Arrow columnar data to a row-based format before writing it via JDBC. |
|
|
Apache Arrow adaptation |
Arrow columnar to JDBC |
Converts Arrow columnar data to a row-based format before writing it via JDBC. |
|
|
Apache Arrow adaptation |
Arrow columnar to JDBC |
Converts Arrow columnar data to a row-based format before writing it via JDBC. |
|
|
Apache Arrow acceleration |
Storage API (Arrow) |
Provides high-throughput writes in native Arrow format through the MaxCompute Storage API, eliminating the need for conversion. |
|
|
Apache Arrow acceleration |
Zero-copy columnar file write |
Writes ORC, Parquet, or text files directly from the Arrow memory layout, which avoids serialization overhead. For Paimon tables, Arrow columnar data must be converted to row format before writing. This feature is supported only for Hive data sources on Amazon EMR. |
|
|
Apache Arrow acceleration |
Zero-copy columnar file write |
Writes ORC, Parquet, or text files directly from the Arrow memory layout, which avoids serialization overhead. |
|
|
Apache Arrow adaptation |
Arrow columnar to JDBC |
Converts Arrow columnar data to a row-based format before writing it via JDBC. |
|
|
Apache Arrow adaptation |
Arrow columnar to JDBC |
Converts Arrow columnar data to a row-based format before writing it via JDBC. |
|
|
Apache Arrow acceleration |
COPY protocol (Arrow) |
Performs batch writes in native Arrow columnar format through the COPY protocol, avoiding row-to-column conversion. |
|
|
Apache Arrow acceleration |
Native ArrowStream |
Writes data in batches in ArrowStream format by using the ClickHouse native client, which avoids row-to-column conversion for Arrow columnar data. |
Step 3: Configure pipeline scheduling
Click Scheduling Configuration on the toolbar to configure the basic information, scheduling configuration, scheduling dependencies, scheduling parameters, runtime configuration, and resource configuration for the express synchronization pipeline task. For more information, see:
-
Configure basic information for an offline integration pipeline
-
Configure resources for an offline integration pipeline task
Step 4: Save and submit the task
-
Click the save icon above the canvas to save the express synchronization pipeline task.
-
Click the submit icon above the canvas. In the Submission Comments dialog box, enter your comments and click OK and Submit.
Next steps
-
If your development mode is Dev-Prod mode, you must publish a task before it can be scheduled in the production environment.
-
If your development mode is Basic mode, a successfully submitted task becomes eligible for scheduling in the production environment, and you can then go to the O&M Center to view the task.