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
Untuk informasi selengkapnya mengenai prosedurnya, lihat Configure a sync task in the codeless UI dan Configure a sync task in the code editor.
Untuk semua parameter dan contoh skrip untuk editor kode, lihat bagian Appendix: Sample scripts and parameter descriptions dalam topik ini.
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 ["*"].
| 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.
| ||
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
| 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: | 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 |