Panduan ini memandu Anda melalui konfigurasi node sinkronisasi batch untuk menyalin satu tabel Hive E-MapReduce (EMR) ke MaxCompute, mencakup penyiapan sumber data, konektivitas jaringan, konfigurasi node, dan penjadwalan.
Batasan
Sinkronisasi data sumber ke tabel eksternal MaxCompute tidak didukung.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Sumber data Hive dan sumber data MaxCompute — lihat Konfigurasi sumber data
Konektivitas jaringan antara resource group dan sumber data — lihat Solusi konektivitas jaringan
CatatanJika Anda menggunakan titik akhir publik untuk menghubungkan resource group eksklusif ke EMR, konfigurasikan aturan grup keamanan kluster EMR agar mengizinkan akses inbound dari alamat IP elastis (EIP) resource group eksklusif tersebut. Aturan inbound harus membuka port 10000, 9093, dan 8020.
Langkah 1: Buat node dan konfigurasikan tugas
Untuk langkah umum membuat node dan menggunakan antarmuka Codeless UI, lihat Konfigurasikan tugas di Codeless UI.
Langkah 2: Konfigurasikan sumber data dan tujuan
Konfigurasikan sumber data (Hive)
Pilih metode baca
Tersedia dua metode baca. Pilih berdasarkan kebutuhan Anda akan pemfilteran baris atau dukungan view:
| HDFS | JDBC | |
|---|---|---|
| Cara kerja | Hive Reader mengakses Hive Metastore untuk mendapatkan path file HDFS, format, dan delimiter tabel, lalu membaca langsung dari file Hadoop Distributed File System (HDFS) | Hive Reader terhubung ke HiveServer2 melalui klien Hive JDBC dan membaca data menggunakan SQL |
| Kinerja | Lebih tinggi | Lebih rendah — menghasilkan program MapReduce |
| Pemfilteran kondisional (where) | Tidak didukung | Didukung |
| Tampilan Baca | Tidak didukung | Didukung |
| UI label | Read data from HDFS files. | Read data using Hive JDBC (supports conditional filtering). |
Gunakan HDFS untuk throughput maksimum jika Anda tidak memerlukan pemfilteran. Gunakan JDBC jika Anda perlu memfilter baris dengan klausa where atau membaca dari view Hive.
Parameter utama
| Parameter | Deskripsi | Wajib |
|---|---|---|
| Hive Read Method | Pilih Read data from HDFS files. atau Read data using Hive JDBC (supports conditional filtering). Lihat tabel perbandingan di atas. | Ya |
| Table | Pilih tabel Hive yang akan disinkronkan. UI hanya menampilkan tabel dan skema dari lingkungan pengembangan. Pastikan skema tabel identik di kedua lingkungan pengembangan dan produksi — jika berbeda, tugas dapat gagal di produksi dengan error "table not found" atau "column not found". | Ya |
| Parquet schema | Diperlukan jika tabel Hive disimpan dalam format Parquet. | Kondisional |
Konfigurasikan tujuan data (MaxCompute)
Parameter yang tidak tercantum dalam tabel berikut dapat dibiarkan pada nilai default-nya.
| Parameter | Deskripsi | Wajib |
|---|---|---|
| Tunnel Resource Group | Kuota saluran data MaxCompute yang digunakan untuk transfer data. Default-nya adalah Public transport resources, yaitu kuota gratis yang disediakan oleh MaxCompute. Jika kuota saluran data eksklusif Anda tidak tersedia karena pembayaran tertunda atau masa berlaku habis, tugas secara otomatis beralih ke Public transport resources saat waktu proses. | Ya |
| Table | Pilih tabel MaxCompute tujuan. Di ruang kerja DataWorks standar, tabel dengan nama yang sama dan skema yang konsisten harus ada di kedua lingkungan pengembangan dan produksi. Anda juga dapat mengklik Generate Destination Table Schema agar sistem membuat tabel secara otomatis — sesuaikan pernyataan pembuatan tabel sesuai kebutuhan. | Ya |
| Partition Information | Diperlukan jika tabel tujuan dipartisi. Masukkan nilai tetap (misalnya, ds=20220101) atau parameter penjadwalan (misalnya, ds=${bizdate}). Sistem mengganti parameter penjadwalan saat waktu proses. | Kondisional |
| Write Method | Pilih overwrite untuk mengganti data yang ada atau append untuk menambahkannya. | Ya |
Perhatikan masalah umum berikut terkait tabel tujuan:
Jika tabel tidak ada di lingkungan pengembangan, tabel tersebut tidak akan muncul dalam daftar drop-down tabel tujuan.
Jika tabel tidak ada di lingkungan produksi, tugas sinkronisasi gagal setelah dipublikasikan.
Jika skema tabel berbeda antara lingkungan pengembangan dan produksi, pemetaan kolom selama eksekusi terjadwal mungkin menyimpang dari pemetaan yang dikonfigurasi, sehingga menyebabkan penulisan data yang salah.
Langkah 3: Konfigurasikan dan validasi tugas
Pemetaan bidang: Gunakan Map Fields with the Same Name atau Map Fields in the Same Line untuk memetakan kolom secara otomatis. Jika urutan atau nama bidang berbeda antara sumber dan tujuan, sesuaikan pemetaan secara manual.
Kontrol channel: Atur Policy for Dirty Data Records untuk menolak data kotor guna menjaga kualitas data. Biarkan parameter lain pada nilai default-nya pada awalnya.
Langkah 4: Debug tugas
Di sisi kanan halaman konfigurasi node sinkronisasi batch, klik Run Configuration. Atur Resource Group dan Script Parameters untuk eksekusi debug, lalu klik Run di bilah alat atas untuk memverifikasi bahwa pipeline sinkronisasi berjalan sukses.
Jalankan kueri spot-check terhadap tabel tujuan:
Di panel navigasi kiri, klik
, lalu klik
di sebelah kanan Personal Directory untuk membuat file dengan ekstensi .sql.Jalankan kueri berikut dan verifikasi hasilnya sesuai ekspektasi:
CatatanUntuk melakukan kueri data dengan cara ini, bind proyek MaxCompute tujuan sebagai resource komputasi untuk DataWorks. Di sisi kanan halaman pengeditan file
.sql, klik Run Configuration, tentukan Type, Computing Resources, dan Resource Group, lalu klik Run di bilah alat atas.SELECT * FROM <your_maxcompute_destination_table> WHERE pt=<your_partition> LIMIT 20;
Langkah 5: Jadwalkan dan publikasikan tugas
Di sisi kanan node sinkronisasi batch, klik Scheduling Settings. Konfigurasikan parameter eksekusi periodik seperti yang dijelaskan dalam Konfigurasi penjadwalan. Lalu klik Publish di bilah alat atas dan ikuti petunjuk di layar untuk mempublikasikan tugas.