Tablestore adalah layanan penyimpanan NoSQL yang dibangun di atas Alibaba Cloud Apsara Distributed File System. Sumber data Tablestore di DataWorks memungkinkan sinkronisasi data dua arah.
Batasan
-
Plugin Tablestore Reader dan Writer membaca dari dan menulis ke Tablestore. Plugin ini beroperasi pada tabel lebar (wide-column) dan tabel deret waktu (time-series) dalam dua mode: row mode dan column mode.
-
column mode: Dalam model multi-versi Tablestore, data diorganisasi dalam struktur tiga tingkat: . Satu baris dapat memiliki sejumlah kolom apa pun, dan nama kolom tidak tetap. Setiap kolom dapat memiliki beberapa versi, dengan setiap versi memiliki timestamp tertentu yang juga berfungsi sebagai nomor versi. Dalam column mode, data diekspor dan diimpor sebagai tupel empat elemen: (nilai kunci primer, nama kolom, timestamp, nilai kolom).
-
row mode: Mode ini mengekspor setiap catatan yang diperbarui sebagai satu baris dalam format (nilai kunci primer, nilai kolom).
Dalam row mode, setiap baris data sesuai dengan satu baris tunggal di tabel Tablestore dan mencakup nilai untuk kolom kunci primer maupun kolom atribut.
-
-
Kolom Tablestore terdiri dari kolom kunci primerprimaryKey dan kolom atributcolumn. Urutan kolom sumber harus konsisten dengan urutan kolom kunci primer dan kolom atribut di Tablestore tujuan; jika tidak, akan terjadi error pemetaan kolom.
-
Tablestore Reader membagi rentang data tabel menjadi N tugas berdasarkan tingkat konkurensi yang ditentukan, yaitu N. Setiap tugas dijalankan oleh thread Tablestore Reader khusus.
-
Tabel eksternal MaxCompute tidak dapat langsung membaca kolom yang berisi tipe data campuran dari Tablestore, misalnya kolom yang berisi nilai STRING dan DOUBLE sekaligus. Jika tabel Tablestore Anda berisi kolom semacam itu, impor data menggunakan tabel eksternal MaxCompute akan gagal. Sebagai solusi alternatif, Anda dapat menggunakan fitur sinkronisasi offline tabel tunggal di Data Integration DataWorks untuk menyinkronkan data dari Tablestore ke MaxCompute.
Saat menggunakan sinkronisasi offline tabel tunggal, kelompok sumber daya Data Integration harus memiliki akses jaringan ke VPC tempat instans Tablestore berada agar dapat membaca data dan menjalankan tugas sinkronisasi. Solusi ini tidak menjamin kompatibilitas penuh untuk data tipe campuran. Anda mungkin perlu mengonversi atau memfilter tipe data menggunakan pemetaan bidang selama proses sinkronisasi. Penggunaan kelompok sumber daya Data Integration dikenai biaya tambahan.
Tipe bidang yang didukung
Tablestore Reader dan Tablestore Writer mendukung semua tipe data Tablestore. Tabel berikut mencantumkan pemetaan tipe untuk Tablestore.
|
Kategori tipe |
Tipe Tablestore |
|
Integer |
INTEGER |
|
Floating-point |
DOUBLE |
|
String |
STRING |
|
Boolean |
BOOLEAN |
|
Binary |
BINARY |
-
Tablestore tidak memiliki tipe data tanggal atau waktu bawaan. Di lapisan aplikasi, tipe Long biasanya digunakan untuk menyimpan timestamp Unix.
-
Dalam mode skrip, konfigurasikan tipe data INTEGER sebagai INT. DataWorks kemudian akan mengonversi tipe INT menjadi INTEGER. Jika Anda langsung menentukan tipe sebagai INTEGER, DataWorks akan mencatat error dan tugas gagal.
Tambahkan sumber data
Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Manajemen sumber data. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Pengembangan tugas sinkronisasi
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Konfigurasi sinkronisasi offline tabel tunggal
-
Untuk petunjuknya, lihat Konfigurasi mode skrip.
-
Untuk semua parameter dan contoh skrip mode skrip, lihat Lampiran II: Contoh skrip writer dan deskripsi parameter.
Lampiran I: Contoh skrip Reader dan parameter
Konfigurasi 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 Konfigurasi mode skrip. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengatur tugas sinkronisasi batch menggunakan editor kode.
Demo Skrip Reader
Konfigurasi untuk membaca tabel lebar dalam row mode
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"ots",// Nama plugin.
"parameter":{
"datasource":"",// Sumber data.
"newVersion":"true",// Gunakan versi baru Tablestore Reader.
"mode": "normal",// Baca data dalam row mode.
"isTimeseriesTable":"false",// Menentukan bahwa tabel adalah tabel lebar.
"column":[// Kolom yang akan dibaca.
{
"name":"column1"// Nama kolom.
},
{
"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 maksimum catatan error yang diizinkan.
},
"speed":{
"throttle":true,// true: mengaktifkan pengendalian aliran. false: menonaktifkan pengendalian aliran, dan pengaturan mbps tidak berpengaruh.
"concurrent":1, // Konkurensi tugas.
"mbps":"12"// Laju transfer maksimum dalam MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Konfigurasi pembacaan row mode untuk tabel deret waktu
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"ots",// Nama plugin.
"parameter":{
"datasource":"",// Sumber data.
"table": "",// Nama tabel.
// Atur ke "normal" untuk membaca data deret waktu.
"mode": "normal",
// Atur ke "true" untuk membaca data deret waktu.
"newVersion": "true",
// Menentukan bahwa tabel adalah tabel deret waktu.
"isTimeseriesTable":"true",
// Nama measurement data deret waktu yang akan dibaca. Opsional. Jika tidak ditentukan, semua data dibaca.
"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 maksimum catatan error yang diizinkan.
},
"speed":{
"throttle":true,// true: mengaktifkan pengendalian aliran. false: menonaktifkan pengendalian aliran, dan pengaturan mbps tidak berpengaruh.
"concurrent":1, // Konkurensi tugas.
"mbps":"12"// Laju transfer maksimum dalam MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Konfigurasi pembacaan column-mode untuk tabel lebar
{
"type":"job",
"version":"2.0",// Nomor versi.
"steps":[
{
"stepType":"ots",// Nama plugin.
"parameter":{
"datasource":"",// Sumber data.
"table":"",// Nama tabel.
"newVersion":"true",// Gunakan versi baru Tablestore Reader.
"mode": "multiversion",// Baca data dalam column mode.
"column":[// Menentukan kolom atribut yang akan diekspor.
{"name":"mobile"},
{"name":"name"},
{"name":"age"},
{"name":"salary"},
{"name":"marry"}
],
"range":{// Rentang data yang akan 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 maksimum catatan error yang diizinkan.
},
"speed":{
"throttle":true,// true: mengaktifkan pengendalian aliran. false: menonaktifkan pengendalian aliran, dan pengaturan mbps tidak berpengaruh.
"concurrent":1, // Konkurensi tugas.
"mbps":"12"// Laju transfer maksimum dalam MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Parameter umum untuk skrip Reader
|
Parameter |
Deskripsi |
Wajib |
Bawaan |
|
endpoint |
Titik akhir server Tablestore. Untuk informasi lebih lanjut, lihat Endpoints. |
Ya |
Tidak ada |
|
accessId |
ID AccessKey untuk akun Tablestore Anda. |
Ya |
Tidak ada |
|
accessKey |
Rahasia AccessKey untuk akun Tablestore Anda. |
Ya |
Tidak ada |
|
instanceName |
Nama instans Tablestore. Instans adalah entitas yang digunakan untuk mengelola layanan Tablestore. Setelah mengaktifkan Tablestore, buat instans di konsol manajemen. Anda kemudian dapat membuat dan mengelola tabel dalam instans tersebut. Instans merupakan unit dasar manajemen sumber daya di Tablestore. Kontrol akses dan pengukuran sumber daya untuk aplikasi dilakukan pada tingkat instans. |
Ya |
Tidak ada |
|
table |
Nama tabel sumber. Hanya satu tabel yang dapat ditentukan. Tablestore tidak mendukung sinkronisasi multi-tabel. |
Ya |
Tidak ada |
|
newVersion |
Menentukan versi plugin Tablestore Reader yang akan digunakan.
Kami merekomendasikan penggunaan Tablestore Reader baru karena menawarkan lebih banyak fitur dan mengonsumsi lebih sedikit sumber daya. Konfigurasi versi plugin baru kompatibel dengan versi lama. Tugas lama dapat berjalan seperti yang diharapkan setelah Anda menambahkan konfigurasi newVersion=true. |
Tidak |
false |
|
mode |
Menentukan mode pembacaan data. Dua mode didukung:
Konfigurasi ini hanya berlaku untuk versi baru Tablestore Reader (newVersion:true). Tablestore Reader lama mengabaikan konfigurasi mode dan hanya mendukung pembacaan dalam row mode. |
Tidak |
normal |
|
isTimeseriesTable |
Menentukan apakah tabel sumber adalah tabel deret waktu.
Konfigurasi ini hanya berlaku dengan pengaturan newVersion:true & mode:normal. Versi lama Tablestore Reader tidak mendukung tabel deret waktu. Tabel deret waktu tidak dapat dibaca dalam column mode. |
Tidak |
false |
Konfigurasi tambahan untuk parameter skrip Reader
Tablestore Reader mendukung tiga skenario: membaca tabel lebar dalam row mode, membaca tabel deret waktu dalam row mode, dan membaca tabel lebar dalam column mode. Bagian berikut menjelaskan parameter tambahan untuk setiap skenario.
Parameter pembacaan row mode untuk tabel lebar
|
Parameter |
Deskripsi |
Wajib |
Bawaan |
|
column |
Kolom yang akan dibaca, ditentukan sebagai array JSON. Anda harus menentukan nama kolom karena Tablestore adalah database NoSQL tanpa skema.
|
Ya |
Tidak ada |
|
begin dan end |
Parameter begin dan end menentukan rentang data yang akan dibaca dari tabel Tablestore. Parameter begin dan end menggambarkan distribusi rentang kunci primer Tablestore. Untuk rentang tak hingga, Anda dapat menggunakan Catatan
Sebagai contoh, Anda mengekstraksi data dari tabel Tablestore yang memiliki kunci primer tiga kolom:
|
Tidak |
[INF_MIN, INF_MAX) |
|
split |
Parameter lanjutan untuk menentukan aturan sharding kustom. Kami tidak merekomendasikan penggunaan parameter ini dalam kebanyakan kasus. Anda dapat menggunakan parameter split untuk menentukan rentang data kustom untuk sharding. Ini biasanya digunakan untuk menangani hot spot data di Tablestore. Contohnya:
Saat tugas dijalankan, data dibagi menjadi enam segmen yang dibaca secara konkuren. Kami merekomendasikan jumlah segmen lebih besar daripada konkurensi tugas.
|
Tidak |
Jika parameter ini tidak ditentukan, logika sharding otomatis akan digunakan. Logika sharding otomatis menemukan nilai minimum dan maksimum kunci partisi dan membagi rentang tersebut menjadi segmen-segmen yang merata. Kunci partisi mendukung tipe integer dan string. Rentang integer dibagi berdasarkan pembagian integer. Rentang string dibagi berdasarkan kode Unicode karakter pertama. |
Parameter untuk membaca tabel deret waktu dalam row mode
|
Parameter |
Deskripsi |
Wajib |
Bawaan |
|
column |
Array di mana setiap elemen merepresentasikan satu kolom. Anda dapat mengonfigurasi kolom konstan dan kolom atribut. Untuk kolom konstan, konfigurasikan bidang-bidang berikut:
Untuk kolom atribut, konfigurasikan bidang-bidang berikut:
Skrip berikut adalah contoh pembacaan empat kolom:
|
Ya |
Tidak ada |
|
measurementName |
Nama measurement timeline yang akan dibaca. Jika tidak ditentukan, data dari semua timeline dalam tabel akan dibaca. |
Tidak |
Tidak ada |
|
timeRange |
Rentang waktu data yang diminta. Rentang ini merupakan interval kiri-tertutup, kanan-terbuka [
|
Tidak |
[0, LONG_MAX) |
Parameter untuk membaca tabel lebar dalam column mode
|
Parameter |
Deskripsi |
Wajib |
Bawaan |
|
column |
Menentukan kolom yang akan diekspor. Hanya kolom atribut yang didukung dalam column mode. Format:
Catatan
|
Ya |
Tidak ada |
|
range |
Rentang data yang akan dibaca. Rentang ini merupakan interval kiri-tertutup, kanan-terbuka [begin, end). Nilai
Tipe yang didukung untuk properti
Format:
|
Tidak |
Semua data |
|
timeRange |
Rentang waktu versi data yang diminta. Rentang ini merupakan interval kiri-tertutup, kanan-terbuka [begin, end). Nilai Format:
|
Tidak |
[0, LONG_MAX) |
|
maxVersion |
Jumlah maksimum versi yang akan dibaca untuk setiap kolom. Nilainya dapat berkisar dari 1 hingga INT32_MAX. |
Tidak |
Semua versi |
Lampiran 2: Contoh skrip Writer dan parameter
Konfigurasi 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 Konfigurasi mode skrip. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengatur tugas sinkronisasi batch menggunakan editor kode.
Contoh skrip Writer
Menulis ke tabel lebar (row mode)
{
"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 Tablestore Writer.
"mode": "normal",// Tulis data dalam row mode.
"isTimeseriesTable":"false",// Tabel tujuan adalah tabel lebar.
"primaryKey" : [// Kolom kunci primer tabel Tablestore.
{"name":"gid", "type":"INT"},
{"name":"uid", "type":"STRING"}
],
"column" : [// Kolom atribut.
{"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 maksimum catatan error yang diizinkan.
},
"speed":{
"throttle":true,// Mengaktifkan pembatasan laju. Jika false, `mbps` diabaikan.
"concurrent":1, // Jumlah tugas konkuren.
"mbps":"12"// Batas laju dalam MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Menulis ke tabel deret waktu (row mode)
{
"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 maksimum catatan error yang diizinkan.
},
"speed":{
"throttle":true,// Mengaktifkan pembatasan laju. Jika false, `mbps` diabaikan.
"concurrent":1, // Jumlah tugas konkuren.
"mbps":"12"// Batas laju dalam MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Menulis ke tabel lebar (column mode)
{
"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 maksimum catatan error yang diizinkan.
},x`
"speed":{
"throttle":true,// Mengaktifkan pembatasan laju. Jika false, `mbps` diabaikan.
"concurrent":1, // Jumlah tugas konkuren.
"mbps":"12"// Batas laju dalam MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Parameter skrip writer umum
|
Parameter |
Deskripsi |
Wajib |
Bawaan |
|
datasource |
Nama sumber data. Nilai parameter ini harus persis sama dengan nama sumber data yang Anda tambahkan. |
Ya |
Tidak ada |
|
endpoint |
Titik akhir instans Tablestore. Untuk informasi lebih lanjut, lihat Endpoints. |
Ya |
Tidak ada |
|
accessId |
ID AccessKey untuk akun Tablestore Anda. |
Ya |
Tidak ada |
|
accessKey |
Rahasia AccessKey untuk akun Tablestore Anda. |
Ya |
Tidak ada |
|
instanceName |
Nama instans Tablestore. Instans adalah unit dasar untuk manajemen sumber daya. Setelah mengaktifkan Tablestore, Anda harus membuat instans di konsol manajemen sebelum dapat membuat dan mengelola tabel. Kontrol akses dan pengukuran sumber daya dilakukan pada tingkat instans. |
Ya |
Tidak ada |
|
table |
Nama tabel tujuan. Anda hanya dapat menentukan satu tabel karena Tablestore tidak mendukung sinkronisasi multi-tabel. |
Ya |
Tidak ada |
|
newVersion |
Menentukan versi plugin Tablestore Writer.
Kami merekomendasikan penggunaan versi baru karena mendukung lebih banyak fitur dan mengonsumsi lebih sedikit sumber daya. Versi plugin baru kompatibel dengan konfigurasi dari versi lama, yang berarti tugas lama dapat berjalan normal setelah konfigurasi newVersion=true ditambahkan. |
Ya |
false |
|
mode |
Mode penulisan data. Nilai yang valid:
Konfigurasi ini hanya berlaku ketika newVersion:true ditetapkan. Tablestore Writer lama mengabaikan konfigurasi mode dan hanya mendukung pembacaan dalam row mode. |
Tidak |
normal |
|
isTimeseriesTable |
Menentukan apakah tabel target adalah tabel deret waktu.
Konfigurasi ini hanya efektif untuk pengaturan newVersion:true & mode:normal (Column mode tidak kompatibel dengan tabel deret waktu). |
Tidak |
false |
Parameter skrip writer tambahan
Tablestore Writer mendukung penulisan ke tabel lebar dalam row mode, tabel deret waktu dalam row mode, dan tabel lebar dalam column mode. Bagian berikut menjelaskan parameter konfigurasi tambahan untuk setiap mode.
Parameter tabel lebar (row mode)
|
Parameter |
Deskripsi |
Wajib |
Bawaan |
|
primaryKey |
Kolom kunci primer tabel Tablestore, ditentukan sebagai array JSON. Karena Tablestore adalah database NoSQL, Anda harus menentukan nama kolom saat mengimpor data. Data Integration mendukung konversi tipe. Jika data sumber bukan bertipe STRING atau INT, Tablestore Writer akan mengonversi tipe data tersebut. Contoh:
Catatan
Kunci primer Tablestore hanya mendukung tipe data STRING dan INT. Oleh karena itu, Anda hanya dapat menentukan STRING dan INT untuk tipe dalam konfigurasi Tablestore Writer. |
Ya |
Tidak ada |
|
column |
Kolom atribut yang akan disinkronkan, ditentukan sebagai array JSON. Konfigurasi contoh:
Dalam konfigurasi, Catatan
Konstanta, fungsi, dan ekspresi kustom tidak didukung selama proses penulisan. |
Ya |
Tidak ada |
|
writeMode |
Perilaku penulisan. Nilai yang valid:
|
Ya |
Tidak ada |
|
enableAutoIncrement |
Menentukan apakah diizinkan menulis ke tabel yang memiliki kolom kunci primer auto-increment.
|
Tidak |
false |
|
requestTotalSizeLimitation |
Membatasi ukuran total satu baris yang ditulis ke Tablestore. Nilainya harus berupa angka. |
Tidak |
1 MB |
|
attributeColumnSizeLimitation |
Membatasi ukuran nilai satu kolom atribut yang ditulis ke Tablestore. Nilainya harus berupa angka. |
Tidak |
2 MB |
|
primaryKeyColumnSizeLimitation |
Membatasi ukuran nilai satu kolom kunci primer yang ditulis ke Tablestore. Nilainya harus berupa angka. |
Tidak |
1 KB |
|
attributeColumnMaxCount |
Membatasi jumlah kolom atribut dalam satu baris yang ditulis ke Tablestore. Nilainya harus berupa angka. |
Tidak |
1.024 |
Parameter tabel deret waktu (row mode)
|
Parameter |
Deskripsi |
Wajib |
Bawaan |
|
column |
Setiap elemen dalam array
Karena nama measurement dan timestamp data deret waktu tidak boleh kosong, Anda harus mengonfigurasi bidang Contoh: Catatan data yang akan ditulis berisi enam bidang:
Gunakan konfigurasi berikut:
|
Ya |
Tidak ada |
|
timeunit |
Satuan untuk bidang timestamp time yang dikonfigurasi dapat berupa NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, atau MINUTES. |
Tidak |
MICROSECONDS |
Parameter tabel lebar (column mode)
|
Parameter |
Deskripsi |
Wajib |
Bawaan |
|
primaryKey |
Kolom kunci primer tabel. Untuk mengurangi biaya konfigurasi, Anda tidak perlu mengonfigurasi posisi primaryKey dalam catatan (baris). Namun, format catatan harus tetap. primaryKey harus berada di awal baris, dan columnName ditempatkan setelah primaryKey. Format catatan adalah: Sebagai contoh, pertimbangkan sembilan catatan data berikut:
Data ditulis ke tabel lebar sebagai berikut:
|
Ya |
Tidak ada |
|
columnNamePrefixFilter |
Awalan yang akan dihapus dari nama kolom. Untuk data yang diimpor dari HBase, cf dan qualifier bersama-sama membentuk columnName. Namun, Tablestore tidak mendukung cf, sehingga cf harus difilter. Contoh: Catatan
|
Tidak |
Tidak ada |
FAQ
-
T: Bagaimana cara mengonfigurasi Tablestore Writer untuk menulis data ke tabel tujuan dengan kolom kunci primer auto-increment?
-
Konfigurasi Tablestore Writer harus mencakup dua parameter berikut:
"newVersion": "true", "enableAutoIncrement": "true", -
Jangan tentukan nama kolom kunci primer auto-increment dalam konfigurasi Tablestore Writer.
-
Dalam konfigurasi Tablestore Writer, jumlah entri dalam
primaryKeyditambah jumlah entri dalamcolumnharus sama dengan jumlah kolom dari Tablestore Reader hulu.
-
-
T: Dalam konfigurasi model deret waktu, apa perbedaan antara bidang
_tagsdanis_timeseries_tag?Sebagai contoh, catatan data memiliki tiga tag:
phone=xiaomi,RAM=8G, dancamera=LEICA.-
Contoh ekspor (Tablestore Reader)
-
Untuk mengekspor semua tag sebagai satu kolom, gunakan konfigurasi berikut:
"column": [ { "name": "_tags", } ],DataWorks mengekspor tag sebagai satu kolom dengan format berikut:
["phone=xiaomi","camera=LEICA","RAM=8G"] -
Untuk mengekspor tag
phonedancamerasebagai kolom terpisah, gunakan konfigurasi berikut:"column": [ { "name": "phone", "is_timeseries_tag":"true", }, { "name": "camera", "is_timeseries_tag":"true", } ],DataWorks mengekspor dua kolom dengan format berikut:
xiaomi, LEICA
-
-
Contoh impor (Tablestore Writer)
Anggaplah Tablestore Reader hulu menyediakan dua kolom data:
-
Satu kolom berisi:
["phone=xiaomi","camera=LEICA","RAM=8G"]. -
Kolom lain berisi: 6499.
Anggaplah Anda ingin menambahkan data dari kedua kolom ini ke bidang tag. Format yang diharapkan adalah sebagai berikut:
Untuk melakukannya, konfigurasikan pengaturan sebagai berikut:"column": [ { "name": "_tags", }, { "name": "price", "is_timeseries_tag":"true", }, ],-
Konfigurasi kolom pertama mengimpor array
["phone=xiaomi","camera=LEICA","RAM=8G"]ke bidang tag. -
Konfigurasi kolom kedua mengimpor nilai sebagai tag terpisah, menghasilkan
price=6499.
-
-