Sumber data MaxCompute adalah pusat data yang menyediakan saluran dua arah untuk membaca dari dan menulis ke MaxCompute.
Fitur
Sumber data MaxCompute di DataWorks menggunakan tunnel endpoint untuk mengakses layanan tunnel dari proyek MaxCompute, memungkinkan Anda melakukan sinkronisasi data dengan mengunggah atau mengunduh data dari proyek tersebut melalui operasi DownloadTable.
Untuk sumber data MaxCompute yang dibuat setelah 11 Desember 2023, jika layanan DataWorks dan proyek MaxCompute target berada di wilayah yang berbeda, Anda tidak dapat langsung melakukan sinkronisasi data menggunakan tunnel endpoint. Anda harus terlebih dahulu membeli instans Cloud Enterprise Network (CEN) untuk membuat koneksi jaringan. Sinkronisasi data lintas wilayah hanya dimungkinkan setelah koneksi tersebut dibuat. Untuk informasi lebih lanjut tentang CEN dan operasinya, lihat Cloud Enterprise Network (CEN).
Baca batch
-
MaxCompute Reader mendukung pembacaan data dari tabel partisi dan tabel non-partisi, tetapi tidak mendukung pembacaan dari virtual view atau tabel eksternal.
-
Saat melakukan pembacaan batch dari tabel partisi MaxCompute, Anda tidak dapat langsung mengonfigurasi pemetaan bidang untuk kolom kunci partisi. Untuk menyinkronkan nilai kunci partisi, tambahkan bidang kustom, masukkan nama partisi secara manual, lalu konfigurasi pemetaan bidang tersebut.
-
Anda dapat menentukan nilai partisi dengan menggunakan parameter penjadwalan untuk mengaktifkan penggantian otomatis, sehingga data dari partisi yang sesuai disinkronkan berdasarkan waktu penjadwalan.
Sebagai contoh, tabel partisi bernama t0 memiliki kolom id dan name. Kunci partisi level-1 adalah pt dan kunci partisi level-2 adalah ds. Untuk membaca data dari partisi dengan pt=<tanggal bisnis> dan ds=hangzhou, tentukan nilai partisi sebagai pt=${parameter penjadwalan} dan ds=hangzhou saat mengonfigurasi sumber. Kemudian, konfigurasikan pemetaan kolom untuk kolom id dan name.
-
Anda dapat menulis kolom kunci partisi ke tabel tujuan dengan menambahkannya sebagai bidang kustom.
-
MaxCompute Reader mendukung penyaringan data dengan menggunakan klausa WHERE.
Tulis batch
-
MaxCompute Writer tidak mendukung tipe data VARCHAR jika data sumber berisi nilai null.
-
Jika tabel tujuan adalah
DeltaTable, buka Advanced Configuration dan atur Visible After Synchronization ke Yes. Jika tidak, tugas akan menghasilkan error jika konkurensi lebih besar dari 1. -
Sinkronisasi data dari sumber ke tabel eksternal MaxCompute tidak didukung.
-
Jika suatu kolom di tabel tujuan tidak dipetakan ke kolom sumber, Data Integration akan mengatur nilainya menjadi null setelah sinkronisasi, meskipun nilai default telah ditentukan saat tabel dibuat.
Tulis real-time
-
Tugas sinkronisasi real-time mendukung serverless resource groups.
-
Tugas sinkronisasi real-time tidak mendukung sinkronisasi tabel tanpa primary key.
-
Sinkronisasi data dari sumber ke tabel eksternal MaxCompute tidak didukung.
-
Saat melakukan sinkronisasi real-time ke sumber data MaxCompute default (biasanya
odps_first), pasangan AccessKey temporary digunakan secara default. Pasangan AccessKey temporary tersebut kedaluwarsa setelah 7 hari, sehingga menyebabkan tugas gagal. Platform secara otomatis me-restart tugas ketika mendeteksi bahwa kegagalan disebabkan oleh kedaluwarsa pasangan AccessKey temporary. Jika Anda telah mengonfigurasi aturan pemantauan untuk jenis peringatan ini, Anda akan menerima pemberitahuan peringatan. -
Untuk sinkronisasi real-time satu klik ke tugas MaxCompute, hanya data historis lengkap yang dapat dikueri pada hari konfigurasi. Data inkremental hanya dapat dikueri di MaxCompute setelah proses merge selesai pada hari berikutnya.
-
Tugas sinkronisasi real-time satu klik ke MaxCompute menghasilkan partisi lengkap setiap hari. Untuk mencegah penggunaan penyimpanan berlebihan, tabel MaxCompute yang dibuat secara otomatis oleh tugas ini memiliki siklus hidup default selama 30 hari. Jika hal ini tidak sesuai dengan kebutuhan bisnis Anda, Anda dapat mengklik nama tabel MaxCompute yang sesuai saat mengonfigurasi tugas sinkronisasi untuk mengubah siklus hidupnya.
-
Data Integration menggunakan saluran data sinkronisasi engine MaxCompute untuk mengunggah dan mengunduh data. Untuk detail SLA saluran data sinkronisasi, lihat MaxCompute Tunnel overview. Evaluasi pilihan teknologi sinkronisasi data Anda berdasarkan SLA saluran data sinkronisasi engine MaxCompute.
-
Untuk sinkronisasi real-time satu klik ke MaxCompute dalam mode instans, grup sumber daya eksklusif untuk Data Integration harus memiliki spesifikasi minimum 8C16G.
-
Hanya sumber data MaxCompute kustom di wilayah yang sama dengan ruang kerja saat ini yang didukung. Proyek MaxCompute lintas wilayah mungkin lolos uji konektivitas, tetapi selama eksekusi tugas, error yang menunjukkan bahwa engine tidak ada akan dilaporkan pada fase pembuatan tabel di MaxCompute.
-
Saat MaxCompute digunakan sebagai tujuan untuk sinkronisasi basis data lengkap, jika tipe tabel adalah tabel reguler, hanya sinkronisasi real-time satu klik ke MaxCompute dan mode streaming inkremental untuk sinkronisasi real-time basis data lengkap yang didukung. Jika tipe tabel adalah Delta Table, baik sinkronisasi real-time basis data lengkap maupun sinkronisasi real-time satu klik ke MaxCompute didukung.
CatatanSaat Anda menggunakan sumber data MaxCompute kustom, proyek DataWorks tetap harus dikaitkan dengan engine MaxCompute. Jika tidak, Anda tidak dapat membuat node SQL MaxCompute, sehingga menyebabkan kegagalan pembuatan node done-flag untuk sinkronisasi lengkap.
Tipe kolom yang didukung
Tipe data MaxCompute 1.0, tipe data 2.0, dan tipe data kompatibel Hive didukung. Bagian berikut menjelaskan tipe kolom yang didukung oleh setiap edisi tipe data.
Kolom yang didukung oleh tipe data 1.0
|
Tipe kolom |
Batch Read |
Tulis batch |
Penulisan real-time |
|
BIGINT |
Didukung |
Didukung |
Didukung |
|
DOUBLE |
Didukung |
Didukung |
Didukung |
|
DECIMAL |
Didukung |
Didukung |
Didukung |
|
STRING |
Didukung |
Didukung |
Didukung |
|
DATETIME |
Didukung |
Didukung |
Didukung |
|
BOOLEAN |
Didukung |
Didukung |
Didukung |
|
ARRAY |
Didukung |
Didukung |
Didukung |
|
MAP |
Didukung |
Didukung |
Didukung |
|
STRUCT |
Didukung |
Didukung |
Didukung |
Kolom yang didukung oleh tipe data 2.0 dan tipe data kompatibel Hive
|
Tipe kolom |
Baca batch (MaxCompute Reader) |
Tulis batch (MaxCompute Writer) |
Tulis real-time |
|
TINYINT |
Didukung |
Didukung |
Didukung |
|
SMALLINT |
Didukung |
Didukung |
Didukung |
|
INT |
Didukung |
Didukung |
Didukung |
|
BIGINT |
Didukung |
Didukung |
Didukung |
|
BINARY |
Didukung |
Didukung |
Didukung |
|
FLOAT |
Didukung |
Didukung |
Didukung |
|
DOUBLE |
Didukung |
Didukung |
Didukung |
|
DECIMAL(pecision,scale) |
Didukung |
Didukung |
Didukung |
|
VARCHAR(n) |
Didukung |
Didukung |
Didukung |
|
CHAR(n) |
Tidak didukung |
Didukung |
Didukung |
|
STRING |
Didukung |
Didukung |
Didukung |
|
DATE |
Didukung |
Didukung |
Didukung |
|
DATETIME |
Didukung |
Didukung |
Didukung |
|
TIMESTAMP |
Didukung |
Didukung |
Didukung |
|
BOOLEAN |
Didukung |
Didukung |
Didukung |
|
ARRAY |
Didukung |
Didukung |
Didukung |
|
MAP |
Didukung |
Didukung |
Didukung |
|
STRUCT |
Didukung |
Didukung |
Didukung |
Konversi tipe data
Tabel berikut menjelaskan konversi tipe data yang didukung oleh MaxCompute Reader.
|
Kategori tipe |
Tipe Data Integration |
Tipe data database |
|
Integer |
LONG |
BIGINT, INT, TINYINT, dan SMALLINT |
|
Boolean |
BOOLEAN |
BOOLEAN |
|
Tanggal dan waktu |
DATE |
DATETIME, TIMESTAMP, dan DATE |
|
Bilangan pecahan |
DOUBLE |
FLOAT, DOUBLE, dan DECIMAL |
|
Biner |
BYTES |
BINARY |
|
Kompleks |
STRING |
ARRAY, MAP, dan STRUCT |
Jika konversi data gagal atau data gagal ditulis ke sumber data tujuan, data tersebut dianggap sebagai dirty data. Anda dapat menggabungkan hal ini dengan ambang batas dirty data.
Persiapan sebelum sinkronisasi data
Sebelum membaca data dari atau menulis data ke tabel MaxCompute, Anda dapat mengaktifkan properti terkait sesuai kebutuhan.
Koneksikan ke MaxCompute dan aktifkan pengaturan tingkat proyek
-
Masuk ke klien MaxCompute. Untuk informasi lebih lanjut, lihat Klien MaxCompute.
-
Aktifkan pengaturan tingkat proyek MaxCompute: Pastikan Anda memiliki izin yang diperlukan. Anda dapat menggunakan akun Project Owner untuk melakukan operasi terkait. Untuk informasi lebih lanjut tentang izin MaxCompute, lihat Izin MaxCompute.
Aktifkan properti ACID
Anda dapat menggunakan akun Project Owner untuk menjalankan perintah berikut pada klien guna mengaktifkan properti ACID. Untuk informasi lebih lanjut tentang semantik ACID di MaxCompute, lihat Semantik ACID.
setproject odps.sql.acid.table.enable=true;
(Opsional) Aktifkan tipe data 2.0
Jika Anda perlu menggunakan tipe TIMESTAMP dalam tipe data MaxCompute 2.0, Anda dapat menggunakan akun Project Owner untuk menjalankan perintah berikut pada klien guna mengaktifkan tipe data 2.0.
setproject odps.sql.type.system.odps2=true;
(Opsional) Berikan akses ke akun
Saat Anda mengaitkan sumber daya komputasi MaxCompute dengan ruang kerja, sumber data MaxCompute dibuat secara default di DataWorks. Anda dapat menggunakan sumber data ini untuk sinkronisasi data di ruang kerja saat ini. Jika Anda ingin menyinkronkan data dari sumber data MaxCompute ini di ruang kerja lain, pastikan akun akses yang ditentukan untuk sumber data di ruang kerja lain memiliki izin yang diperlukan untuk mengakses proyek MaxCompute. Untuk otorisasi lintas akun, lihat Otorisasi lintas akun.
Buat sumber data MaxCompute
Sebelum mengembangkan tugas sinkronisasi data, Anda harus membuat proyek MaxCompute sebagai sumber data MaxCompute di DataWorks. Untuk informasi lebih lanjut, lihat Buat sumber data MaxCompute.
-
Ruang kerja dalam mode standar mendukung isolasi sumber data. Anda dapat menambahkan dan mengisolasi sumber data secara terpisah untuk lingkungan pengembangan dan lingkungan produksi guna melindungi data Anda. Untuk informasi lebih lanjut, lihat Konfigurasi isolasi sumber data.
-
Jika sumber data MaxCompute bernama odps_first di ruang kerja tidak dibuat secara manual di halaman sumber data, maka sumber data tersebut adalah sumber data yang dibuat secara otomatis untuk engine MaxCompute pertama yang dikaitkan dengan ruang kerja sebelum peningkatan sumber data. Saat Anda melakukan sinkronisasi data menggunakan sumber data ini, data dibaca dari atau ditulis ke proyek engine MaxCompute yang sesuai.
Anda dapat melihat nama proyek MaxCompute yang digunakan oleh sumber data di halaman konfigurasi sumber data untuk memastikan proyek MaxCompute mana yang akhirnya digunakan untuk membaca atau menulis data. Untuk informasi lebih lanjut, lihat Lihat detail sumber data.
Kembangkan tugas sinkronisasi data
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Konfigurasi tugas sinkronisasi batch tabel tunggal
-
Untuk prosedurnya, lihat Konfigurasi tugas sinkronisasi batch dalam mode wizard dan Konfigurasi tugas sinkronisasi batch dalam mode skrip.
-
Untuk daftar lengkap parameter dan demo skrip untuk mode skrip, lihat Lampiran: Demo skrip dan deskripsi parameter.
Konfigurasi tugas sinkronisasi real-time tabel tunggal
Untuk prosedurnya, lihat Konfigurasi tugas sinkronisasi real-time tabel tunggal.
Konfigurasi tugas sinkronisasi basis data lengkap
Untuk prosedurnya, lihat Sinkronisasi data dari basis data lengkap dalam mode batch, Sinkronisasi data dari basis data lengkap dalam mode real-time, dan Sinkronisasi real-time satu klik ke MaxCompute.
FAQ
Untuk pertanyaan umum lainnya tentang Data Integration, lihat FAQ Data Integration.
Lampiran: Demo skrip dan deskripsi 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 Gunakan Editor Kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Demo skrip Reader
Hapus komentar dari kode berikut sebelum menjalankannya.
{
"type":"job",
"version":"2.0",
"steps":[
{
"stepType":"odps",//Nama plug-in.
"parameter":{
"partition":[],//Partisi dari mana data dibaca.
"isCompress":false,//Menentukan apakah data dikompresi.
"datasource":"",//Sumber data.
"column":[//Informasi kolom tabel sumber.
"id"
],
"where": "",//Konten klausa WHERE spesifik saat penyaringan data menggunakan WHERE diaktifkan.
"enableWhere":false,//Menentukan apakah penyaringan data menggunakan WHERE diaktifkan.
"table":""//Nama tabel.
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"//Jumlah error.
},
"speed":{
"throttle":true,//Jika throttle diatur ke false, parameter mbps tidak berlaku dan pembatasan kecepatan dinonaktifkan. Jika throttle diatur ke true, pembatasan kecepatan diaktifkan.
"concurrent":1, //Konkurensi.
"mbps":"12"//Laju pembatasan. 1 mbps = 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Jika Anda ingin menentukan Tunnel Endpoint untuk MaxCompute, Anda dapat mengonfigurasi sumber data secara manual dalam mode skrip. Ganti "datasource":"", pada contoh di atas dengan parameter spesifik sumber data. Contoh:
"accessId":"*******************",
"accessKey":"*******************",
"endpoint":"http://service.eu-central-1.maxcompute.aliyun-inc.com/api",
"odpsServer":"http://service.eu-central-1.maxcompute.aliyun-inc.com/api",
"tunnelServer":"http://dt.eu-central-1.maxcompute.aliyun.com",
"project":"*****",
Parameter skrip Reader
|
Parameter |
Deskripsi |
Wajib |
Nilai default |
|
datasource |
Nama sumber data. Mode skrip memungkinkan Anda menambahkan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang telah Anda tambahkan. |
Ya |
Tidak ada |
|
table |
Nama tabel dari mana data dibaca. Nama tidak peka huruf besar/kecil. |
Ya |
Tidak ada |
|
partition |
Informasi partisi data yang akan dibaca.
Sebagai contoh, tabel partisi test memiliki empat partisi berikut: pt=1,ds=hangzhou, pt=1,ds=shanghai, pt=2,ds=hangzhou, dan pt=2,ds=beijing. Anda dapat mengonfigurasi pengaturan berikut untuk membaca data dari partisi yang berbeda:
Selain itu, Anda dapat menetapkan kondisi untuk mengambil data partisi sesuai kebutuhan:
Catatan
|
Wajib jika tabel adalah tabel partisi. Tidak boleh ditentukan jika tabel adalah tabel non-partisi. |
Tidak ada |
|
column |
Informasi kolom tabel sumber MaxCompute. Sebagai contoh, jika tabel test memiliki kolom id, name, dan age:
|
Ya |
Tidak ada |
|
enableWhere |
Menentukan apakah akan menggunakan klausa WHERE untuk penyaringan data. |
Tidak |
false |
|
where |
Konten klausa WHERE spesifik saat penyaringan data menggunakan WHERE diaktifkan. |
Tidak |
Tidak ada |
Demo skrip Writer
Berikut adalah contoh konfigurasi skrip.
{
"type":"job",
"version":"2.0",//Nomor versi.
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"odps",//Nama plug-in.
"parameter":{
"partition":"",//Informasi partisi.
"truncate":true,//Aturan pembersihan.
"isCompress":false,//Menentukan apakah data dikompresi.
"datasource":"odps_first",//Nama sumber data.
"column": [//Nama kolom sumber.
"id",
"name",
"age",
"sex",
"salary",
"interest"
],
"table":""//Nama tabel.
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"//Jumlah error, yang menentukan jumlah maksimum catatan dirty data yang dapat ditoleransi.
},
"speed":{
"throttle":true,//Jika throttle diatur ke false, parameter mbps tidak berlaku dan pembatasan kecepatan dinonaktifkan. Jika throttle diatur ke true, pembatasan kecepatan diaktifkan.
"concurrent":1, //Konkurensi.
"mbps":"12"//Laju pembatasan. 1 mbps = 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Jika Anda ingin menentukan Tunnel Endpoint untuk MaxCompute, Anda dapat mengonfigurasi sumber data secara manual dalam mode skrip. Ganti "datasource":"", pada contoh di atas dengan parameter spesifik sumber data. Contoh:
"accessId":"<yourAccessKeyId>",
"accessKey":"<yourAccessKeySecret>",
"endpoint":"http://service.eu-central-1.maxcompute.aliyun-inc.com/api",
"odpsServer":"http://service.eu-central-1.maxcompute.aliyun-inc.com/api",
"tunnelServer":"http://dt.eu-central-1.maxcompute.aliyun.com",
"project":"**********",
Parameter skrip Writer
|
Parameter |
Deskripsi |
Wajib |
Nilai default |
|
datasource |
Nama sumber data. Mode skrip memungkinkan Anda menambahkan sumber data. Nilai parameter ini harus sama dengan nama sumber data yang telah Anda tambahkan. |
Ya |
Tidak ada |
|
table |
Nama tabel tempat data ditulis. Nama tidak peka huruf besar/kecil. Anda tidak dapat menentukan beberapa tabel. |
Ya |
Tidak ada |
|
partition |
Informasi partisi tabel tempat data ditulis. Anda harus menentukan partisi hingga level terakhir. Misalnya, untuk menulis data ke tabel dengan tiga level partisi, Anda harus menentukan partisi level terakhir, seperti
|
Wajib jika tabel adalah tabel partisi. Tidak boleh ditentukan jika tabel adalah tabel non-partisi. |
Tidak ada |
|
column |
Daftar kolom yang akan diimpor. Untuk mengimpor semua kolom, konfigurasikan
|
Ya |
Tidak ada |
|
truncate |
Dengan mengatur Karena pembersihan data menggunakan MaxCompute SQL, SQL tidak dapat menjamin atomicity. Oleh karena itu, opsi truncate bukan operasi atomik. Saat beberapa tugas membersihkan partisi dari Table atau Partition yang sama secara bersamaan, masalah pengurutan konkurensi dapat terjadi. Untuk menghindari masalah ini, kami menyarankan agar Anda tidak menjalankan beberapa job yang melakukan operasi DDL pada partisi yang sama secara bersamaan, atau membuat partisi sebelum memulai beberapa job konkuren. |
Ya |
Tidak ada |
|
emptyAsNull |
Menentukan apakah string kosong akan dikonversi menjadi NULL sebelum penulisan. |
Tidak |
false |
|
consistencyCommit |
Terlihat setelah sinkronisasi.
|
Tidak |
false |