Sinkronkan data ke MaxCompute
Persiapan
1. Buat Tabel MaxCompute
DataHub memungkinkan Anda menyinkronkan data ke tabel MaxCompute, baik tabel partisi maupun tabel non-partisi. Untuk memudahkan pemrosesan data di MaxCompute, disarankan untuk menyinkronkan data ke tabel partisi.
DataHub mendukung penyinkronan data dari topik tipe TUPLE atau BLOB ke tabel MaxCompute.
(1) Jika ingin menyinkronkan data dari topik tipe TUPLE, pastikan tipe data dalam tabel MaxCompute sesuai dengan tipe data dalam topik DataHub. Berikut adalah pemetaan tipe data:
MaxCompute | DataHub |
BIGINT | BIGINT |
STRING | STRING |
BOOLEAN | BOOLEAN |
DOUBLE | DOUBLE |
DATETIME | TIMESTAMP |
DECIMAL | DECIMAL |
TINYINT | TINIINT |
SMALLINT | SMALLINT |
INT | INTEGER |
FLOAT | FLOAT |
MAP | Tidak didukung |
ARRAY | Tidak didukung |
DataHub tidak mendukung semua tipe data di MaxCompute. Disarankan membuat skema MaxCompute berdasarkan tipe data yang didukung oleh DataHub.
(2) Jika ingin menyinkronkan data dari topik tipe BLOB, skema MaxCompute harus berisi satu bidang bertipe STRING. Secara default, DataHub akan menyinkronkan data ke bidang ini.
DataHub | MaxCompute |
BLOB | STRING |
(3) Untuk mempermudah pelacakan data dan pemecahan masalah, disarankan menambahkan bidang __rowkey__ bertipe STRING saat membuat skema MaxCompute. DataHub secara otomatis menyinkronkan informasi jejak data yang disinkronkan di DataHub ke bidang ini untuk mempermudah pemecahan masalah selanjutnya.
2. Siapkan Akun untuk Sinkronisasi Data dengan Izin yang Diperlukan
(1) Saat membuat DataConnector untuk menyinkronkan data ke MaxCompute, Anda harus memasukkan informasi akun yang digunakan untuk mengakses tabel MaxCompute. Pastikan informasi akun tersebut valid. Dalam banyak kasus, Anda dapat menggunakan pengguna RAM untuk MaxCompute.
(2) Akun tersebut harus memiliki izin yang diperlukan pada tabel MaxCompute, termasuk izin CreateInstance, Describe, Alter, dan Update.
Anda dapat mengelola izin pada tabel MaxCompute melalui konsol DataWorks. Untuk informasi lebih lanjut, lihat Konfigurasi Izin Mesin MaxCompute. Anda juga dapat menggunakan alat baris perintah MaxCompute untuk otorisasi.
3. Tentukan Nilai Parameter TimestampUnit
(1) Parameter TimestampUnit menentukan unit konversi data tipe TIMESTAMP yang ditulis ke bidang tipe DATETIME di MaxCompute.
(2) Jika ingin bidang tipe TIMESTAMP ditulis ke MaxCompute dalam satuan detik, pilih SECOND dari daftar drop-down TimestampUnit saat membuat DataConnector. Untuk milidetik, pilih MILLISECOND, dan untuk mikrodetik, pilih MICROSECOND.
Catatan Penggunaan
Partisi yang lebih banyak dapat memperlambat sinkronisasi data dari DataHub karena standar penulisan di MaxCompute. Saat membuat DataConnector untuk menyinkronkan data ke MaxCompute, disarankan membatasi jumlah partisi, terutama dalam mode
USER_DEFINE.Pastikan timestamp rekaman dalam shard dan shard itu sendiri serapat mungkin.
Hindari pembuatan partisi berlebihan saat membuat partisi dalam semua mode partisi.
Buat DataConnector
Di panel navigasi sisi kiri konsol DataHub, klik Project Manager. Di halaman Daftar Proyek, temukan proyek dan klik Lihat di kolom Aksi. Di halaman detail proyek, temukan topik dan klik Lihat di kolom Aksi.
Klik tombol sinkronisasi
+Connectordi sudut kanan atas untuk membuat tugas sinkronisasi.
Di panel Buat Connector, klik MaxCompute, seperti yang ditunjukkan pada gambar berikut.

(2) Sinkronkan data dari topik tipe BLOB.

