全部产品
Search
文档中心

DataWorks:Sumber data Snowflake

更新时间:Dec 09, 2025

DataWorks Data Integration mendukung pembacaan dan penulisan data ke Snowflake. Topik ini menjelaskan kemampuan sinkronisasi data yang tersedia untuk Snowflake.

Batasan

Snowflake Reader dan Writer menggunakan driver snowflake-jdbc:3.20.0. Untuk informasi selengkapnya mengenai kemampuan driver tersebut, lihat Snowflake JDBC Driver Release Notes.

Tipe bidang yang didukung

Snowflake Reader dan Snowflake Writer mendukung sebagian besar tipe data umum untuk database relasional, seperti angka dan karakter. Namun, beberapa tipe data tidak didukung. Pastikan tipe data Anda didukung oleh database tersebut.

Field type

Offline read (Snowflake Reader)

Offline write (Snowflake Writer)

NUMBER

Supported

Support

DECIMAL

Supported

Supported

NUMERIC

Supported

Supported

INT

Support

Supported

INTEGER

Support

Supported

BIGINT

Supported

Supported

SMALLINT

Supported

Help and support

TINYINT

Supported

Supported

BYTEINT

Supported

Supported

FLOAT

Supported

Supported

FLOAT4

Supported

Supported

FLOAT8

Support

Supported

DOUBLE

Supported

Support

DOUBLE PRECISION

Supported

Supported

CHAR

Supported

Supported

VARCHAR

Supported

Supported

STRING

Supported

Supported

TEXT

Supported

Supported

BINARY

Support

Supported

VARBINARY

Supported

Supported

BOOLEAN

Supported

Supported

DATE

Support

Support

TIME

Supported

Supported

TIMESTAMP

Supported

Supported

TIMESTAMP_NTZ

Supported

Supported

TIMESTAMP_LTZ

Supported

Support

TIMESTAMP_TZ

Not supported

Supported

OBJECT

Not supported

Not supported

ARRAY

Not supported

Not supported

VARIANT

Not supported

Not supported

GEOGRAPHY

Not supported

Not supported

GEOMETRY

Not supported

Not supported

VECTOR

Not supported

Not supported

FILE

Not supported

Not supported

Buat sumber data

Sebelum mengembangkan task sinkronisasi data, Anda harus membuat sumber data yang sesuai di DataWorks. Untuk informasi selengkapnya mengenai prosedurnya, lihat Data Source Management. Untuk deskripsi detail parameter konfigurasi, lihat tooltip pada halaman konfigurasi.

Kembangkan task sinkronisasi data

Untuk informasi mengenai titik masuk dan proses umum konfigurasi task sinkronisasi data, lihat panduan berikut.

Konfigurasikan task sinkronisasi offline untuk satu tabel

Lampiran: Contoh skrip dan deskripsi parameter

Konfigurasikan skrip task offline

Jika Anda menggunakan editor kode untuk mengonfigurasi task offline untuk satu tabel, Anda harus menulis skrip dalam format yang ditentukan. Untuk informasi selengkapnya, lihat Configure a sync task in the code editor. Bagian berikut menjelaskan parameter untuk sumber data di editor kode.

Contoh skrip Reader

