All Products
Search
Document Center

DataWorks:Sinkronisasi dan penggabungan kode Git

Last Updated:Jul 10, 2026

DataWorks terintegrasi secara mendalam dengan Git untuk menghadirkan model pengembangan data baru. Fitur sinkronisasi dan penggabungan kodenya menghubungkan platform DataWorks ke repositori Git Anda. Setiap kali Anda menyimpan atau menerapkan kode, semua perubahan secara otomatis disinkronkan ke cabang Git yang ditentukan. Anda juga dapat dengan mudah menggabungkan perubahan kode dari cabang Git kembali ke DataWorks.

Penting

Fitur ini saat ini dalam status pratinjau publik dan hanya tersedia di DataWorks Edisi Perusahaan.

Ikhtisar

Integrasi antara DataWorks dan Git mencakup dua alur kerja yang memungkinkan manajemen kode dalam satu ruang kerja serta penggabungan kode lintas ruang kerja:

  • Sync from DataWorks to Git: Saat Anda menyimpan atau menerapkan kode di DataWorks, perubahan tersebut secara otomatis dikomit ke cabang terlindungi di repositori Git. Proses ini dilakukan oleh akun Git khusus dan kelompok sumber daya serverless yang memiliki akses jaringan.

  • Merge from Git to DataWorks: Gabungkan perubahan kode dari cabang utama atau cabang independen repositori Git Anda kembali ke DataWorks.

DataWorks secara otomatis membuat dan mengelola tiga cabang berikut di repositori Git Anda, menggunakan aturan cabang terlindungi untuk mencegah perubahan manual:

  • dataworks_${region}_${projectId}_save: Berkaitan dengan kode setelah operasi simpan di DataWorks.

  • dataworks_${region}_${projectId}_release_dev: Berkaitan dengan kode yang berhasil diterapkan ke lingkungan pengembangan.

  • dataworks_${region}_${projectId}_release_prod: Berkaitan dengan kode yang berhasil diterapkan ke lingkungan produksi.

Konfigurasi dan inisialisasi

Langkah 1: Siapkan sumber daya dan jaringan

Tugas sinkronisasi kode berjalan pada kelompok sumber daya serverless dan memerlukan akses jaringan ke repositori Git serta OSS Anda.

  1. Siapkan kelompok sumber daya serverless dan konfigurasikan jaringan.

    • Siapkan kelompok sumber daya serverless DataWorks dan kaitkan dengan ruang kerja target.

    • Pastikan kelompok sumber daya tersebut dapat mengakses port SSH server Git. Hanya port 22 yang didukung.

      • Repositori Git publik (misalnya, Alibaba Cloud DevOps CodeUp atau GitHub.com): Konfigurasikan Gateway NAT Internet dan EIP untuk VPC kelompok sumber daya agar dapat mengakses jaringan publik.

      • Repositori Git privat: Pastikan kelompok sumber daya dan server Git dapat berkomunikasi melalui jaringan pribadi (VPC). Untuk informasi selengkapnya, lihat Solusi konektivitas jaringan.

  2. Siapkan sumber data OSS. Fitur sinkronisasi kode menggunakan OSS untuk penyimpanan sementara.

    • Buat Bucket OSS di wilayah yang sama dengan ruang kerja DataWorks.

    • Di halaman Data Source Management ruang kerja DataWorks, buat sumber data OSS yang mengarah ke bucket tersebut.

      Catatan

      Pastikan kredensial akses yang digunakan oleh sumber data OSS memiliki izin berikut: oss:GetObject, oss:ListObjects, oss:PutObject, dan oss:DeleteObject.

Langkah 2: Siapkan lingkungan Git

