Tablestore adalah layanan penyimpanan data NoSQL yang dibangun di atas Sistem File Terdistribusi Apsara Alibaba Cloud. Sumber data Tablestore menyediakan saluran dua arah untuk membaca dan menulis data ke Tablestore. Topik ini menjelaskan kemampuan sinkronisasi data yang disediakan oleh DataWorks untuk Tablestore.
Batasan
Plugin Tablestore Reader dan Writer memungkinkan Anda membaca dan menulis data ke Tablestore. Plugin ini menyediakan dua metode akses data, mode baris dan mode kolom, untuk tabel lebar dan tabel deret waktu.
Mode kolom: Dalam model multi-versi Tablestore, data dalam tabel diorganisasikan dalam model tiga tingkat: . Sebuah baris dapat memiliki sejumlah kolom, dan nama kolom tidak tetap. Setiap kolom dapat memiliki beberapa versi, dengan setiap versi memiliki timestamp tertentu (nomor versi). Dalam mode kolom, data yang akan dibaca berada dalam format empat-tupel yang terdiri dari nilai kunci utama, nama kolom, timestamp, dan nilai kolom. Data yang akan ditulis juga berada dalam format empat-tupel yang terdiri dari nilai kunci utama, nama kolom, timestamp, dan nilai kolom.
Mode baris: Dalam mode ini, setiap catatan yang diperbarui diekspor sebagai baris dalam format (nilai kunci utama, nilai kolom).
Dalam mode baris, setiap baris data sesuai dengan sebuah catatan dalam tabel Tablestore. Data yang ditulis dalam mode baris mencakup nilai kolom kunci utama dan nilai kolom atribut.
Kolom Tablestore terdiri dari kolom kunci utama (primaryKey) dan kolom atribut (column). Urutan kolom sumber harus sesuai dengan urutan kolom kunci utama dan kolom atribut dalam tabel Tablestore tujuan. Jika tidak, terjadi kesalahan pemetaan kolom.
Tablestore Reader membagi rentang data yang akan dibaca dari tabel menjadi N tugas, di mana N adalah tingkat konkurensi untuk sinkronisasi data. Setiap tugas dijalankan oleh thread Tablestore Reader.
Tipe bidang yang didukung
Tablestore Reader dan Tablestore Writer mendukung semua tipe data Tablestore. Tabel berikut mencantumkan pemetaan tipe data.
Kategori tipe | Tipe data Tablestore |
Bilangan bulat | INTEGER |
Bilangan titik mengambang | DOUBLE |
String | STRING |
Boolean | BOOLEAN |
Biner | BINARY |
Tablestore tidak mendukung tipe tanggal. Lapisan aplikasi biasanya menggunakan tipe Long untuk menyimpan stempel waktu UNIX.
Anda harus mengonfigurasi data tipe INTEGER sebagai INT dalam editor kode. DataWorks kemudian mengubahnya menjadi tipe INTEGER. Jika Anda mengonfigurasi tipe sebagai INTEGER secara langsung, kesalahan dilaporkan dalam log dan tugas gagal.
Tambahkan sumber data
Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk dalam Manajemen Sumber Data. Anda dapat melihat tip informasi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Mengembangkan tugas sinkronisasi data
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Panduan konfigurasi tugas sinkronisasi offline tabel tunggal
Untuk informasi lebih lanjut, lihat Konfigurasikan Tugas di Editor Kode.
Untuk semua parameter dan demo skrip untuk editor kode, lihat Lampiran II: Demo Skrip Writer dan Deskripsi Parameter.
Lampiran I: Demo skrip Reader 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 lebih lanjut, lihat Konfigurasikan Tugas di Editor Kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Demo skrip Reader
Konfigurasi pembacaan mode baris untuk tabel lebar
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"ots",// Nama plugin.
"parameter":{
"datasource":"",// Sumber data.
"newVersion":"true",// Gunakan versi baru otsreader.
"mode": "normal",// Baca data dalam mode baris.
"isTimeseriesTable":"false",// Konfigurasikan tabel sebagai tabel lebar (bukan tabel deret waktu).
"column":[// Bidang.
{
"name":"column1"// Nama bidang.
},
{
"name":"column2"
},
{
"name":"column3"
},
{
"name":"column4"
},
{
"name":"column5"
}
],
"range":{
"split":[
{
"type":"STRING",
"value":"beginValue"
},
{
"type":"STRING",
"value":"splitPoint1"
},
{
"type":"STRING",
"value":"splitPoint2"
},
{
"type":"STRING",
"value":"splitPoint3"
},
{
"type":"STRING",
"value":"endValue"
}
],
"end":[
{
"type":"STRING",
"value":"endValue"
},
{
"type":"INT",
"value":"100"
},
{
"type":"INF_MAX"
},
{
"type":"INF_MAX"
}
],
"begin":[
{
"type":"STRING",
"value":"beginValue"
},
{
"type":"INT",
"value":"0"
},
{
"type":"INF_MIN"
},
{
"type":"INF_MIN"
}
]
},
"table":""// Nama tabel.
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah catatan kesalahan.
},
"speed":{
"throttle":true,// false menunjukkan tanpa pembatasan kecepatan. Pembatasan kecepatan di bawah ini tidak berlaku. true menunjukkan pembatasan kecepatan.
"concurrent":1, // Konkurensi pekerjaan.
"mbps":"12"// Kecepatan pembatasan.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Konfigurasi pembacaan mode baris untuk tabel deret waktu
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"ots",// Nama plugin.
"parameter":{
"datasource":"",// Sumber data.
"table": "",// Nama tabel.
// Untuk membaca data deret waktu, mode harus diatur ke normal.
"mode": "normal",
// Untuk membaca data deret waktu, newVersion harus diatur ke true.
"newVersion": "true",
// Konfigurasikan tabel sebagai tabel deret waktu.
"isTimeseriesTable":"true",
// measurementName: Nama pengukuran dari mana data deret waktu dibaca. Parameter ini opsional. Jika dibiarkan kosong, data dibaca dari seluruh tabel.
"measurementName":"measurement_1",
"column": [
{
"name": "_m_name"
},
{
"name": "tagA",
"is_timeseries_tag":"true"
},
{
"name": "double_0",
"type":"DOUBLE"
},
{
"name": "string_0",
"type":"STRING"
},
{
"name": "long_0",
"type":"INT"
},
{
"name": "binary_0",
"type":"BINARY"
},
{
"name": "bool_0",
"type":"BOOL"
},
{
"type":"STRING",
"value":"testString"
}
]
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah catatan kesalahan.
},
"speed":{
"throttle":true,// false menunjukkan tanpa pembatasan kecepatan. Pembatasan kecepatan di bawah ini tidak berlaku. true menunjukkan pembatasan kecepatan.
"concurrent":1, // Konkurensi pekerjaan.
"mbps":"12"// Kecepatan pembatasan.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Konfigurasi pembacaan mode kolom untuk tabel lebar
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"ots",// Nama plugin.
"parameter":{
"datasource":"",// Sumber data.
"table":"",// Nama tabel.
"newVersion":"true",// Versi baru otsreader.
"mode": "multiversion",// Mode multi-versi.
"column":[// Nama kolom yang akan diekspor. Mereka harus berupa kolom atribut.
{"name":"mobile"},
{"name":"name"},
{"name":"age"},
{"name":"salary"},
{"name":"marry"}
],
"range":{// Rentang untuk diekspor.
"begin":[
{"type":"INF_MIN"},
{"type":"INF_MAX"}
],
"end":[
{"type":"INF_MAX"},
{"type":"INF_MIN"}
],
"split":[
]
},
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah catatan kesalahan.
},
"speed":{
"throttle":true,// false menunjukkan tanpa pembatasan kecepatan. Pembatasan kecepatan di bawah ini tidak berlaku. true menunjukkan pembatasan kecepatan.
"concurrent":1, // Konkurensi pekerjaan.
"mbps":"12"// Kecepatan pembatasan.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Konfigurasi parameter umum skrip Reader
Parameter | Deskripsi | Diperlukan | Nilai default |
endpoint | Endpoint server Tablestore. Untuk informasi lebih lanjut, lihat Endpoints. | Ya | Tidak ada |
accessId | ID AccessKey untuk Tablestore. | Ya | Tidak ada |
accessKey | Rahasia AccessKey untuk Tablestore. | Ya | Tidak ada |
instanceName | Nama instans Tablestore. Instans adalah entitas yang Anda gunakan untuk mengelola layanan Tablestore. Setelah Anda mengaktifkan Tablestore, Anda harus membuat instans di konsol. Kemudian, Anda dapat membuat dan mengelola tabel dalam instans tersebut. Instans adalah unit dasar untuk manajemen sumber daya di Tablestore. Kontrol akses dan pengukuran sumber daya untuk aplikasi dilakukan pada tingkat instans. | Ya | Tidak ada |
table | Nama tabel dari mana data dibaca. Anda hanya dapat menentukan satu tabel. Tablestore tidak mendukung sinkronisasi beberapa tabel. | Ya | Tidak ada |
newVersion | Versi plugin Tablestore Reader yang digunakan.
Versi baru Tablestore Reader mendukung fitur baru dan mengonsumsi lebih sedikit sumber daya sistem. Kami merekomendasikan agar Anda menggunakan versi baru Tablestore Reader. Plugin baru kompatibel dengan konfigurasi plugin lama. Ini berarti tugas lama dapat berjalan seperti yang diharapkan setelah Anda menambahkan konfigurasi newVersion=true. | Tidak | false |
mode | Mode untuk membaca data. Mode berikut didukung:
Parameter ini berlaku hanya ketika newVersion:true dikonfigurasikan. Versi lama Tablestore Reader mengabaikan konfigurasi mode dan hanya mendukung mode baris. | Tidak | normal |
isTimeseriesTable | Menentukan apakah tabel data adalah tabel data deret waktu.
Parameter ini berlaku hanya ketika newVersion:true & mode:normal dikonfigurasikan. Versi lama Tablestore Reader tidak mendukung tabel deret waktu. Tabel deret waktu tidak dapat dibaca dalam mode kolom. | Tidak | false |
Konfigurasi parameter tambahan skrip Reader
Tablestore Reader mendukung pembacaan dari tabel lebar dalam mode baris, pembacaan dari tabel deret waktu dalam mode baris, dan pembacaan dari tabel lebar dalam mode kolom. Bagian berikut menjelaskan konfigurasi tambahan untuk setiap mode.
Parameter pembacaan mode baris untuk tabel lebar
Parameter | Deskripsi | Diperlukan | Nilai default |
column | Himpunan nama kolom yang akan disinkronkan dari tabel yang dikonfigurasi. Gunakan array JSON untuk menggambarkan informasi bidang. Karena Tablestore adalah sistem NoSQL, Anda harus menentukan nama bidang saat Tablestore Reader membaca data.
| Ya | Tidak ada |
begin dan end | Parameter begin dan end menentukan rentang data yang akan dibaca dari tabel Tablestore. begin dan end menggambarkan distribusi interval kunci utama Tablestore. Untuk interval tak terbatas, Anda dapat menggunakan Catatan
Sebagai contoh, pertimbangkan membaca data dari tabel Tablestore dengan tiga kolom kunci utama:
| Tidak | (INF_MIN, INF_MAX) |
split | Ini adalah item konfigurasi lanjutan. Kami tidak merekomendasikan menggunakannya dalam kasus normal. Anda dapat mengonfigurasi parameter split untuk menentukan rentang data untuk sharding. Anda dapat menggunakan aturan pemisahan kustom jika terjadi hot spot dalam penyimpanan data Tablestore. Perhatikan konfigurasi tugas berikut sebagai contoh: Saat tugas berjalan, data dibagi menjadi enam segmen dan dibaca secara bersamaan. Kami merekomendasikan agar jumlah segmen lebih besar dari konkurensi tugas. | Tidak | Jika parameter split tidak dikonfigurasikan, logika pemisahan otomatis digunakan. Logika pemisahan otomatis menemukan nilai maksimum dan minimum kunci partisi dan membagi data menjadi segmen genap. Kunci partisi mendukung tipe integer dan string. Tipe integer dibagi dengan pembagian integer. Tipe string dibagi berdasarkan kode Unicode karakter pertama. |
Parameter pembacaan mode baris untuk tabel deret waktu
Parameter | Deskripsi | Diperlukan | Nilai default |
column | column adalah array. Setiap elemen mewakili sebuah kolom. Anda dapat mengonfigurasi kolom konstan dan kolom normal. Untuk kolom konstan, konfigurasikan bidang berikut:
Untuk kolom normal, konfigurasikan bidang berikut:
Skrip berikut adalah contoh membaca empat kolom data: | Ya | Tidak ada |
measurementName | Nama pengukuran timeline yang akan dibaca. Jika Anda tidak mengonfigurasi parameter ini, data dibaca dari seluruh tabel. | Tidak | Tidak ada |
timeRange | Rentang waktu data yang diminta. Rentang baca adalah [begin,end), yang merupakan interval tertutup di kiri dan terbuka di kanan. `begin` harus kurang dari `end`. Unit timestamp adalah mikrodetik. Formatnya adalah sebagai berikut: | Tidak | Semua versi |
Parameter pembacaan mode kolom untuk tabel lebar
Parameter | Deskripsi | Diperlukan | Nilai default |
column | Menentukan kolom yang akan diekspor. Hanya kolom atribut yang didukung dalam mode kolom. Format: Catatan
| Ya | Semua kolom |
range | Rentang data yang akan dibaca. Rentang baca adalah [begin, end), yang merupakan interval tertutup di kiri dan terbuka di kanan. Selain itu:
Jenis yang didukung untuk `type` adalah:
Format: | Tidak | Semua data |
timeRange | Rentang waktu data yang diminta. Rentang baca adalah [begin, end), yang merupakan interval tertutup di kiri dan terbuka di kanan. `begin` harus kurang dari `end`. Unit timestamp adalah mikrodetik. Format: | Tidak | Semua versi |
maxVersion | Jumlah maksimum versi data yang diminta. Rentang nilai adalah 1 hingga INT32_MAX. | Tidak | Semua versi |
Lampiran II: Demo skrip Writer 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 lebih lanjut, lihat Konfigurasikan Tugas di Editor Kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Demo skrip Writer
Konfigurasi penulisan mode baris untuk tabel lebar
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"ots",// Nama plugin.
"parameter":{
"datasource":"",// Sumber data.
"table":"",// Nama tabel.
"newVersion":"true",// Gunakan versi baru otswriter.
"mode": "normal",// Tulis data dalam mode baris.
"isTimeseriesTable":"false",// Konfigurasikan tabel sebagai tabel lebar (bukan tabel deret waktu).
"primaryKey" : [// Informasi kunci utama Tablestore.
{"name":"gid", "type":"INT"},
{"name":"uid", "type":"STRING"}
],
"column" : [// Bidang.
{"name":"col1", "type":"INT"},
{"name":"col2", "type":"DOUBLE"},
{"name":"col3", "type":"STRING"},
{"name":"col4", "type":"STRING"},
{"name":"col5", "type":"BOOL"}
],
"writeMode" : "PutRow" // Mode penulisan.
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah catatan kesalahan.
},
"speed":{
"throttle":true,// Saat throttle adalah false, parameter mbps tidak berlaku, menunjukkan tanpa pembatasan kecepatan. Saat throttle adalah true, itu menunjukkan pembatasan kecepatan.
"concurrent":1, // Konkurensi pekerjaan.
"mbps":"12"// Kecepatan pembatasan. 1 mbps = 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Konfigurasi penulisan mode baris untuk tabel deret waktu
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"ots",// Nama plugin.
"parameter":{
"datasource":"",// Sumber data.
"table": "testTimeseriesTableName01",
"mode": "normal",
"newVersion": "true",
"isTimeseriesTable":"true",
"timeunit":"microseconds",
"column": [
{
"name": "_m_name"
},
{
"name": "_data_source",
},
{
"name": "_tags",
},
{
"name": "_time",
},
{
"name": "string_1",
"type":"string"
},
{
"name":"tag3",
"is_timeseries_tag":"true",
}
]
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah catatan kesalahan.
},
"speed":{
"throttle":true,// Saat throttle adalah false, parameter mbps tidak berlaku, menunjukkan tanpa pembatasan kecepatan. Saat throttle adalah true, itu menunjukkan pembatasan kecepatan.
"concurrent":1, // Konkurensi pekerjaan.
"mbps":"12"// Kecepatan pembatasan. 1 mbps = 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Konfigurasi penulisan mode kolom untuk tabel lebar
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"ots",// Nama plugin.
"parameter":{
"datasource":"",// Sumber data.
"table":"",
"newVersion":"true",
"mode":"multiVersion",
"primaryKey" : [
"gid",
"uid"
]
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// Jumlah catatan kesalahan.
},
"speed":{
"throttle":true,// Saat throttle adalah false, parameter mbps tidak berlaku, menunjukkan tanpa pembatasan kecepatan. Saat throttle adalah true, itu menunjukkan pembatasan kecepatan.
"concurrent":1, // Konkurensi pekerjaan.
"mbps":"12"// Kecepatan pembatasan. 1 mbps = 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Konfigurasi parameter umum skrip Writer
Parameter | Deskripsi | Diperlukan | Nilai default |
datasource | Nama sumber data. Editor kode mendukung penambahan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang ditambahkan. | Ya | Tidak ada |
endPoint | Endpoint server Tablestore. Untuk informasi lebih lanjut, lihat Endpoints. | Ya | Tidak ada |
accessId | ID AccessKey untuk Tablestore. | Ya | Tidak ada |
accessKey | Rahasia AccessKey untuk Tablestore. | Ya | Tidak ada |
instanceName | Nama instans Tablestore. Instans adalah entitas yang Anda gunakan untuk mengelola layanan Tablestore. Setelah Anda mengaktifkan Tablestore, Anda harus membuat instans di konsol. Kemudian, Anda dapat membuat dan mengelola tabel dalam instans tersebut. Instans adalah unit dasar untuk manajemen sumber daya di Tablestore. Kontrol akses dan pengukuran sumber daya untuk aplikasi dilakukan pada tingkat instans. | Ya | Tidak ada |
table | Nama tabel tempat data akan ditulis. Anda hanya dapat menentukan satu tabel. Tablestore tidak mendukung sinkronisasi beberapa tabel. | Ya | Tidak ada |
newVersion | Versi plugin Tablestore Writer yang digunakan.
Versi baru Tablestore Writer mendukung fitur baru dan mengonsumsi lebih sedikit sumber daya sistem. Kami merekomendasikan agar Anda menggunakan versi baru Tablestore Writer. Plugin baru kompatibel dengan konfigurasi plugin lama. Ini berarti tugas lama dapat berjalan seperti yang diharapkan setelah Anda menambahkan konfigurasi newVersion=true. | Ya | false |
mode | Mode untuk menulis data. Dua mode berikut didukung:
Parameter ini berlaku hanya ketika newVersion:true dikonfigurasikan. Versi lama Tablestore Writer mengabaikan konfigurasi mode dan hanya mendukung mode baris. | Tidak | normal |
isTimeseriesTable | Menentukan apakah tabel data adalah tabel data deret waktu.
Parameter ini berlaku hanya ketika newVersion:true & mode:normal dikonfigurasikan. Mode kolom tidak kompatibel dengan tabel deret waktu. | Tidak | false |
Konfigurasi parameter tambahan skrip Writer
Tablestore Writer mendukung penulisan ke tabel lebar dalam mode baris, penulisan ke tabel deret waktu dalam mode baris, dan penulisan ke tabel lebar dalam mode kolom. Bagian berikut menjelaskan konfigurasi tambahan untuk setiap mode.
Parameter penulisan mode baris untuk tabel lebar
Parameter | Deskripsi | Diperlukan | Nilai default |
primaryKey | Informasi kunci utama Tablestore. Gunakan array JSON untuk menggambarkan informasi bidang. Karena Tablestore adalah sistem NoSQL, Anda harus menentukan nama bidang saat Tablestore Writer mengimpor data. Sistem sinkronisasi data mendukung konversi tipe. Oleh karena itu, jika data sumber bukan bertipe STRING atau INT, Tablestore Writer melakukan konversi tipe data. Kode berikut memberikan contoh konfigurasi. Catatan Kunci utama di Tablestore hanya mendukung tipe STRING dan INT. Oleh karena itu, Tablestore Writer juga membatasi tipe menjadi STRING dan INT. | Ya | Tidak ada |
column | Himpunan nama kolom yang akan disinkronkan dalam tabel yang dikonfigurasi. Gunakan array JSON untuk menggambarkan informasi bidang. Contoh konfigurasi: `name` adalah nama kolom Tablestore yang akan ditulis, dan `type` adalah tipe yang akan ditulis. Tablestore mendukung tipe STRING, INT, DOUBLE, BOOL, dan BINARY. Catatan Konstanta, fungsi, atau ekspresi kustom tidak didukung selama proses penulisan. | Ya | Tidak ada |
writeMode | Mode untuk menulis data ke Tablestore. Dua mode berikut didukung:
| Ya | Tidak ada |
enableAutoIncrement | Menentukan apakah mengizinkan penulisan data ke tabel Tablestore yang berisi kolom kunci utama auto-increment.
| Tidak | false |
requestTotalSizeLimitation | Parameter ini membatasi ukuran satu baris data saat menulis ke Tablestore. Jenis konfigurasi adalah numerik. | Tidak | 1 MB |
attributeColumnSizeLimitation | Parameter ini membatasi ukuran satu kolom atribut saat menulis ke Tablestore. Jenis konfigurasi adalah numerik. | Tidak | 2 MB |
primaryKeyColumnSizeLimitation | Parameter ini membatasi ukuran satu kolom kunci utama saat menulis ke Tablestore. Jenis konfigurasi adalah numerik. | Tidak | 1 KB |
attributeColumnMaxCount | Parameter ini membatasi jumlah kolom atribut saat menulis ke Tablestore. Jenis konfigurasi adalah numerik. | Tidak | 1.024 |
Parameter penulisan mode baris untuk tabel deret waktu
Parameter | Deskripsi | Diperlukan | Nilai default |
column | Setiap elemen dalam `column` sesuai dengan sebuah bidang dalam data deret waktu. Anda dapat mengonfigurasi parameter berikut untuk setiap elemen.
Karena nama pengukuran dan timestamp data deret waktu tidak boleh kosong, Anda harus mengonfigurasi bidang Contoh: Sebuah catatan yang akan ditulis berisi enam bidang berikut: Gunakan konfigurasi berikut: | Ya | Tidak ada |
timeunit | Unit bidang timestamp `_time` yang dikonfigurasikan. Unit yang didukung adalah NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, dan MINUTES. | Tidak | MICROSECONDS |
Parameter penulisan mode kolom untuk tabel lebar
Parameter | Deskripsi | Diperlukan | Nilai default |
primaryKey | Kolom kunci utama tabel. Untuk mengurangi biaya konfigurasi, Anda tidak perlu mengonfigurasi posisi primaryKey dalam Record (Baris). Namun, format Record harus tetap: primaryKey harus berada di awal record, dan primaryKey harus diikuti oleh columnName. Format record adalah: Sebagai contoh, anggap Anda memiliki sembilan record berikut: Contoh konfigurasi: Hasil penulisan ke tabel lebar: | Ya | Tidak ada |
columnNamePrefixFilter | Filter awalan nama kolom. Untuk data yang diimpor dari Hbase, cf dan qulifier bersama-sama membentuk columnName. Namun, Tablestore tidak mendukung cf, jadi Anda perlu menyaring cf. Contoh konfigurasi: Catatan
| Tidak | Tidak ada |
FAQ
T: Bagaimana cara mengonfigurasi Tablestore Writer untuk menulis data ke tabel tujuan yang berisi kolom kunci utama auto-increment?
Konfigurasi Tablestore Writer harus mencakup dua baris berikut:
"newVersion": "true", "enableAutoIncrement": "true",Anda tidak perlu mengonfigurasi nama kolom kunci utama auto-increment dalam Tablestore Writer.
Dalam Tablestore Writer, jumlah entri primaryKey ditambah jumlah entri column harus sama dengan jumlah kolom dalam data Tablestore Reader upstream.
T: Dalam konfigurasi model deret waktu, apa perbedaan antara bidang
_tagdanis_timeseries_tag?Contoh: Sebuah catatan memiliki tiga tag: [Phone=Xiaomi, Memory=8G, Camera=Leica].

Contoh Ekspor Data (Tablestore Reader)
Jika ingin menggabungkan tag di atas dan mengekspornya sebagai satu kolom, gunakan konfigurasi berikut:
"column": [ { "name": "_tags", } ],DataWorks mengekspor tag sebagai satu kolom data, dalam format berikut:
["phone=xiaomi","camera=LEICA","RAM=8G"]Jika ingin mengekspor
phonedancamerasebagai kolom terpisah, gunakan konfigurasi berikut:"column": [ { "name": "phone", "is_timeseries_tag":"true", }, { "name": "camera", "is_timeseries_tag":"true", } ],DataWorks mengekspor dua kolom data, dalam format berikut:
xiaomi, LEICA
Contoh Impor Data (Tablestore Writer)
Asumsikan sumber data upstream (Reader) memiliki dua kolom data:
Satu kolom data adalah:
["phone=xiaomi","camera=LEICA","RAM=8G"].Kolom data lainnya adalah: 6499.
Anda ingin menambahkan kedua kolom tersebut ke tag. Format bidang tag yang diharapkan setelah penulisan adalah sebagai berikut:
Gunakan konfigurasi berikut:"column": [ { "name": "_tags", }, { "name": "price", "is_timeseries_tag":"true", }, ],Konfigurasi kolom pertama mengimpor
["phone=xiaomi","camera=LEICA","RAM=8G"]secara keseluruhan ke dalam bidang tag.Konfigurasi kolom kedua mengimpor
price=6499secara terpisah ke dalam bidang tag.