Data Integration di DataWorks memungkinkan Anda menulis data ke Sensors Data menggunakan Sensors Data Writer. Topik ini menjelaskan kemampuan sinkronisasi data untuk Sensors Data di DataWorks.
Batasan
Saat ini, Anda hanya dapat menambahkan sumber data Sensors Data di wilayah China (Shenzhen). Dukungan untuk wilayah lain akan segera tersedia.
Anda tidak dapat langsung membaca data dari Sensors Data. Anda harus menggunakan plugin, seperti Hive atau HDFS, untuk membaca data berdasarkan tipe penyimpanan data Sensors Data.
Add a data source
Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk dalam Data source management. Anda dapat melihat parameter descriptions di konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Kembangkan tugas sinkronisasi data
Untuk informasi mengenai titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Konfigurasikan tugas sinkronisasi offline tabel tunggal
Untuk prosedurnya, lihat Configure a task in the code editor.
Untuk semua parameter dan contoh skrip editor kode, lihat Appendix 1: Script demo and parameter descriptions.
Appendix 1: Script demo dan deskripsi parameter
Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi selengkapnya, lihat Configure a task in the code editor. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat Anda mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Contoh skrip Writer
{
"type": "job",
"steps": [
{
"stepType": "mysql",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "sahistory", // Nama plugin.
"parameter": {
"type": "item", // Tipe data yang akan ditulis ke Sensors Data. Nilai yang valid: track, user, dan item. Nilai-nilai ini masing-masing berkorespondensi dengan events, users, dan properties di Sensors Data.
"item": { // Karena parameter type diatur ke item, Anda harus mendefinisikan parameter item di sini.
"itemType": "course", // Mendefinisikan tipe item sebagai course.
"typeIsColumn": false, // Menentukan apakah tipe item muncul dalam parameter column.
"itemIdColumn": "course_id" // Mendefinisikan nama bidang untuk ID item.
},
"column": [ // Mendefinisikan pemetaan bidang antara tabel sumber dan tabel tujuan.
{
"name": "course_id", // Nama kolom di tabel tujuan adalah course_id.
"index": 0 // Menulis data dari kolom pertama tabel sumber ke kolom course_id tabel tujuan.
},
{
"name": "course_name", // Nama kolom di tabel tujuan adalah course_name.
"index": 1 // Menulis data dari kolom kedua tabel sumber ke kolom course_name tabel tujuan.
},
{
"name": "course_schedule", // Nama kolom di tabel tujuan adalah course_schedule.
"index": 2 // Menulis data dari kolom ketiga tabel sumber ke kolom course_schedule tabel tujuan.
"dataConverters":[ // Konverter yang melakukan konversi tipe data.
{
"type": "Long2Date" // Tipe konverter.
}
]
}
],
"sdkDataAddress": "http://bigdata-project.datasink.sensorsdata.cn/sa?project=default&token=1111111111111111", // Jalur penyimpanan data, yaitu URL yang digunakan Sensors Data untuk menerima data.
},
"name": "Writer",
"category": "writer"
}
],
},
"setting": {
"errorLimit": {
"record": "0" // Jumlah catatan error.
},
"speed": {
"throttle":true,// Jika throttle bernilai false, parameter mbps tidak berlaku, dan pembatasan kecepatan dinonaktifkan. Jika throttle bernilai true, pembatasan kecepatan diaktifkan.
"concurrent":2, // Konkurensi pekerjaan.
"mbps":"12"// Laju pembatasan kecepatan. Di sini, 1 mbps = 1 MB/s.
}
}
}Parameter skrip Writer
Parameter | Deskripsi | Wajib | Bawaan |
type | Tipe data yang akan ditulis ke sistem Sensors Data. Nilai yang valid: track, user, dan item. Nilai-nilai ini masing-masing berkorespondensi dengan events, users, dan properties di sistem Sensors Data. Nilai parameter type memengaruhi definisi parameter untuk tipe data tersebut. | Ya | Tidak ada |
Jika type diatur ke track, parameter opsional berikut tersedia:
Kode berikut memberikan contoh: | |||
Jika type diatur ke user, parameter opsional berikut tersedia:
Kode berikut memberikan contoh: | |||
Jika type diatur ke item, parameter opsional berikut tersedia:
Kode berikut memberikan contoh: | |||
column | Mendefinisikan pemetaan antara bidang tabel sumber dan tabel tujuan menggunakan parameter index dan name.
| Ya | Tidak ada |
sdkDataAddress | Jalur penyimpanan data, yaitu URL yang digunakan Sensors Data untuk menerima data. Format URL-nya adalah: | Ya | Tidak ada |
Appendix 2: Parameter lainnya
Sensors Data Writer memungkinkan Anda mengonversi tipe data suatu bidang sebelum menulisnya ke sumber data tujuan. Untuk melakukannya, tambahkan konverter data (dataConverters) dan definisikan tipe konverter (type) dalam skrip. Tabel berikut menjelaskan tipe konverter, parameter, serta memberikan contoh.
Tipe konverter | Deskripsi | Contoh | Deskripsi parameter |
Date2Str | Mengonversi data bertipe Date ke tipe String. | | pattern (Opsional): Format waktu data String setelah dikonversi dari data Date. |
Date2Long | Mengonversi data bertipe Date ke tipe Long. | | Tidak ada |
Number2Str | Mengonversi data bertipe numerik ke tipe String. | | Tidak ada |
Str2Long | Mengonversi data bertipe String ke tipe Long. | | Tidak ada |
Str2Date | Mengonversi data bertipe String ke tipe Date. | |
|
BigInt2Date | Mengonversi data bertipe BigInt ke tipe Date. | | Tidak ada |
Str2Int | Mengonversi data bertipe String ke tipe Int. | | Tidak ada |
Str2Double | Mengonversi data bertipe String ke tipe Double. | | Tidak ada |
Str2BigDecimal | Mengonversi data bertipe String ke tipe BigDecimal. | | Tidak ada |
IfNull2Default | Jika nilai bidang bernilai null, atur nilai bidang tersebut ke konstanta yang didefinisikan dalam parameter default. Anda juga dapat menyarangkan konverter lain di dalam konverter IfNull2Default untuk lebih lanjut mengonversi konstanta tersebut ke tipe data target. | | dataConverters: Konverter data yang mengonversi nilai default dari parameter default ke tipe yang didefinisikan dalam parameter type. Anda dapat menyarangkan beberapa dataConverters untuk melakukan beberapa konversi data. |
NotNull2Null | Jika nilai bidang tidak null, konversi nilai bidang tersebut menjadi null. | | Tidak ada |
IfElse | Ekspresi kondisional if yang memeriksa apakah nilai bidang memenuhi suatu kondisi. Jika kondisi terpenuhi, nilai yang didefinisikan dalam parameter value dikembalikan. Jika kondisi tidak terpenuhi, nilai yang didefinisikan dalam parameter else dikembalikan. | |
|
IfNull2Column | Jika nilai bidang bernilai null, gunakan nilai kolom yang ditentukan oleh parameter targetColumnName sebagai nilai untuk bidang saat ini. | | targetColumnName: Nama kolom yang akan diimpor ke Sensors Data. Penting Kolom yang ditentukan oleh targetColumnName harus dikonfigurasi sebelum kolom yang menggunakan konverter IfNull2Column. |