Buat akun khusus di platform Git, konfigurasikan kunci SSH, dan atur aturan perlindungan cabang.

  1. Buat akun Git khusus dan hasilkan kunci SSH.

    1. Buat akun di platform Git (misalnya, Alibaba Cloud DevOps CodeUp atau GitLab) yang khusus digunakan untuk komit kode otomatis (misalnya, dataworks_pusher), dan konfigurasikan alamat email yang valid.

    2. Hasilkan pasangan kunci SSH dalam mode algoritma RSA. Jangan mengatur passphrase selama proses pembuatan kunci.

      • Tujuan: Menghasilkan kunci publik dan kunci privat SSH untuk otentikasi.

      • Perintah:

        # Ganti "your_user_email@example.com" dengan email akun yang dikonfigurasi pada langkah sebelumnya
        ssh-keygen -t rsa -C "your_user_email@example.com"
        
        # Saat diminta memasukkan passphrase, tekan Enter untuk melewati
        # Enter passphrase (empty for no passphrase): [Enter]
        # Enter same passphrase again: [Enter]
      • Hasil: Setelah perintah dieksekusi, file id_rsa (kunci privat) dan id_rsa.pub (kunci publik) dihasilkan di direktori ~/.ssh/. Konten kedua file ini akan digunakan pada langkah-langkah berikutnya.

        # Salin dan simpan konten kunci publik dan privat, yang akan dibutuhkan pada langkah selanjutnya
        cat ~/.ssh/id_rsa.pub
        cat ~/.ssh/id_rsa
  2. Tambahkan kunci publik di platform Git.

    Masuk ke platform Git dan tambahkan kunci publik yang dihasilkan pada langkah sebelumnya (konten file id_rsa.pub) di halaman manajemen kunci SSH akun dataworks_pusher.

  3. Buat repositori kode dan konfigurasikan aturan perlindungan cabang.

    1. Buat repositori Git yang khusus diperuntukkan bagi manajemen kode DataWorks, misalnya DataWorks_code.

    2. Atur aturan perlindungan cabang di repositori untuk mencegah modifikasi langsung pada cabang yang dikelola secara otomatis oleh DataWorks. Operasi ini harus dilakukan oleh administrator repositori.

      Penting

      Aturan perlindungan cabang yang dikonfigurasi secara salah dapat menyebabkan cabang yang dikelola otomatis oleh DataWorks dimodifikasi secara tidak sengaja, sehingga mengganggu konsistensi sinkronisasi.

      • Pola nama cabang: dataworks_*

      • Diizinkan untuk push: Pilih anggota tertentu dan tambahkan akun dataworks_pusher.

      • Allowed to merge: Pilih No one.

Langkah 3: Konfigurasikan dan inisialisasi sinkronisasi kode

Penting

Hanya administrator penyewa dan administrator ruang kerja yang dapat mengonfigurasi sinkronisasi kode untuk ruang kerja saat ini. Peran lain tidak memiliki izin untuk menambah atau mengubah pengaturan ini.