{
    "transform": false,
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "snowflake",
            "parameter": {
                "schema": "PUBLIC",
                "envType": 0,
                "datasource": "snowflake_datasource",
                "column": [
                    "ID",
                    "NAME"
                ],
                "where": "",
                "table": "table"
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "stream",
            "parameter": {
                "print": true
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "throttle": false,
            "concurrent": 2
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parameter skrip Reader

Parameter

Description

Required

Default value

datasource

Nama sumber data Snowflake.

Yes

None

table

Nama tabel dari mana Anda ingin menyinkronkan data.

Yes

None

schema

Skema tempat tabel Snowflake yang ingin Anda baca berada.

Yes

None

column

Kolom yang ingin Anda sinkronkan dari tabel sumber. Gunakan array JSON untuk menggambarkan bidang-bidang tersebut. Secara default, semua kolom digunakan, misalnya ["*"].

  • Anda dapat memilih subset kolom untuk diekspor.

  • Anda dapat mengekspor kolom dalam urutan yang berbeda dari skema tabel.

  • Anda dapat mengonfigurasi konstanta dengan memberikan konfigurasi dalam format JSON. Berikut adalah contohnya: ["id","1", "'bazhen.csy'", "null", "to_char(a + 1)", "2.3" , "true"].

    • id adalah nama kolom biasa.

    • 1 adalah konstanta integer.

    • 'bazhen.csy' adalah konstanta string.

    • null adalah penunjuk null.

    • to_char(a + 1) adalah ekspresi fungsi.

    • 2.3 adalah bilangan titik mengambang.

    • true adalah nilai Boolean.

  • Parameter column harus menentukan kolom yang ingin Anda sinkronkan. Parameter ini tidak boleh kosong.

Yes

None

splitFactor

Faktor pemisahan. Parameter ini menentukan jumlah chunk yang digunakan untuk membagi data saat sinkronisasi. Jika Anda mengonfigurasi beberapa thread konkuren, data akan dibagi menjadi jumlah chunk sebesar Concurrency × splitFactor. Misalnya, jika Concurrency diatur ke 5 dan splitFactor diatur ke 5, data akan dibagi menjadi 25 chunk (5 × 5) dan diproses oleh 5 thread konkuren.

Catatan

Atur parameter ini ke nilai antara 1 hingga 100. Nilai yang terlalu besar dapat menyebabkan error kehabisan memori (OOM).

splitPk

Saat Snowflake Reader mengekstrak data, Anda dapat menentukan parameter splitPk untuk melakukan sharding data berdasarkan kolom kunci primer yang ditentukan. Hal ini memungkinkan sistem sinkronisasi data menjalankan task konkuren guna meningkatkan efisiensi.

  • Atur splitPk ke kunci primer tabel. Nilai dalam kolom kunci primer biasanya terdistribusi merata. Hal ini mencegah hot spot data pada shard.

  • Saat ini, parameter splitPk hanya mendukung kolom integer untuk sharding data. Jika Anda menentukan kolom dengan tipe data lain, seperti string, bilangan titik mengambang, atau tanggal, Snowflake Reader akan melaporkan error.

where

Kondisi filter. Snowflake Reader menggabungkan parameter column, table, dan where yang ditentukan menjadi pernyataan SQL untuk mengekstrak data. Sebagai contoh, untuk tujuan pengujian, Anda dapat mengatur kondisi where menjadi limit 10.

Untuk sinkronisasi inkremental, Anda dapat mengatur kondisi where menjadi gmt_create>${bizdate}.

  • Kondisi where memungkinkan sinkronisasi data inkremental yang efisien.

  • Jika Anda tidak mengonfigurasi parameter ini atau membiarkannya kosong, semua data akan disinkronkan dari tabel.

No

None

fetchSize

Parameter ini menentukan jumlah catatan yang diambil dalam setiap batch dari server database. Nilai yang lebih besar mengurangi jumlah interaksi jaringan antara Data Integration dan server, sehingga meningkatkan performa ekstraksi data.

Catatan

Nilai fetchSize yang lebih besar dari 2048 dapat menyebabkan error OOM dalam proses sinkronisasi data.

No

1024

Contoh skrip Writer

{
    "transform": false,
    "type": "job",
    "version": "2.0",
    "steps": [
        { 
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType": "snowflake",
            "parameter": {
                "schema": "PUBLIC",
                "envType": 0,
                "datasource": "snowflake_datasource",
                "column": [
                    "ID",
                    "NAME"
                ],
                "table": "TABLE"
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "executeMode": null,
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "concurrent": 2,
            "throttle": false
        }
    },
    "order": {
        "hops": []
    }
}

Parameter skrip Writer

Parameter

Description

Required

Default value

datasource

Nama sumber data Snowflake.

Yes

None

table

Nama tabel tujuan tempat Anda ingin menyinkronkan data.

Yes

None

schema

Skema tempat tabel Snowflake yang ingin Anda tulis berada.

Yes

None

column

Kolom dalam tabel tujuan tempat Anda ingin menulis data. Pisahkan nama kolom dengan koma (,). Contoh: "column":["id","name","age"]. Untuk menulis data ke semua kolom secara berurutan, gunakan tanda bintang (*). Contoh: "column":["*"].

Yes

None

batchSize

Jumlah catatan yang ditulis dalam satu batch. Nilai yang lebih besar secara signifikan dapat mengurangi interaksi jaringan antara Data Integration dan Snowflake serta meningkatkan throughput keseluruhan. Namun, nilai yang terlalu besar dapat menyebabkan error OOM dalam proses Data Integration.

No

1024