全部产品
Search
文档中心

DataWorks:Sumber data Sensors Data

更新时间:Jul 02, 2025

DataWorks menyediakan Sensors Data Writer untuk menulis data ke sumber data Sensors Data. Topik ini menjelaskan kemampuan sinkronisasi data ke sumber data Sensors Data.

Batasan

  • Sumber data Sensors Data hanya didukung di wilayah Tiongkok (Shenzhen). Dukungan untuk wilayah lain akan tersedia di masa mendatang.

  • DataWorks tidak menyediakan Reader khusus untuk membaca data dari sumber data Sensors Data. Anda dapat menggunakan Hive Reader atau HDFS Reader untuk membaca data berdasarkan tipe penyimpanan sumber data Sensors Data.

Mengembangkan tugas sinkronisasi data

Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi data, lihat bagian-bagian berikut. Untuk detail pengaturan parameter, lihat tip info setiap parameter pada tab konfigurasi tugas.

Menambahkan sumber data

Mengonfigurasi tugas sinkronisasi batch untuk menyinkronkan data tabel tunggal

Lampiran: Kode dan parameter

Lampiran: Mengonfigurasi tugas sinkronisasi batch menggunakan editor kode

Kode untuk Sensors Data Writer

{
    "type": "job",
    "steps": [
        {
            "stepType": "mysql",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
             "stepType": "sahistory", // Nama plugin.
             "parameter": {
                "type": "item", // Jenis data yang ditulis ke Sensors Data. Nilai valid: track, user, dan item, yang menunjukkan events, users, dan properties dalam Sensors Data.
                     "item": {       // Jika Anda mengatur parameter type ke item, definisikan parameter item.
                    "itemType": "course", // Jenis item. Dalam contoh ini, parameter itemType disetel ke course.
                    "typeIsColumn": false, // Menentukan apakah nilai parameter itemType perlu ditentukan sebagai kolom dalam parameter column.
                    "itemIdColumn": "course_id" // Nama bidang yang menyimpan ID unik properti.
                },
                "column": [     // Menentukan pemetaan antara bidang dalam tabel sumber dan bidang dalam tabel tujuan.
                    {
                        "name": "course_id",    // Nama bidang dalam tabel tujuan. Dalam contoh ini, nama bidang adalah course_id.
                        "index": 0              // Tulis data di bidang pertama dalam tabel sumber ke bidang course_id dalam tabel tujuan.
                    },
                    {
                        "name": "course_name",  // Nama bidang dalam tabel tujuan. Dalam contoh ini, nama bidang adalah course_name.
                        "index": 1              // Tulis data di bidang kedua dalam tabel sumber ke bidang course_name dalam tabel tujuan.
                    },
                    {
                        "name": "course_schedule",  // Nama bidang dalam tabel tujuan. Dalam contoh ini, nama bidang adalah course_schedule.
                        "index": 2                  // Tulis data di bidang ketiga dalam tabel sumber ke bidang course_schedule dalam tabel tujuan.
                        "dataConverters":[          // Konverter tipe data.
                               {
                                    "type": "Long2Date"   // Jenis konverter tipe data.
                                }
                          ]
                    }
                ],
                "sdkDataAddress": "http://bigdata-project.datasink.sensorsdata.cn/sa?project=default&token=1111111111111111", // URL Sensors Data tempat data yang diterima disimpan.
                  },
            "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 jika parameter throttle disetel ke true.
                        "concurrent": 2, // Jumlah maksimum thread paralel.
                        "mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
        }
    }
}

Parameter dalam kode untuk Sensors Data Writer

Parameter

Deskripsi

Diperlukan

Nilai default

type

Jenis data yang ditulis ke sumber data Sensors Data. Nilai valid: track, user, dan item, yang menunjukkan events, users, dan properties dalam Sensors Data. Nilai parameter type menentukan parameter yang dapat Anda gunakan untuk mendefinisikan tipe data.

Ya

Tidak ada nilai default

Jika Anda mengatur parameter type ke track, Anda dapat mengonfigurasi parameter berikut:

  • distinctIdColumn (opsional): Nama bidang yang menyimpan ID unik event dalam Sensors Data. Bidang tersebut juga harus ditentukan dalam parameter column sebagai atribut event, dan nilai atribut tidak boleh kosong.

  • eventName (opsional): Nama event dalam Sensors Data.

  • isLoginId (opsional): Menentukan apakah bidang yang menyimpan ID unik event juga menentukan ID login. ID login secara unik mengidentifikasi pengguna yang masuk ke platform Sensors Data. Nilai valid: true dan false. Nilai default: true.

Contoh kode:

"track": {  
"distinctIdColumn": "track_id",  
"eventName": "testEventName", 
"isLoginId": true
}