Buat koneksi antara ruang kerja DataWorks dan repositori Git, lalu mulai inisialisasi.

  1. Buka halaman Workspaces di Konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Temukan ruang kerja yang diinginkan dan pilih Shortcuts > Data Studio di kolom Actions.

  2. (Opsional) Uji konektivitas. Sebelum mengonfigurasi pengaturan secara resmi, Anda dapat membuat node Shell sementara di Data Studio dan menggunakan kelompok sumber daya serverless yang telah disiapkan untuk debugging guna memverifikasi konektivitas jaringan dan validitas kunci privat SSH.

    Uji konektivitas jaringan: Jalankan perintah telnet. Jika log menampilkan "Connected to ...", artinya jaringan terhubung. Setelah jaringan terhubung, Anda dapat menghentikan tugas tersebut.

    # Ganti dengan domain atau IP server Git Anda, misalnya alamat Codeup: codeup.aliyun.com
    telnet your_git_server_domain 22

    Ambil contoh Alibaba Cloud DevOps (CodeUp). Jika konten berikut muncul di log, artinya jaringan terhubung dan Anda dapat menghentikan tugas. Jika tidak, Anda perlu memeriksa apakah konfigurasi jaringan berhasil.|

    2025-11-03 19: 09:28 INF0 ALISA_TASK_PRI0RITY=0:
    2025-11-03 19:09:28 INF0 --- Invoking Shell command line now --2025-11-03 19:09:28 INF0
    Trying 118..50...
    Connected to codeup-aliyun.com.
    Escape character is '^]'.
    SSH-2.0-G0
  3. Di panel navigasi kiri, klik imageCode Management untuk membuka halaman konfigurasi Code Synchronization. Konfigurasikan parameter berikut:

    Nama

    Deskripsi

    SSH Address

    Alamat SSH repositori Git target.

    Private key

    Tempel konten lengkap kunci privat (file id_rsa) yang dihasilkan pada Langkah 2.

    Penting

    Konten kunci privat harus mencakup -----BEGIN OPENSSH PRIVATE KEY----- dan -----END OPENSSH PRIVATE KEY-----.

    OSS Data Source

    Pilih sumber data OSS yang telah Anda siapkan.

    Catatan

    Jika muncul pesan bahwa kelompok sumber daya saat ini tidak memiliki izin untuk mengakses sumber data OSS, klik tautan otorisasi untuk memberikan izin yang diperlukan.

    OSS Path

    Tentukan path OSS untuk menyimpan metadata kode. Contoh: dataworks-workspace-code.

    General Resource Group

    Pilih kelompok sumber daya serverless yang telah Anda siapkan sebelumnya.

  4. Setelah konfigurasi selesai, klik Start Synchronization. Setelah sinkronisasi diaktifkan, Anda perlu menginisialisasi repositori Git. Klik Initialization. Sistem secara otomatis membuat cabang yang diperlukan oleh DataWorks di repositori Git dan menyinkronkan kode di ruang kerja saat ini. Proses ini mungkin memakan waktu beberapa menit. Selama periode ini, klik tombol image di pojok kanan atas untuk melihat log inisialisasi.

    Catatan

    Setelah Anda menonaktifkan sinkronisasi, Anda harus melakukan inisialisasi ulang untuk mengaktifkannya kembali. Sebelum inisialisasi ulang, kosongkan konten file di OSS.

    Setelah konfigurasi berlaku, DataWorks secara otomatis membuat dan mengelola tiga cabang berikut di repositori Git Anda. Jangan membuat atau memodifikasi cabang-cabang ini secara manual:

    • dataworks_${region}_${projectId}_save: Berkaitan dengan kode setelah operasi simpan di DataWorks.

    • dataworks_${region}_${projectId}_release_dev: Berkaitan dengan kode yang berhasil diterapkan ke lingkungan pengembangan. Jika ruang kerja berada dalam mode dasar, cabang dev tidak dibuat.

    • dataworks_${region}_${projectId}_release_prod: Berkaitan dengan kode yang berhasil diterapkan ke lingkungan produksi.

    Sejak saat ini, setiap operasi simpan dan terapkan di DataWorks secara otomatis menyinkronkan perubahan kode dan konfigurasi yang sesuai ke cabang terkait di Git.

    Klik cabang simpan default untuk melihat kode node, alur kerja, direktori, dan informasi lainnya yang tersimpan di ruang kerja saat ini.

Langkah 4: Verifikasi sinkronisasi kode

  1. Buat node Shell untuk pengembangan data dan beri nama shell_test.

  2. Masukkan kode berikut di editor kode dan klik tombol Save pada bilah alat.

    echo 'Code push test.'
  3. Masuk ke Git, buka repositori target, pilih cabang simpan, lalu temukan folder shell_test. Anda akan melihat folder tersebut berisi tiga file: shell_test.sh (file kode), shell_test.spec.json (file konfigurasi penjadwalan), dan dataworks.properties (file variabel). Klik shell_test.sh untuk melihat node shell_test beserta konten kodenya, yang menunjukkan bahwa sinkronisasi berhasil.

  4. Untuk memverifikasi status sinkronisasi dua cabang lainnya, terapkan node ke lingkungan yang sesuai. Untuk informasi lebih lanjut tentang cara menerapkan node, lihat Deploy nodes.

Skenario dan fitur

Reverse merge

DataWorks tidak hanya mendukung sinkronisasi kode ke Git, tetapi juga menyediakan kemampuan reverse merge yang andal. Anda dapat dengan mudah menggabungkan perubahan terbaru dari cabang Git jarak jauh kembali ke platform DataWorks.

Ini berlaku tidak hanya untuk cabang sinkronisasi utama, tetapi juga sepenuhnya kompatibel dengan berbagai cabang fitur yang dibuat darinya. Pengembang dapat mengikuti paradigma pengembangan cabang sinkronisasi utama, melakukan pengembangan, pengujian, dan tinjauan kode di cabang independen, lalu mengintegrasikan kode yang sudah matang kembali ke DataWorks secara aman, sehingga memungkinkan kolaborasi tim yang profesional dan efisien.

Penting

