Anda dapat membuat tugas pengiriman di Konsol Tablestore untuk mengirimkan data dari Tablestore ke Bucket Object Storage Service (OSS).
Prasyarat
OSS telah diaktifkan. Sebuah bucket telah dibuat di wilayah tempat instance Tablestore berada. Untuk informasi lebih lanjut, lihat Aktifkan OSS.
Pengiriman data memungkinkan Anda mengirimkan data dari instance Tablestore ke bucket OSS dalam wilayah yang sama. Untuk mengirimkan data ke gudang lain seperti MaxCompute, ajukan tiket.
Catatan Penggunaan
Pengiriman data tersedia di wilayah Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Shenzhen), dan Tiongkok (Zhangjiakou).
Operasi penghapusan pada data Tablestore diabaikan ketika data dikirimkan. Data Tablestore yang dikirimkan ke OSS tidak dihapus ketika Anda melakukan operasi penghapusan pada data tersebut.
Dibutuhkan maksimal satu menit untuk inisialisasi saat Anda membuat tugas pengiriman.
Latensi berada dalam 3 menit ketika data ditulis dengan laju stabil. Latensi P99 berada dalam 10 menit ketika data disinkronkan.
CatatanLatensi P99 menunjukkan latensi rata-rata dari 1% permintaan terlambat selama 10 detik sebelumnya.
Buat tugas pengiriman data
Pergi ke halaman Instance Management.
Masuk ke konsol Tablestore atau .
Di bagian atas halaman, pilih grup sumber daya dan wilayah. Temukan instance Tablestore yang ingin Anda kelola dalam daftar instance. Lalu, klik nama instance atau Manage Instance di kolom Tindakan.
Di halaman Instance Management, klik tab Deliver Data to OSS.
(Opsional) Buat peran terkait layanan AliyunServiceRoleForOTSDataDelivery.
Saat Anda mengonfigurasi pengiriman data untuk pertama kalinya, Anda harus membuat peran AliyunServiceRoleForOTSDataDelivery yang digunakan untuk memberi otorisasi kepada Tablestore menulis data ke bucket OSS. Untuk informasi lebih lanjut, lihat Peran Terkait Layanan Tablestore.
CatatanUntuk informasi lebih lanjut tentang peran terkait layanan, lihat Peran Terkait Layanan.
Di tab Deliver Data to OSS, klik Role for Delivery Service.
Di pesan Role Details, lihat informasi terkait. Klik OK.
Buat tugas pengiriman.
Di tab Deliver Data to OSS, klik Create Task.
Di kotak dialog Create Task, konfigurasikan parameter berikut.
Parameter
Deskripsi
Task Name
Nama tugas pengiriman.
Nama harus memiliki panjang 3 hingga 16 karakter dan hanya dapat berisi huruf kecil, angka, dan tanda hubung (-). Harus dimulai dan diakhiri dengan huruf kecil atau angka.
Destination Region
Wilayah tempat instance Tablestore dan bucket OSS berada.
Source Table
Nama tabel Tablestore.
Destination Bucket
Nama bucket OSS ke mana Anda ingin mengirimkan data.
PentingPastikan bahwa sebuah bucket telah dibuat di wilayah yang sama dengan instance Tablestore.
Destination Prefix
Awalan folder di bucket. Data dikirimkan dari Tablestore ke folder tersebut. Jalur folder tujuan mendukung variabel waktu berikut: $yyyy, $MM, $dd, $HH, dan $mm. Untuk informasi lebih lanjut, lihat bagian Partisi data berdasarkan waktu dari topik ini.
Ketika jalur menggunakan variabel waktu, folder OSS dibuat secara dinamis berdasarkan waktu penulisan data. Dengan cara ini, data di OSS diorganisasikan, dipartisi, dan didistribusikan berdasarkan waktu, yang mengikuti gaya penamaan partisi hive.
Ketika jalur tidak menggunakan variabel waktu, semua file dikirimkan ke folder OSS yang namanya berisi awalan ini.
Synchronization Mode
Jenis tugas pengiriman. Nilai valid:
Incremental: Hanya data inkremental yang disinkronkan.
Full: Semua data di tabel dipindai dan disinkronkan.
Differential: Data penuh disinkronkan sebelum data inkremental disinkronkan.
Ketika Tablestore menyinkronkan data inkremental, Anda dapat melihat waktu ketika data terakhir dikirimkan dan status tugas pengiriman.
Destination Object Format
Data yang dikirimkan disimpan dalam format Parquet. Secara default, pengiriman data menggunakan PLAIN untuk encoding. PLAIN dapat digunakan untuk mengkodekan data dari semua jenis.
Schema Generation Type
Tentukan kolom yang akan dikirimkan. Urutan penyortiran bidang di tabel Tablestore dapat berbeda dari urutan bidang di skema. Data Parquet yang disimpan di OSS didistribusikan berdasarkan urutan bidang di skema.
Pilih jenis pembuatan skema.
Jika parameter Schema Generation Type diatur ke Manual, Anda harus mengonfigurasi bidang sumber, nama bidang tujuan, dan tipe bidang tujuan untuk pengiriman.
Jika parameter Schema Generation Type diatur ke Auto Generate, sistem mengidentifikasi dan mencocokkan bidang untuk pengiriman.
PentingTipe data harus konsisten antara bidang sumber dan tujuan. Jika tidak, bidang tersebut dibuang sebagai data kotor. Untuk informasi lebih lanjut tentang pemetaan tipe bidang, lihat bagian Pemetaan tipe data dari topik ini.
Saat Anda mengonfigurasi skema, Anda dapat melakukan operasi berikut:
Klik +Add Field untuk menambahkan bidang untuk pengiriman.
Klik ikon
atau
di kolom Tindakan yang sesuai dengan bidang untuk menyesuaikan urutan bidang. Klik ikon
di kolom Tindakan yang sesuai dengan bidang untuk menghapus bidang.
Schema Configurations
Klik OK.
Di pesan View Statement to Create Table, Anda dapat melihat pernyataan yang digunakan untuk membuat tabel eksternal untuk E-MapReduce (EMR). Anda juga dapat menyalin pernyataan untuk membuat tabel eksternal untuk EMR agar dapat mengakses data di OSS.
Setelah tugas pengiriman dibuat, Anda dapat melakukan operasi berikut:
Lihat detail tugas pengiriman, seperti nama tugas, nama tabel, bucket tujuan, awalan tujuan, status, dan waktu ketika data terakhir disinkronkan.
Lihat atau salin pernyataan untuk membuat tabel.
Klik Lihat Pernyataan untuk Membuat Tabel di kolom Actions. Anda dapat melihat atau menyalin pernyataan untuk membuat tabel eksternal menggunakan mesin komputasi seperti EMR. Untuk informasi lebih lanjut, lihat Gunakan EMR.
Lihat pesan kesalahan yang dikembalikan setelah pengiriman.
Jika konfigurasi untuk bucket OSS dan izin pengiriman salah, pengiriman data tidak dapat diselesaikan. Di halaman status tugas pengiriman, Anda dapat melihat pesan kesalahan terkait. Untuk informasi lebih lanjut tentang penanganan kesalahan, lihat bagian Penanganan Kesalahan dari topik ini.
Hapus tugas pengiriman.
Klik Hapus di kolom Actions yang sesuai dengan tugas pengiriman. Anda dapat menghapus tugas pengiriman. Sistem mengembalikan kesalahan jika tugas pengiriman sedang dalam proses inisialisasi. Anda dapat menghapus tugas nanti.
Lihat data OSS
Setelah tugas pengiriman diinisialisasi dan data dikirimkan, Anda dapat melihat data yang dikirimkan ke OSS menggunakan Konsol OSS, API, SDK, atau mesin komputasi EMR. Untuk informasi lebih lanjut, lihat Ikhtisar.
Contoh URL objek OSS:
oss://NamaBucket/PrefiksTugas/NamaTugas_IDKonkurensi_PrefiksTugas__IDUrutanDalam contoh, NamaBucket menunjukkan nama bucket. PrefiksTugas pertama menunjukkan awalan folder tujuan. PrefiksTugas kedua menunjukkan informasi awalan tugas. NamaTugas menunjukkan nama tugas. IDKonkurensi menunjukkan nomor konkurensi yang ditentukan oleh sistem. Nomor dimulai dari 0 dan bertambah ketika throughput meningkat. IDUrutan menunjukkan ID urutan file yang dikirimkan dan bertambah dari 1.
Partisi data berdasarkan waktu
Pengiriman data memungkinkan sistem mencatat waktu ketika data ditulis ke Tablestore. Waktu terdiri dari variabel berikut: $yyyy (tahun empat digit), $MM (bulan dua digit), $dd (hari dua digit), $HH (jam dua digit), dan $mm (menit dua digit). Waktu dapat digunakan sebagai awalan bucket tujuan setelah konversi.
Kami merekomendasikan ukuran objek OSS minimal 4 MB. Ketika mesin komputasi digunakan untuk memuat data OSS, jumlah partisi yang lebih besar menghasilkan waktu yang lebih lama untuk memuat partisi. Oleh karena itu, dalam sebagian besar skenario penulisan data real-time, kami merekomendasikan waktu berdasarkan partisi data menjadi granularitas hari atau jam, bukan menit.
Tugas pengiriman yang mana data ditulis ke Tablestore pada pukul 16:03 tanggal 31 Agustus 2020 digunakan dalam contoh. Tabel berikut menjelaskan URL objek pertama yang dihasilkan di OSS berdasarkan konfigurasi awalan tujuan yang berbeda.
Bucket OSS | Nama tugas | Awalan tujuan | URL objek OSS |
myBucket | testTask | myPrefix | oss://myBucket/myPrefix/testTask_0_myPrefix__1 |
myBucket | testTaskTimeParitioned | myPrefix/$yyyy/$MM/$dd/$HH/$mm | oss://myBucket/myPrefix/2020/08/31/16/03/testTaskTimeParitioned_0_myPrefix_2020_08_31_16_03__1 |
myBucket | testTaskTimeParitionedHiveNamingStyle | myPrefix/year=$yyyy/month=$MM/day=$dd | oss://myBucket/myPrefix/year=2020/month=08/day=31/testTaskTimeParitionedHiveNamingStyle_0_myPrefix_year=2020_month=08 |
myBucket | testTaskDs | ds=$yyyy$MM$dd | oss://myBucket/ds=20200831/testTaskDs_0_ds=20200831__0 |
Pemetaan tipe data
Tipe logis Parquet | Tipe data di Tablestore |
Boolean | Boolean |
Int64 | Int64 |
Double | Double |
UTF8 | String |
Penanganan kesalahan
Pesan kesalahan | Deskripsi | Solusi |
UnAuthorized | Tablestore tidak memiliki otorisasi untuk mengakses OSS. | Periksa apakah peran terkait layanan AliyunServiceRoleForOTSDataDelivery ada. Jika peran tidak ada, Anda harus membuat tugas pengiriman untuk memicu Tablestore membuat peran tersebut. |
InvalidOssBucket | Bucket OSS yang ditentukan tidak ada. |
Ketika bucket OSS dibuat, semua data ditulis ulang ke bucket OSS. Kemajuan pengiriman diperbarui. |