DataWorks menyediakan Redis Writer untuk menulis data ke sumber data Redis. Topik ini menjelaskan kemampuan sinkronisasi data ke sumber data Redis.
Batasan
Kelompok sumber daya tanpa server dan kelompok sumber daya eksklusif untuk Data Integration didukung. Disarankan menggunakan kelompok sumber daya tanpa server.
Jika Anda menjalankan ulang tugas sinkronisasi yang menggunakan Redis Writer untuk menulis nilai LIST ke Redis, hasil sinkronisasi data tidak bersifat idempoten. Dalam hal ini, Anda harus menghapus data yang ditulis oleh Redis Writer dalam eksekusi sebelumnya dari Redis sebelum menjalankan ulang tugas sinkronisasi.
PentingRedis saat ini tidak mendukung konfigurasi filter Bloom. Untuk menangani data duplikat, tambahkan node sebelum atau sesudah node sinkronisasi dalam alur kerja Anda (misalnya, Shell, Python, atau PyODPS) untuk melakukan deduplikasi.
Pemetaan Tipe Data
Redis mendukung nilai dengan tipe data berikut: STRING, LIST, SET, ZSET (set terurut), dan HASH. Untuk informasi lebih lanjut tentang Redis, kunjungi redis.io.
Mengembangkan Tugas Sinkronisasi Data
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Konfigurasikan tugas di Antarmuka tanpa kode dan Konfigurasikan tugas di editor kode.
Untuk informasi tentang semua parameter yang dikonfigurasi dan kode yang dijalankan ketika Anda menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi batch, lihat Lampiran: Kode dan parameter.
Lampiran: 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 Konfigurasikan tugas di editor kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasikan untuk sumber data ketika Anda mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Kode untuk Redis Writer
Dalam kode berikut, tugas sinkronisasi batch dikonfigurasi untuk menyinkronkan data dari database MySQL ke Redis.
{
"type":"job",
"version":"2.0", // Nomor versi.
"steps":[
{ // Contoh kode berikut digunakan untuk mengonfigurasi Reader. Untuk informasi lebih lanjut tentang parameter Reader, lihat topik Reader terkait.
"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"
},
{// Contoh kode berikut digunakan untuk mengonfigurasi Writer:
"stepType":"redis", // Nama plugin. Atur nilainya menjadi redis.
"parameter":{ // Konfigurasikan parameter berikut dari Redis Writer.
"expireTime":{ // Waktu kedaluwarsa nilai yang disimpan di Redis. Atur nilainya menjadi periode waktu dalam detik atau stempel waktu UNIX. Misalnya, Anda dapat mengatur parameter ini menjadi "seconds":"1000".
},
"keyFieldDelimiter":"u0001", // Pembatas yang ingin Anda gunakan untuk memisahkan kunci ketika Redis Writer menulis data ke Redis.
"dateFormat":"yyyy-MM-dd HH:mm:ss",// Format penulisan data tipe DATE ke Redis oleh Redis Writer.
"datasource":"xc_mysql_demo2", // Nama sumber data. Nama tersebut harus sama dengan nama sumber data yang telah Anda tambahkan.
"envType": 0, // Jenis lingkungan. Atur nilainya menjadi 1 untuk lingkungan pengembangan. Atur nilainya menjadi 0 untuk lingkungan produksi.
"writeMode":{ // Mode penulisan data ke Redis.
"type": "string", // Tipe data nilai yang ingin Anda tulis ke Redis.
"mode":"set", // Mode penulisan data tipe yang ditentukan oleh parameter type ke Redis.
"valueFieldDelimiter":"u0001", // Pembatas yang ingin Anda gunakan untuk memisahkan nilai kolom.
},
"keyIndexes":[0,1], // Indeks kolom sumber yang digunakan sebagai kunci ketika Redis Writer menulis data ke Redis. Dalam contoh ini, nilai diatur ke [0,1], yang menunjukkan bahwa kolom pertama dan kedua dari data sumber digunakan sebagai kunci.
"batchSize":"1000" // Jumlah catatan data yang ditulis sekaligus.
"column": [ // Jika Anda mengatur parameter type menjadi string dan parameter mode menjadi set dan tidak mengonfigurasi parameter column, nilai yang akan ditulis ke Redis adalah string yang dihubungkan oleh pembatas. Misalnya, untuk file sumber CSV, jika nilai id adalah 1, nilai name adalah Bob, nilai age adalah 18, dan nilai sex adalah male, nilai yang akan ditulis ke Redis adalah "18::male". Jika Anda mengatur parameter type menjadi string dan parameter mode menjadi set dan mengonfigurasi parameter column dalam format berikut, nilai-nilai tersebut ditulis ke Redis dalam format JSON, seperti {"id":1,"name":"Bob","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 maksimum catatan data kotor yang diizinkan.
},
"speed":{
"throttle":true,// Menentukan apakah throttling diaktifkan. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle diatur ke true.
"concurrent":1, // Jumlah maksimum thread paralel.
"mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Parameter dalam Kode untuk Redis Writer
Parameter | Deskripsi | Diperlukan | Nilai default |
expireTime | Waktu kedaluwarsa nilai yang disimpan di Redis. Satuan: detik. Jika Anda tidak mengonfigurasi parameter ini, nilai default Anda dapat menentukan nilai parameter expireTime dalam salah satu mode berikut:
| Tidak | 0 |
keyFieldDelimiter | Pembatas yang ingin Anda gunakan untuk memisahkan kunci ketika Redis Writer menulis data ke Redis. Contoh: key=key1\u0001id. Jika beberapa kunci perlu digabungkan, parameter ini diperlukan. Jika data hanya berisi satu kunci, parameter ini tidak diperlukan. | Tidak | \u0001 |
dateFormat | Format penulisan data tipe DATE ke Redis oleh Redis Writer. Atur nilainya menjadi yyyy-MM-dd HH:mm:ss. | Tidak | Tidak ada nilai default |
datasource | Nama sumber data. Nama tersebut harus sama dengan nama sumber data yang telah Anda tambahkan. | Ya | Tidak ada nilai default |
selectDatabase | Database tempat Anda ingin menulis data. Database pertama dalam kluster Redis adalah database 0. Data Integration tidak mengizinkan Anda memilih database tempat Anda ingin menulis data dalam kluster Redis. | Tidak | database 0 |
writeMode | Mode penulisan data ke Redis oleh Redis Writer. Redis Writer dapat menulis nilai dengan tipe berikut:
Nilai parameter writeMode bervariasi berdasarkan tipe data nilai yang ingin Anda tulis ke Redis. Untuk informasi lebih lanjut, lihat Deskripsi parameter writeMode. Catatan Ketika Anda mengonfigurasi Redis Writer, Anda hanya dapat menentukan satu tipe data untuk parameter writeMode. Jika Anda tidak mengonfigurasi parameter ini, nilai default string digunakan. | Tidak | string |
keyIndexes | Indeks kolom sumber yang digunakan sebagai kunci. Indeks dimulai dari 0. Ini menunjukkan bahwa indeks kolom pertama adalah 0, indeks kolom kedua adalah 1, dan seterusnya.
Catatan Setelah Anda mengonfigurasi parameter keyIndexes, Redis Writer menggunakan kolom yang tersisa sebagai nilai. Jika Anda ingin menyinkronkan hanya beberapa kolom di sumber, tentukan nama kolom ketika Anda mengonfigurasi Reader terkait. | Ya | Tidak ada nilai default |
batchSize | Jumlah catatan data yang ditulis sekaligus. Atur parameter ini ke nilai yang sesuai berdasarkan kebutuhan bisnis Anda. Ini sangat mengurangi interaksi antara Data Integration dan Redis serta meningkatkan throughput. Jika Anda mengatur parameter ini ke nilai yang terlalu besar, kesalahan out of memory (OOM) mungkin terjadi selama sinkronisasi data. | Tidak didukung. | 1.000 |
timeout | Periode timeout koneksi ke Redis ketika data ditulis ke Redis. Satuan: milidetik. | Tidak didukung. | 30.000 |
redisMode | Mode penyebaran Redis. Nilai valid:
Catatan Kelompok sumber daya tanpa server dan kelompok sumber daya eksklusif untuk Data Integration didukung. Kami merekomendasikan Anda menggunakan kelompok sumber daya tanpa server. | Tidak | Tidak ada nilai default |
column | Nama kolom tempat Anda ingin menulis data. Jika Anda mengatur parameter type menjadi string dan parameter mode menjadi set, perhatikan poin-poin berikut:
| Tidak | Tidak ada nilai default |
Deskripsi Parameter writeMode
Ketika Anda mengonfigurasi Redis Writer, Anda hanya dapat menentukan satu tipe data untuk parameter writeMode. Jika Anda tidak mengonfigurasi parameter ini, nilai default string digunakan.
Tipe data nilai | Parameter type (diperlukan) | Parameter mode (diperlukan) | Parameter valueFieldDelimiter (opsional) | Contoh konfigurasi dari parameter writeMode |
STRING | Atur parameter type menjadi | Merupakan mode yang digunakan Redis Writer untuk menulis data tipe STRING ke Redis. Perhatikan aturan berikut saat Anda mengatur parameter type ke string:
| Pembatas yang ingin Anda gunakan untuk memisahkan nilai kolom. Nilai default:
| |
LIST | Atur parameter type menjadi | mode yang digunakan Redis Writer untuk menulis data tipe LIST ke Redis. Nilai yang valid:
| | |
SET | Atur parameter type menjadi | Mode yang digunakan Redis Writer untuk menulis data dengan tipe SET ke Redis. Perhatikan aturan berikut saat Anda mengatur parameter type ke set:
| | |
ZSET (set terurut) | Atur parameter type menjadi | Mode di mana Redis Writer menulis data tipe ZSET ke Redis. Perhatikan aturan berikut saat Anda mengatur parameter tipe ke zset:
| Anda tidak perlu mengonfigurasi parameter ini. | Catatan Jika tipe data diatur ke ZSET, setiap baris data sumber harus memenuhi persyaratan berikut: Sebuah baris hanya dapat berisi satu skor dan satu nilai selain dari kunci. Skor harus ditempatkan sebelum nilai. Dengan cara ini, Redis Writer dapat membedakan antara skor dan nilai. |
HASH | Atur parameter type menjadi | Mode yang digunakan Redis Writer untuk menulis data tipe HASH ke Redis. Perhatikan aturan berikut saat Anda mengatur parameter tipe ke hash:
| Anda tidak perlu mengonfigurasi parameter ini. | Catatan Jika tipe data diatur ke HASH, setiap baris data sumber harus memenuhi persyaratan berikut: Sebuah baris hanya dapat berisi satu atribut dan satu nilai selain dari kunci. Atribut harus ditempatkan sebelum nilai. Dengan cara ini, Redis Writer dapat membedakan antara atribut dan nilai. |