Fitur ini memerlukan sinkronisasi yang diaktifkan dan tersedia bagi pengguna dengan peran Developer atau lebih tinggi.

  1. Entri penggabungan

    Di DataStudio > Code Management, perluas bagian Code Merge.

  2. Pratinjau penggabungan

    Di kotak input Branch, masukkan nama cabang yang akan digabungkan, misalnya feature_cn-shanghai_branch. Klik merge preview. Sistem membandingkan penambahan, modifikasi, dan penghapusan antara cabang sumber dan cabang save DataWorks default.

    • Tidak ada konflik: Antarmuka menampilkan diff perubahan, dengan jelas mencantumkan node yang akan ditambahkan, dimodifikasi, atau dihapus beserta detail perubahan kodenya.

    • Konflik terdeteksi: Antarmuka menampilkan konflik beserta konten yang bertentangan. Dalam kasus ini, Anda perlu kembali ke lingkungan lokal, menyelesaikan konflik secara manual di Git, lalu memulai penggabungan lagi.

  3. Konfirmasi penggabungan

    1. Setelah memverifikasi bahwa pratinjau sudah benar, klik Confirm merge.

    2. Sistem memulai tugas penggabungan, dan Anda dapat memantau progres penggabungan secara real time.

    3. Semua catatan penggabungan historis ditampilkan di bagian riwayat penggabungan kode di bawah ini. Anda dapat melihat pemilik, status penggabungan, dan detail cabang kapan saja.

Cross-workspace merge

Fitur sinkronisasi Git mendukung kloning proyek DataWorks lintas ruang kerja bahkan lintas wilayah, memungkinkan Anda menggunakan logika kode standar sebagai "templat" yang dapat digunakan ulang atau didistribusikan dengan cepat di berbagai skenario bisnis. Misalnya, Anda dapat menerapkan model analisis pengguna umum secara cepat ke ruang kerja independen dari berbagai lini bisnis, dengan setiap ruang kerja berjalan di sumber daya komputasi dan sumber data khususnya sendiri.

  1. Persiapan inisialisasi

    1. Buat dua proyek: git_cross_project_1 dan git_cross_project_2. Pembuatan lintas wilayah didukung.

    2. Ikuti Langkah 1 untuk mengonfigurasi kelompok sumber daya dan sumber data OSS di setiap ruang kerja. Kedua sumber data dapat menggunakan konfigurasi yang sama. Konfigurasikan juga konektivitas jaringannya.

    3. Ikuti Langkah 2 untuk menyiapkan satu repositori Git sebagai repositori manajemen kode bersama untuk kedua ruang kerja.

    4. Ikuti Langkah 3 untuk mengonfigurasi sinkronisasi Git untuk kedua ruang kerja (gunakan alamat SSH dan kunci privat yang sama untuk keduanya), dan pastikan inisialisasi berhasil. Pada titik ini, cabang untuk kedua ruang kerja, 270256 (project1) dan 270257 (project2), muncul di repositori Git.

  2. Kebijakan penggabungan lintas proyek

    1. Saat menggabungkan cabang kode lintas proyek, hanya kode node, properti dasar, dan konfigurasi penjadwalan yang digabungkan. Konfigurasi waktu proses tidak digabungkan ke ruang kerja target.

    2. Karena sumber daya komputasi, kelompok sumber daya, dan sumber data yang digunakan oleh kedua ruang kerja mungkin berbeda, Anda perlu mengonfigurasi file pemetaan sumber daya merge_mapping.

      1. Buka terminal di komputer lokal Anda, klon cabang simpan ruang kerja sumber ke mesin lokal, lalu beralih ke cabang simpan proyek ruang kerja sumber1, misalnya dataworks_cn_shenzhen_270256_save.

        # Klon repositori Git jarak jauh ke mesin lokal
        git clone git@your_git_server_domain:64dc86a16800a4a57137536/cross_project_shenzhen.git
        
        # Beralih ke cabang simpan project1
        git checkout <your branch name>
      2. Buat file pemetaan merge_mapping.

        # cross_project_shenzhen adalah nama repositori
        cd cross_project_shenzhen 
        
        # Buat direktori
        mkdir -p DATAWORKS_SYSTEM_CONFIG/merge_mapping
        
        # Buat file pemetaan, misalnya cn_shenzhen_270256_to_cn_shenzhen_270257.properties
        vi DATAWORKS_SYSTEM_CONFIG/merge_mapping/<region>_<projectId>_to_<region>_<projectId>.properties

        Konfigurasikan konten file berdasarkan pengaturan aktual Anda. Ubah nilai aktual di kedua sisi =. Beberapa nilai didukung untuk setiap jenis.

        # Sumber data
        # spec.datasource.name.<nama sumber data project1>=<nama sumber data project2>
        spec.datasource.name.mysql_01=mysql_02
        
        # Kelompok sumber daya
        # spec.runtimeResource.resourceGroup.<ID kelompok sumber daya project1>=<ID kelompok sumber daya project2>
        spec.runtimeResource.resourceGroup.group_524257424564736=Serverless_res_group_524257424564736_764027070300961
        
        # Awalan nama output node
        # spec.output-prefix.<nama project1>=<nama project2>
        spec.output-prefix.git_cross_project_1=git_cross_project_2
        
        # Awalan proyek untuk tabel di MaxCompute SQL
        # script.project-identifier.<nama project1>=<nama project2>
        script.project-identifier.git_cross_project_1=git_cross_project_2
        
        # Gambar
        # spec.script.runtime.container.imageId.<ID gambar yang digunakan di project1>=<ID gambar yang digunakan di project2>
        spec.script.runtime.container.imageId.Default=System_python311_ubuntu2204_20251201
        
        # Peran RAM
        # spec.script.runtime.linkedRoleArn.<ARN peran RAM yang digunakan di project1>=<ARN peran RAM yang digunakan di project2>
        spec.script.runtime.linkedRoleArn.acs:ram::1107550004253538:role/aliyundataworksaccessingenirole=acs:ram::1107550004253538:role/aliyundataworksaccessingossrole

        Dorong kode ke repositori Git.

        # Tandai perubahan direktori saat ini di git
        git add .
        # Komit file pemetaan
        git commit -m "add mapping files"
        # Dorong konten cabang ke repositori Git jarak jauh
        git push
    3. Gabungkan kode lintas proyek

      1. Buka DataStudio ruang kerja target git_cross_project_2. Klik Code Management di panel navigasi kiri, lalu temukan tab Code Merge.

      2. Di kotak input cabang, masukkan nama cabang simpan ruang kerja sumber, misalnya dataworks_cn_shenzhen_270256_save.

      3. Klik merge preview. Setelah memastikan pratinjau sudah benar, gabungkan kode dari ruang kerja git_cross_project_1 ke ruang kerja git_cross_project_2. Untuk detail operasi penggabungan, lihat Merge from Git to DataWorks.