Jika Anda mengatur parameter type ke user, Anda dapat mengonfigurasi parameter berikut:

  • distinctIdColumn (opsional): Nama bidang yang menyimpan ID unik pengguna dalam Sensors Data. Bidang tersebut juga harus ditentukan dalam parameter column sebagai atribut pengguna, dan nilai atribut tidak boleh kosong.

  • isLoginId (opsional): Menentukan apakah bidang yang menyimpan ID unik event juga menentukan ID login. ID login secara unik mengidentifikasi pengguna yang masuk ke platform Sensors Data. Nilai valid: true dan false. Nilai default: true.

Contoh kode:

"user": {
"distinctIdColumn": "user_id", 
"isLoginId": true
}

Jika Anda mengatur parameter type ke item, Anda dapat mengonfigurasi parameter berikut:

  • itemIdColumn (opsional): Nama bidang yang menyimpan ID unik properti dalam Sensors Data. Bidang tersebut juga harus ditentukan dalam parameter column sebagai atribut properti, dan nilai atribut tidak boleh kosong.

  • itemType (opsional): Nama bidang yang menyimpan jenis item properti dalam Sensors Data. Jika bidang tersebut juga ditentukan dalam parameter column, jangan biarkan bidang tersebut kosong, dan atur parameter typeIsColumn ke true. Jika tidak, nilai konstan digunakan sebagai jenis item.

  • typeIsColumn (opsional): Menentukan apakah nilai parameter itemType perlu ditentukan sebagai kolom dalam parameter column. Nilai valid: true dan false. Nilai default: true.

Contoh kode:

"item": {
"itemIdColumn": "item_id", 
"itemType": "testItem",
"typeIsColumn": false
}

column

Pemetaan antara bidang dalam tabel sumber dan bidang dalam tabel tujuan. Pemetaan ditentukan oleh parameter name dan index.

  • name (diperlukan): Nama bidang dalam tabel tujuan.

  • index (diperlukan): Indeks yang menunjukkan urutan bidang dalam tabel sumber. Misalnya, bidang pertama dalam tabel sumber ditunjukkan oleh indeks 0.

Ya

Tidak ada nilai default

sdkDataAddress

URL tempat data disimpan, yaitu URL tempat Sensors Data menerima data. URL dalam format http://localhost:8106/sa?project=default. Untuk memperoleh URL, masuk ke platform Sensors Data dan lakukan langkah-langkah berikut: Di bilah navigasi atas, pilih More > Basic Settings. Pada tab Basic Settings, klik Data Integration. Di bagian Server tracking halaman yang muncul, klik Copy receive address of data.

Ya

Tidak ada nilai default

Parameter lainnya

DataWorks memungkinkan Anda menentukan konverter tipe data saat mengonfigurasi Sensors Data Writer menggunakan editor kode. Anda dapat menentukan jenis konverter tipe data yang ingin digunakan untuk mengonversi tipe data data yang akan ditulis ke Sensors Data. Tabel berikut menjelaskan jenis konverter yang didukung dan contoh pengaturan parameter.

Jenis konverter

Deskripsi fitur

Contoh pengaturan

Deskripsi parameter

Date2Str

Mengonversi data tipe DATE ke data tipe STRING.

// Contoh kode
"dataConverters":[
    {
        "type": "Date2Str",
        "param": {
            "pattern":"yyyy-MM-dd"
        }
    }
]

pattern (opsional): Format tanggal data setelah konversi.

Date2Long

Mengonversi data tipe DATE ke data tipe LONG.

"dataConverters":[
    {
        "type": "Date2Long"
    }
]

Tidak tersedia.

Number2Str

Mengonversi data tipe NUMBER ke data tipe STRING.

// Contoh kode
"dataConverters":[
    {
        "type": "Number2Str"
    }
]

Tidak tersedia.

Str2Long

Mengonversi data tipe STRING ke data tipe LONG.

// Contoh kode
"dataConverters":[
    {
        "type": "Str2Long"
    }
]

Tidak tersedia.

Str2Date

Mengonversi data tipe STRING ke data tipe DATE.

// Contoh kode
"dataConverters":[
    {
        "type": "Str2Date",
        "param": {
            "pattern":"yyyy-MM-dd",
            "formats":["yyyyMMdd","yyyyMMddHHmmss"]
        }
    }
]
  • pattern (opsional): Format tanggal dan waktu data setelah konversi. Nilai valid: yyyy-MM-dd, yyyy-MM-dd HH:mm:ss, yyyy-MM-dd HH:mm:ss.SSS yyyy-MM, yyyyMM, yyyyMMddHHmmss, dan yyyyMMddHHmmssSSS.

  • formats (opsional): Format tanggal dan waktu yang didukung untuk data tipe STRING. Parameter ini memungkinkan Anda menentukan lebih banyak format tanggal dan waktu jika nilai parameter pattern tidak memenuhi kebutuhan Anda.

BigInt2Date

Mengonversi data tipe BIGINT ke data tipe DATE.

// Contoh kode
"dataConverters":[
    {
        "type": "BigInt2Date"
    }
]

Tidak tersedia.

Str2Int

Mengonversi data tipe STRING ke data tipe INT.

// Contoh kode
"dataConverters":[
    {
        "type": "Str2Int"
    }
]

Tidak tersedia.

Str2Double

