DataWorks Data Integration memungkinkan Anda menggunakan Redis Writer untuk menulis data ke Redis. Topik ini menjelaskan cara melakukan penulisan batch ke sumber data Redis dengan menggunakan DataWorks.
Batasan
Tugas impor data dapat dijalankan pada serverless resource groups (disarankan) dan exclusive resource groups for Data Integration.
Saat menggunakan Redis Writer untuk menulis data, menjalankan ulang tugas sinkronisasi bukanlah operasi idempoten jika nilai tersebut berupa List. Oleh karena itu, jika nilainya berupa List, Anda harus menghapus data terkait dari Redis secara manual sebelum menjalankan ulang tugas tersebut.
PentingRedis saat ini tidak mendukung konfigurasi Bloom filter. Untuk menangani data duplikat, Anda dapat menggunakan solusi alternatif: tambahkan node, seperti node Shell, Python, atau PyODPS, sebelum atau sesudah node sinkronisasi dalam alur kerja Anda untuk melakukan deduplikasi.
Tipe data yang didukung
Redis mendukung berbagai tipe data nilai, termasuk String, List, Set, ZSet (sorted set), dan Hash. Untuk informasi lebih lanjut tentang Redis, lihat redis.io.
Pengembangan tugas sinkronisasi data
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Untuk prosedur konfigurasi, lihat Konfigurasikan tugas di Antarmuka tanpa kode dan Konfigurasikan tugas di editor kode.
Untuk daftar lengkap parameter dan contoh kode untuk editor kode, lihat Lampiran: Contoh kode dan parameter.
Lampiran: Contoh kode dan parameter
Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika Anda ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Gunakan Editor Kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Contoh kode Writer
Kode berikut adalah contoh tugas sinkronisasi data yang membaca data dari database MySQL dan menulisnya ke Redis. Kode ini menampilkan contoh untuk MySQL Reader dan Redis Writer.
{
"type":"job",
"version":"2.0", // Nomor versi.
"steps":[
{ // Berikut ini adalah contoh kode untuk Reader. Untuk informasi lebih lanjut tentang parameter Reader, lihat dokumentasi plugin Reader yang sesuai.
"stepType":"mysql",
"parameter": {
"envType": 0,
"datasource": "xc_mysql_demo2",
"column": [
"id",
"value",
"table"
],
"connection": [
{
"datasource": "xc_mysql_demo2",
"table": []
}
],
"where": "",
"splitPk": "",
"encoding": "UTF-8"
},,
"name":"Reader",
"category":"reader"
},
{// Berikut ini adalah contoh kode untuk Writer.
"stepType":"redis", // Nama plugin untuk Redis Writer. Atur parameter ini ke redis.
"parameter":{ // Bagian berikut menjelaskan parameter utama Redis Writer.
"expireTime":{ // Waktu kedaluwarsa cache untuk nilai Redis. Anda dapat mengatur parameter ini ke tipe seconds atau tipe unixtime."seconds":"1000"
},
"keyFieldDelimiter":"u0001", // Pembatas untuk kunci Redis.
"dateFormat":"yyyy-MM-dd HH:mm:ss",// Format tanggal yang digunakan saat data ditulis ke Redis.
"datasource":"xc_mysql_demo2", // Nama sumber data. Harus sama dengan nama sumber data yang telah Anda tambahkan.
"envType": 0, // Tipe lingkungan. Lingkungan pengembangan: 1. Lingkungan produksi: 0.
"writeMode":{ // Mode penulisan.
"type":"string" // Tipe nilai.
"mode":"set", // Mode penulisan untuk tipe nilai tertentu.
"valueFieldDelimiter":"u0001", // Pembatas antar nilai.
},
"keyIndexes":[0,1], // Digunakan untuk pemetaan dari sumber ke Redis. Menentukan kolom sumber yang akan digunakan sebagai kunci (kolom pertama dimulai dari 0). Misalnya, jika kolom pertama dan kedua dari sumber digabung sebagai kunci Redis, atur parameter ini ke [0,1].
"batchSize":"1000" // Jumlah catatan dalam setiap batch.
"column": [ // Untuk tipe Redis string dengan operasi set: jika kolom ini tidak dikonfigurasi, format nilainya adalah string yang dipisahkan pembatas (format CSV. Misalnya ID=1, name="John", age=18, sex=male, contoh nilai Redis: "18::male"). Jika kolom dikonfigurasi dalam format berikut, nilai Redis akan ditulis dalam format JSON. Misalnya ID=1, name="John", age=18, sex=male, contoh nilai Redis: {"id":1,"name":"John","age":18,"sex":"male"}
{
"name": "id",
"index": "0"
},
{
"name": "name",
"index": "1"
},
{
"name": "age",
"index": "2"
},
{
"name": "sex",
"index": "3"
}
]
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0" // Jumlah error.
},
"speed":{
"throttle":true,// Saat throttle diatur ke false, parameter mbps tidak berlaku, artinya pembatasan kecepatan dinonaktifkan. Saat throttle diatur ke true, pembatasan kecepatan diaktifkan.
"concurrent":1, // Konkurensi job.
"mbps":"12"// Laju pembatasan kecepatan. 1 mbps = 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter Writer
Parameter | Deskripsi | Wajib | Nilai default |
expireTime | Waktu kedaluwarsa cache untuk nilai Redis, dalam satuan detik. Jika parameter ini tidak ditentukan, nilai default Anda dapat mengonfigurasi expireTime dengan salah satu dari dua cara berikut:
| Tidak | 0 (0 menunjukkan bahwa data tidak pernah kedaluwarsa) |
keyFieldDelimiter | Pembatas untuk kunci Redis. Misalnya, key=key1\u0001id. Parameter ini wajib jika beberapa kunci perlu digabungkan. Jika hanya satu kunci yang digunakan, Anda dapat melewati parameter ini. | Tidak | \u0001 |
dateFormat | Format tanggal yang digunakan saat data ditulis ke Redis: yyyy-MM-dd HH:mm:ss. | Tidak | N/A |
datasource | Nama sumber data. Nilainya harus sama dengan nama sumber data yang telah Anda tambahkan. | Ya | N/A |
selectDatabase | Database Redis yang akan ditulis ( | Tidak | Database 0 secara default |
writeMode | Redis Writer mendukung lima tipe nilai berikut untuk menulis data ke Redis:
Konfigurasi writeMode sedikit berbeda tergantung pada tipe nilai. Untuk informasi lebih lanjut, lihat deskripsi parameter writeMode di bawah. Catatan Saat mengonfigurasi Redis Writer, Anda harus mengatur writeMode ke salah satu dari lima tipe data yang didukung, dan hanya satu tipe yang dapat ditentukan. Jika Anda tidak mengonfigurasi parameter ini, writeMode menggunakan nilai default | Tidak | string |
keyIndexes | Menentukan indeks kolom dari kolom sumber yang akan digunakan sebagai kunci. Indeks kolom dimulai dari 0 (kolom pertama memiliki indeks 0, kolom kedua memiliki indeks 1, dan seterusnya).
Catatan Setelah Anda mengonfigurasi keyIndexes, Redis Writer menggunakan kolom yang tersisa sebagai nilai. Jika Anda ingin menyinkronkan hanya kolom tertentu sebagai kunci dan kolom lain sebagai nilai, Anda tidak perlu menyinkronkan semua kolom. Anda dapat menentukan parameter column di plugin Reader untuk memfilter kolom. | Ya | N/A |
batchSize | Jumlah catatan dalam setiap batch. Parameter ini dapat secara signifikan mengurangi jumlah interaksi jaringan antara sistem sinkronisasi data dan Redis, serta meningkatkan throughput keseluruhan. Jika nilai ini diatur terlalu besar, proses sinkronisasi data mungkin mengalami error kehabisan memori (OOM). | Tidak | 1.000 |
timeout | Timeout untuk menulis data ke Redis, dalam satuan milidetik. | Tidak | 30.000 |
redisMode | Mode berjalan Redis. Nilai yang valid:
Catatan Didukung pada serverless resource groups (disarankan) dan exclusive resource groups for Data Integration. | Tidak | N/A |
column | Konfigurasi kolom untuk menulis data ke Redis. Untuk tipe Redis string dengan operasi set:
| Tidak | N/A |
Deskripsi parameter writeMode
Saat mengonfigurasi Redis Writer, Anda harus mengatur writeMode ke salah satu dari lima tipe data yang didukung, dan hanya satu tipe yang dapat ditentukan. Jika parameter ini tidak dikonfigurasi, writeMode akan menggunakan nilai default string.
Tipe nilai | Parameter type (wajib) | Parameter mode (wajib) | Parameter valueFieldDelimiter (opsional) | Contoh konfigurasi writeMode |
String | Atur type ke | mode adalah parameter mode penulisan. Saat nilainya berupa string:
| valueFieldDelimiter adalah pembatas antar nilai. Nilai default-nya adalah
| |
List | Atur type ke | mode adalah parameter mode penulisan. Saat nilainya berupa list, opsi berikut tersedia:
| | |
Set | Atur type ke | mode adalah parameter mode penulisan. Saat nilainya berupa set:
| | |
ZSet (sorted set) | Atur type ke | mode adalah parameter mode penulisan. Saat nilainya berupa ZSet (sorted set):
| Parameter ini tidak perlu dikonfigurasi. | Catatan Saat tipe nilai adalah zset, setiap baris data sumber harus mengikuti format yang sesuai. Setiap baris hanya boleh berisi satu pasangan score-value selain kunci, dan score harus mendahului nilai agar Redis Writer dapat mengidentifikasi kolom mana yang sesuai dengan score dan mana yang sesuai dengan nilai. |
Hash | Atur type ke | mode adalah parameter mode penulisan. Saat nilainya berupa hash:
| Parameter ini tidak perlu dikonfigurasi. | Catatan Saat tipe nilai adalah hash, setiap baris data sumber harus mengikuti format yang sesuai. Setiap baris hanya boleh berisi satu pasangan attribute-value selain kunci, dan attribute harus mendahului nilai agar Redis Writer dapat mengidentifikasi kolom mana yang sesuai dengan attribute dan mana yang sesuai dengan nilai. |