Penagihan

Sumber daya yang dikenai biaya meliputi:

  • Kelompok sumber daya serverless: Tugas sinkronisasi menggunakan spesifikasi sumber daya 1 CU. Biaya bervariasi tergantung pada metode penagihan kelompok sumber daya yang dibeli. Untuk informasi selengkapnya, lihat Penagihan kelompok sumber daya serverless.

  • Gateway NAT Internet dan EIP: Jika repositori Git Anda berada di jaringan publik, biaya trafik yang sesuai akan dikenakan. Untuk informasi selengkapnya, lihat Penagihan gateway NAT.

  • Penyimpanan OSS: Digunakan untuk menyimpan data sinkronisasi kode. Biaya dikenakan berdasarkan kapasitas penyimpanan dan jumlah permintaan. Untuk informasi selengkapnya, lihat Ikhtisar penagihan OSS.

FAQ

  • T: Inisialisasi menunjukkan keberhasilan, tetapi tidak ada cabang yang dibuat di repositori Git. Apa yang harus saya lakukan?

    J: Ikuti bagian Uji konektivitas untuk memeriksa apakah koneksi telnet dan SSH berhasil. Fokuslah pada verifikasi bahwa konfigurasi jaringan (gateway NAT/VPC) kelompok sumber daya serverless sudah benar.

  • T: Muncul laporan konflik saat saya menggabungkan kode. Bagaimana cara menyelesaikannya?

    A: Di lingkungan pengembangan lokal Anda, tarik cabang penyimpanan DataWorks (dataworks_${region}_${projectId}_save) ke mesin lokal. Gabungkan cabang tersebut dengan cabang pengembangan Anda (menggunakan git merge atau git rebase) dan selesaikan konflik yang muncul. Setelah itu, dorong cabang pengembangan Anda ke repositori jarak jauh, lalu kembali ke halaman DataWorks untuk memulai proses penggabungan lagi.