Mengonversi data tipe STRING ke data tipe DOUBLE.

// Contoh kode
"dataConverters":[
    {
        "type": "Str2Double"
    }
]

Tidak tersedia.

Str2BigDecimal

Mengonversi data tipe STRING ke data tipe BIGDECIMAL.

// Contoh kode
"dataConverters":[
    {
        "type": "Str2BigDecimal"
    }
]

Tidak tersedia.

IfNull2Default

Mengonversi nilai NULL ke nilai konstan yang ditentukan oleh parameter default, lalu mengonversi nilai konstan ke data tipe data tertentu menggunakan sub-konverter yang tersemat dalam konverter IfNull2Default.

// Contoh kode
// Mengonversi nilai NULL atau string kosong ke string 2021-07-01, mengonversi string ke waktu dalam format yyyy-MM-dd, lalu mengonversi waktu ke timestamp dalam milidetik tipe LONG.
"dataConverters":[
    {
        "type": "IfNull2Default",
        "param": {
            "default": "2021-07-01",
            "dataConverters": [
                {
                    "type": "Str2Date",
                    "param": {
                        "pattern":"yyyy-MM-dd"
                    }
                },
                {
                    "type": "Date2Long"
                }
            ]
        }
    }
]

dataConverters: sub-konverter yang digunakan untuk mengonversi nilai konstan default ke data tipe data tertentu. Anda dapat menentukan beberapa sub-konverter tersemat untuk melakukan konversi tipe data beberapa kali.

NotNull2Null

Mengonversi nilai non-NULL menjadi nilai NULL.

// Contoh kode
"dataConverters":[
    {
        "type": "NotNull2Null"
    }
]

Tidak tersedia.

IfElse

Memeriksa apakah nilai bidang memenuhi kondisi IF tertentu. Jika nilai bidang memenuhi kondisi, nilai pengembalian ditunjukkan oleh parameter value. Jika tidak, nilai pengembalian ditunjukkan oleh parameter else.

// Contoh kode
"dataConverters":[
                  {
                    "type": "IfElse",
                    "param": {
                      "if": "return true;",
                      "value":"if(resolvedValues.get(\"check_card_type\") == 'NAN' && value == null ){return true;} if(resolvedValues.get(\"check_card_type\") == 'ID card'){  if(java.util.regex.Pattern.compile(regEx).matcher(value).find() && java.lang.Integer.parseInt(value.substring(6, 10)) >=1900 && java.lang.Integer.parseInt(value.substring(6, 10)) <= nowYear){return true;}} return null;",
                      "sharedPool":"var nowYear = java.time.LocalDate.now().getYear(); var regEx = \"(110|120|310|510|150|650|540|640|450|230|220|210|120|140|630|370|410|320|340|320|340|330|350|360|430|420|440|460|620|610|520|530)\\\\d{7}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\\\\d{3}(\\\\d|X)\"; "
                    }
                  }
                ]
  • if: kondisi IF. Informasi yang Anda masukkan diproses dalam JavaScript. Pastikan hasilnya bertipe BOOLEAN. Bidang tempat data ditulis dalam sumber data Sensors Data, nilai yang diperoleh oleh plugin, parameter param dari konverter data, dan bidang yang diurai dalam struktur data map dapat dilewatkan ke ekspresi. Anda dapat menggunakan parameter targetColumnName, value, param, dan resolvedValues untuk mendapatkan nilai-nilai ini.

  • value: nilai pengembalian jika kondisi IF terpenuhi. Informasi yang Anda masukkan diproses dalam JavaScript. Bidang tempat data ditulis dalam sumber data Sensors Data, nilai yang diperoleh oleh plugin, parameter param dari konverter data, dan bidang yang diurai dalam struktur data map dapat dilewatkan ke ekspresi. Anda dapat menggunakan parameter targetColumnName, value, param, dan resolvedValues untuk mendapatkan nilai-nilai ini.

  • else: nilai pengembalian jika kondisi IF tidak terpenuhi. Informasi yang Anda masukkan diproses dalam JavaScript. Bidang tempat data ditulis dalam sumber data Sensors Data, nilai yang diperoleh oleh plugin, parameter param dari konverter data, dan bidang yang diurai dalam struktur data map dapat dilewatkan ke ekspresi. Anda dapat menggunakan parameter targetColumnName, value, param, dan resolvedValues untuk mendapatkan nilai-nilai ini.

  • sharedPool: variabel atau nilai konstan yang dapat digunakan dalam parameter if, value, dan else. Informasi yang Anda masukkan diproses dalam JavaScript.

IfNull2Column

Mengonversi nilai NULL ke nilai parameter targetColumnName.

// Contoh kode
"dataConverters": [
    {
        "type": "IfNull2Column",
        "param": {
            "targetColumnName":"age1"
        }
    }
]

targetColumnName: nama bidang dalam Sensors Data.

Penting

Pastikan Anda mengonfigurasi bidang yang ditentukan oleh parameter targetColumnName sebelum mengonfigurasi bidang tempat konverter IfNull2Column berlaku.