Deskripsi Beberapa Parameter:
Berikut adalah deskripsi beberapa parameter yang digunakan untuk membuat DataConnector di konsol DataHub. Untuk informasi lebih lanjut tentang konfigurasi sinkronisasi, lihat deskripsi SDK DataHub.
Impor Bidang
DataHub dapat menyinkronkan nilai bidang tertentu ke tabel MaxCompute berdasarkan pengaturan Anda.
Mode Partisi
Mode partisi menentukan ke partisi mana di MaxCompute data ditulis. Berikut adalah mode partisi yang didukung oleh DataHub:
Mode partisi | Dasar partisi | Tipe data topik yang didukung | Deskripsi |
USER_DEFINE | Nilai bidang partisi yang memiliki nama sama dengan bidang partisi di MaxCompute dalam rekaman | TUPLE | (1). Skema DataHub harus berisi bidang partisi di MaxCompute. (2) Nilai bidang ini harus berupa |
SYSTEM_TIME | Waktu ketika rekaman ditulis ke DataHub | TUPLE atau BLOB | (1). Atur format waktu untuk partisi MaxCompute dalam konfigurasi partisi. (2) Tentukan zona waktu. |
EVENT_TIME | Nilai bidang | TUPLE | (1). Atur format waktu untuk partisi MaxCompute dalam konfigurasi partisi. (2) Tentukan zona waktu. |
META_TIME | Nilai bidang | TUPLE / BLOB | (1). Atur format waktu untuk partisi MaxCompute dalam konfigurasi partisi. (2) Tentukan zona waktu. |
SYSTEM_TIME, EVENT_TIME, dan META_TIME adalah mode partisi di mana data dipartisi berdasarkan konfigurasi timestamp dan zona waktu. Satuan default adalah mikrodetik.
Konfigurasi Partisi: Konfigurasi timestamp berdasarkan mana data dipartisi. DataHub mendukung format waktu tetap di MaxCompute. Berikut adalah format waktu tetap dan partisi yang sesuai:
Partisi | Format waktu | Deskripsi |
ds | %Y%m%d | hari |
hh | %H | jam |
mm | %M | menit |
Rentang Waktu: Interval partisi ketika data dipartisi berdasarkan timestamp. Nilai valid:
15 hingga 1440. Satuan: menit. Nilai 1440 menunjukkan satu hari. Ukuran langkah parameter ini adalah15 menit.Zona Waktu: Zona waktu timestamp berdasarkan mana data dipartisi dan ditulis ke MaxCompute.
Kunci Pemisah: Saat membuat DataConnector untuk menyinkronkan data tipe BLOB, Anda dapat menentukan pembatas heksadesimal untuk membagi data tipe BLOB dan menyinkronkan data ke MaxCompute. Sebagai contoh,
0Amenunjukkanline feed (\n).Enkode Base64: Secara default, data tipe BLOB di DataHub adalah data biner, dan bidang yang dipetakan di MaxCompute adalah bertipe STRING. Oleh karena itu, enkode Base64 dilakukan sebelum sinkronisasi secara default. Anda dapat menggunakan SDK DataHub untuk memenuhi kebutuhan kustomisasi lebih lanjut.
Lihat DataConnector

Exa
Contoh
1. Mode USER_DEFINE
Buat topik DataHub.
Catatan: Skema topik harus berisi bidang partisi di MaxCompute, dan bidang tersebut bertipe STRING, seperti yang ditunjukkan pada gambar berikut.

Tulis data ke topik DataHub. Anda dapat menggunakan SDK DataHub untuk menulis data.
Selama pengujian, gunakan SDK DataHub untuk menulis beberapa rekaman. Nilai [ds,hh,mm] adalah [20210304,01,15] dan [20210304,02,15]. Gambar berikut menunjukkan rekaman tersebut.

3. Buat DataConnector.
Dalam mode USER_DEFINE, Anda dapat mengonfigurasi bidang partisi saat membuat DataConnector. Jika tidak ada tabel MaxCompute yang tersedia, tabel akan dibuat secara otomatis.

Dalam contoh ini, bidang yang diimpor adalah f1 dan f2. Bidang f3 tidak disinkronkan.
4. Verifikasi data yang disinkronkan.

Query data di tabel MaxCompute. Gambar berikut menunjukkan hasil query.
Dalam mode USER_DEFINE, DataHub menyinkronkan data dari DataHub ke partisi yang sesuai berdasarkan nilai bidang partisi di MaxCompute.
2. Mode SYSTEM_TIME
Buat topik DataHub.
Catatan: Partisi tempat data ditulis ditentukan berdasarkan waktu ketika data ditulis ke DataHub. Oleh karena itu, skema topik hanya perlu berisi bidang data dan tidak perlu berisi bidang partisi, seperti yang ditunjukkan pada gambar berikut.

Tulis data ke topik DataHub. Anda dapat menggunakan SDK DataHub untuk menulis data.
Selama pengujian, gunakan SDK DataHub untuk menulis beberapa rekaman. Waktu ketika data ditulis ke DataHub adalah
2021-03-04 14:02:45. Gambar berikut menunjukkan rekaman tersebut.
Buat DataConnector.

4. Verifikasi data yang disinkronkan.
Anda dapat melihat informasi sinkronisasi DataConnector di konsol DataHub, seperti DoneTime.

Query data di tabel MaxCompute. Gambar berikut menunjukkan hasil query.

Dalam mode SYSTEM_TIME, DataHub menyinkronkan data dari DataHub ke partisi yang sesuai berdasarkan waktu ketika data ditulis ke DataHub.
FAQ
Masalah: Timestamp untuk sinkronisasi data ke MaxCompute berubah menjadi 1970-01-19.
Penyebab: Satuan default timestamp untuk sinkronisasi data dari DataHub ke MaxCompute adalah mikrodetik, sedangkan satuan timestamp ketika data ditulis ke DataHub adalah milidetik. Solusi: Gunakan mikrodetik untuk satuan timestamp ketika data ditulis ke DataHub.