All Products
Search
Document Center

DataWorks:Sinkronisasi dan penggabungan kode Git

Last Updated:Mar 21, 2026

DataWorks terintegrasi dengan Git untuk menyediakan model baru dalam pengembangan data. Fitur Sinkronisasi dan Penggabungan Kode menghubungkan platform DataWorks secara mulus ke repositori Git Anda. Saat Anda menyimpan atau menerbitkan kode, perubahan tersebut secara otomatis disinkronkan ke cabang Git tertentu. Anda juga dapat menggabungkan perubahan kode dari cabang Git kembali ke DataWorks.

Penting

Fitur ini hanya tersedia di DataWorks Edisi Perusahaan dan sedang dalam tahap pratinjau privat. Untuk menggunakan fitur ini, kirim tiket ke dukungan teknis agar ditambahkan ke daftar putih.

Ikhtisar

Integrasi DataWorks dengan Git mencakup dua alur kerja: mengelola kode dalam satu ruang kerja dan menggabungkan kode lintas ruang kerja.

  • Sinkronkan dari DataWorks ke Git: Saat Anda menyimpan atau menerbitkan kode di DataWorks, perubahan tersebut secara otomatis dikomit ke cabang yang dilindungi di repositori Git. Komit ini dilakukan oleh akun Git khusus dan Serverless Resource Group yang memiliki akses jaringan.

  • Gabungkan dari Git ke DataWorks: Gabungkan perubahan kode dari cabang utama atau cabang fitur repositori Git kembali ke DataWorks.

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

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

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

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

Konfigurasi dan inisialisasi

Langkah 1: Siapkan sumber daya cloud dan jaringan

Tugas sinkronisasi kode dijalankan menggunakan Serverless Resource Group dan memerlukan akses jaringan ke repositori Git dan Object Storage Service (OSS).

  1. Siapkan Serverless Resource Group dan konfigurasikan jaringan.

    • Siapkan Serverless Resource Group DataWorks dan bind ke ruang kerja target.

    • Pastikan resource group dapat mengakses port SSH server Git. Hanya port 22 yang didukung.

      • Repositori Git publik (misalnya, Apsara DevOps atau GitHub.com): Konfigurasikan Internet NAT Gateway dan Elastic IP Address (EIP) untuk Virtual Private Cloud (VPC) tempat resource group berada agar mendapatkan akses jaringan publik.

      • Repositori Git privat: Pastikan konektivitas jaringan antara VPC resource group dan server Git. Untuk detailnya, lihat VPC Peering Connection.

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

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

    • Di halaman Data Sources ruang kerja DataWorks, buat sumber data OSS untuk bucket tersebut.

      Catatan

      Hanya sumber data yang menggunakan Access Key untuk otentikasi yang didukung. Pastikan kunci tersebut memiliki izin berikut: oss:GetObject, oss:ListObjects, oss:PutObject, dan oss:DeleteObject.

Langkah 2: Siapkan lingkungan Git

Di platform Git Anda, buat akun khusus, konfigurasikan kunci SSH, dan atur aturan perlindungan cabang.

  1. Buat akun Git khusus dan hasilkan kunci SSH.

    1. Di platform Git Anda, seperti Apsara DevOps atau GitLab, buat akun khusus untuk komit kode otomatis, misalnya dataworks_pusher. Konfigurasikan email yang valid untuk akun ini.

    2. Hasilkan pasangan kunci SSH menggunakan algoritma RSA untuk akun ini. Jangan atur passphrase selama proses pembuatan.

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

      • Perintah:

        # Ganti "your_user_email@example.com" dengan email akun yang Anda konfigurasikan 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 berhasil dijalankan, file id_rsa (kunci privat) dan id_rsa.pub (kunci publik) dihasilkan di direktori ~/.ssh/. Anda akan memerlukan isi file-file ini pada langkah selanjutnya.

        # Salin dan simpan isi kunci publik dan privat. Anda akan memerlukannya di langkah berikutnya.
        cat ~/.ssh/id_rsa.pub
        cat ~/.ssh/id_rsa
  2. Tambahkan kunci publik ke platform Git.

    Login ke platform Git Anda. Di halaman manajemen kunci SSH untuk akun dataworks_pusher, tambahkan kunci publik yang dihasilkan pada langkah sebelumnya (isi file id_rsa.pub).

  3. Buat repositori kode dan konfigurasikan aturan perlindungan cabang.

    1. Buat repositori kode Git khusus untuk manajemen kode DataWorks, misalnya DataWorks_code.

    2. Di repositori tersebut, atur aturan perlindungan cabang untuk memastikan cabang yang dikelola otomatis oleh DataWorks tidak dimodifikasi secara langsung. Operasi ini harus dilakukan oleh administrator repositori.

      Penting

      Aturan perlindungan cabang yang dikonfigurasi secara salah dapat menyebabkan modifikasi tak terduga pada cabang yang dikelola DataWorks, sehingga mengganggu sinkronisasi.

      • Pola nama cabang: dataworks_*

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

      • Diizinkan untuk merge: Pilih No one.

Langkah 3: Konfigurasikan dan inisialisasi sinkronisasi kode

Penting

Hanya Administrator Tenant dan Administrator Ruang Kerja yang dapat mengonfigurasi sinkronisasi kode untuk suatu ruang kerja.

Hubungkan ruang kerja DataWorks ke repositori Git, lalu inisialisasi koneksi tersebut.

image

  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 menyelesaikan konfigurasi, Anda dapat membuat node Shell sementara di DataStudio dan menggunakan Serverless Resource Group yang telah disiapkan untuk memverifikasi konektivitas jaringan dan validitas kunci privat SSH.

    1. Uji konektivitas jaringan: Jalankan perintah telnet. Jika log menampilkan "Connected to ...", konektivitas berhasil. Anda kemudian dapat menghentikan tugas tersebut.

      # Ganti your_git_server_domain dengan nama domain atau alamat IP server Git Anda, misalnya codeup.aliyun.com untuk Apsara DevOps.
      telnet your_git_server_domain 22

      Untuk Apsara DevOps, jika konten berikut muncul di log, jaringan telah terhubung. Anda dapat menghentikan tugas tersebut. Jika tidak, Anda harus memeriksa konfigurasi jaringan Anda.

      image

    2. Uji validitas kunci SSH: Jalankan skrip berikut. Jika log menampilkan pesan sukses seperti "Welcome to ...", kunci privat telah dikonfigurasi dengan benar.

      # Periksa apakah kunci privat SSH benar. Output yang diharapkan adalah "Welcome to xxx,..."
      # Skrip ini menulis isi kunci privat Anda ke file kunci SSH standar (~/.ssh/id_rsa) di lingkungan runtime sementara.
      # Lalu menguji koneksi ke server Git untuk memvalidasi kunci privat.
      # Encode isi kunci privat ke Base64.
      id_rsa_base64=$(cat <<'EOF' | base64 -w 0
      # [Tempelkan seluruh isi kunci privat (file id_rsa) di sini.]
      -----BEGIN OPENSSH PRIVATE KEY-----
      ...
      -----END OPENSSH PRIVATE KEY-----
      EOF
      )
      # Buat ulang file kunci SSH di lingkungan runtime.
      id_rsa=$(base64 -d <<< "$id_rsa_base64")
      mkdir ~/.ssh
      echo "$id_rsa" > ~/.ssh/id_rsa
      chmod 600 ~/.ssh/id_rsa
      ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
      chmod 644 ~/.ssh/id_rsa.pub
      
      # Uji koneksi SSH. Ganti your_git_server_domain dengan alamat SSH Git Anda, misalnya codeup.aliyun.com.
      ssh -T git@your_git_server_domain

      Klik Run. Untuk Apsara DevOps, jika konten berikut muncul di log eksekusi, kunci privat untuk akun tersebut benar.

      image

  3. Di bilah navigasi kiri, klik imageCode Management untuk membuka halaman konfigurasi Code Synchronization. Konfigurasikan parameter berikut:

    Catatan: Tab Pengaturan DataStudio hanya terlihat setelah Anda ditambahkan ke daftar putih.

    Parameter

    Deskripsi

    Git Repository Address

    Alamat SSH repositori kode Git target.

    Private Key

    Tempelkan seluruh isi kunci privat (file id_rsa) yang dihasilkan pada Langkah 2.

    Penting

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

    DataWorks OSS Data Source

    Pilih sumber data OSS yang telah disiapkan.

    Catatan

    Jika UI menampilkan prompt "The current resource group is not authorized to access the OSS data source. Go to authorize," klik Go to authorize.

    OSS Storage Path

    Tentukan path OSS untuk menyimpan metadata kode, misalnya dataworks-workspace-code.

    DataWorks OSS Universal Resource Group

    Pilih Serverless Resource Group yang telah Anda siapkan sebelumnya.

  4. Setelah konfigurasi selesai, klik Enable Synchronization. Lalu, klik Initialization untuk menginisialisasi repositori kode Git. Sistem secara otomatis membuat cabang DataWorks yang diperlukan di repositori Git dan menyinkronkan kode dari ruang kerja saat ini. Proses ini mungkin memakan waktu beberapa menit. Selama proses berlangsung, Anda dapat mengklik tombol image di pojok kanan atas untuk melihat log inisialisasi.

    Catatan

    Jika Anda menonaktifkan lalu mengaktifkan kembali sinkronisasi, Anda harus melakukan inisialisasi ulang. Pembersihan diperlukan sebelum inisialisasi ulang.

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

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

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

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

    Mulai saat ini, setiap operasi simpan dan terbitkan di DataWorks secara otomatis menyinkronkan perubahan kode dan konfigurasi yang sesuai ke cabang Git masing-masing.

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

Langkah 4: Verifikasi sinkronisasi kode

  1. Buat node Shell baru di DataStudio dan beri nama shell_test.

  2. Di editor kode, masukkan kode berikut dan klik tombol simpan di bilah alat.

    echo 'Code push test.'
  3. Login ke Git, buka repositori target, dan pilih cabang simpan. 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 isinya. Hal ini menunjukkan bahwa sinkronisasi berhasil.

  4. Untuk memverifikasi sinkronisasi kedua cabang lainnya, terbitkan node tersebut ke lingkungan yang sesuai. Untuk informasi lebih lanjut tentang penerbitan, lihat Publish tasks.

Kasus penggunaan dan fitur

Reverse merge

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

Fitur ini kompatibel baik dengan cabang sinkronisasi utama maupun cabang fitur yang dibuat darinya. Developer dapat membuat cabang fitur dari cabang sinkronisasi utama untuk bekerja secara independen dalam pengembangan, pengujian, dan tinjauan kode. Mereka kemudian dapat menggabungkan kode yang telah matang kembali ke DataWorks dengan aman. Proses ini memungkinkan kolaborasi tim yang profesional dan efisien.

Penting

Fitur ini memerlukan sinkronisasi yang diaktifkan dan tersedia untuk peran dengan izin developer atau lebih tinggi.

  1. Titik masuk penggabungan

    Di antarmuka DataStudio > DataStudio Settings, perluas bagian Code Merge.

  2. Pratinjau penggabungan

    Setelah Anda memasukkan nama cabang yang ingin digabungkan dan mengklik Merge Preview, sistem membandingkan konten yang ditambahkan, dimodifikasi, dan dihapus antara cabang sumber dan cabang save default DataWorks.

    • Tidak ada konflik: Antarmuka menampilkan diff perubahan, yang secara jelas mencantumkan node dan modifikasi kode yang akan ditambahkan, dimodifikasi, atau dihapus.

    • Konflik: Antarmuka memberi peringatan konflik dan menampilkan detail spesifik. Anda harus kembali ke lingkungan lokal, menyelesaikan konflik di Git, lalu mencoba penggabungan lagi.

    image

    image

    image

  3. Konfirmasi penggabungan

    1. Setelah memastikan pratinjau benar, klik Confirm Merge.

    2. Sistem memulai tugas penggabungan. Anda dapat melihat progres penggabungan secara real-time.

    3. Semua catatan penggabungan ditampilkan di area Code Merge History di bawah. Anda dapat melihat inisiator, status penggabungan, dan detail cabang untuk setiap catatan.

      image

Cross-workspace merge

Fitur sinkronisasi Git memungkinkan Anda menggunakan kembali dan mendistribusikan seperangkat kode standar, atau "templat", di berbagai ruang kerja, bahkan di wilayah berbeda. Misalnya, Anda dapat dengan cepat menerapkan model analisis pengguna universal ke ruang kerja independen untuk berbagai lini bisnis, memungkinkan masing-masing menjalankannya di sumber daya komputasi dan sumber data khususnya sendiri.

image
  1. Persiapan awal

    1. Buat dua proyek terpisah: git_cross_project_1 dan git_cross_project_2. Keduanya dapat berada di wilayah berbeda.

    2. Ikuti petunjuk di Langkah 1 untuk mengonfigurasi resource group dan sumber data OSS untuk setiap ruang kerja. Kedua sumber data dapat sama. Konfigurasikan juga konektivitas jaringan.

    3. Ikuti petunjuk di Langkah 2 untuk menyiapkan repositori kode Git tunggal yang akan dibagikan oleh kedua ruang kerja.

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

  2. Strategi penggabungan lintas proyek

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

    2. Karena kedua ruang kerja belum tentu memiliki konfigurasi yang sama untuk sumber daya komputasi, kelompok sumber daya, dan sumber data, Anda harus mengonfigurasi pemetaan sumber daya merge_mapping.

      1. Di mesin lokal Anda, buka terminal, clone repositori, lalu alihkan ke cabang simpan ruang kerja sumber (project1), misalnya, dataworks_cn_shenzhen_270256_save.

        # Clone repositori Git jarak jauh ke mesin lokal Anda.
        git clone git@your_git_server_domain:64dc86a16800a4a57137536/cross_project_shenzhen.git
        
        # Alihkan ke cabang simpan project1.
        git checkout <your_branch_name>
      2. Buat file merge_mapping.

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

        Konfigurasikan isi file sesuai kebutuhan Anda, dan ubah nilai parameter di kedua sisi tanda =. Anda dapat menentukan beberapa parameter untuk setiap jenis.

        # Sumber Data
        # spec.datasource.name.<project1_data_source_name>=<project2_data_source_name>
        spec.datasource.name.mysql_01=mysql_02
        
        # Kelompok Sumber Daya
        # spec.runtimeResource.resourceGroup.<project1_resource_group_ID>=<project2_resource_group_ID>
        spec.runtimeResource.resourceGroup.group_524257424564736=Serverless_res_group_524257424564736_764027070300961
        
        # Awalan nama output node
        # spec.output-prefix.<project1_name>=<project2_name>
        spec.output-prefix.git_cross_project_1=git_cross_project_2
        
        # Awalan proyek untuk tabel di MaxCompute SQL
        # script.project-identifier.<project1_name>=<project2_name>
        script.project-identifier.git_cross_project_1=git_cross_project_2
        
        # Gambar
        # spec.script.runtime.container.imageId.<image_ID_used_in_project1>=<image_ID_used_in_project2>
        spec.script.runtime.container.imageId.Default=System_python311_ubuntu2204_20251201
        
        # Peran RAM
        # spec.script.runtime.linkedRoleArn.<ram_role_ARN_used_in_project1>=<ram_role_ARN_used_in_project2>
        spec.script.runtime.linkedRoleArn.acs:ram::1107550004253538:role/aliyundataworksaccessingenirole=acs:ram::1107550004253538:role/aliyundataworksaccessingossrole

        Dorong kode ke repositori Git.

        # Tambahkan perubahan di direktori saat ini ke 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 di ruang kerja target git_cross_project_2. Di panel navigasi kiri, klik DataStudio Settings, lalu temukan tab Code Merge.

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

        image

      3. Klik Merge Preview. Setelah memastikan perubahan benar, gabungkan kode dari ruang kerja git_cross_project_1 ke ruang kerja git_cross_project_2. Untuk detail operasi penggabungan, lihat Reverse merge.

Penagihan

Fitur ini menimbulkan biaya untuk sumber daya berikut:

  • Serverless Resource Group: Tugas sinkronisasi menggunakan spesifikasi sumber daya 1 CU. Biaya bervariasi tergantung pada metode penagihan resource group yang dibeli. Untuk detailnya, lihat Billing of Serverless Resource Groups.

  • Internet NAT Gateway dan EIP: Jika repositori Git berada di internet publik, biaya trafik yang sesuai akan dikenakan. Untuk detailnya, lihat NAT Gateway billing.

  • Penyimpanan OSS: Digunakan untuk menyimpan data sinkronisasi kode. Ditagih berdasarkan kapasitas penyimpanan dan jumlah permintaan. Untuk detailnya, lihat OSS billing overview.

FAQ

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

    J: Ikuti petunjuk di bagian Test connectivity untuk memeriksa apakah koneksi telnet dan SSH berhasil. Perhatikan dengan cermat apakah konfigurasi jaringan (Internet NAT Gateway/VPC) Serverless Resource Group sudah benar.

  • T: Terjadi konflik saat menggabungkan kode. Bagaimana cara menanganinya?

    J: Di lingkungan pengembangan lokal Anda, ambil perubahan terbaru dari repositori jarak jauh. Gabungkan cabang simpan DataWorks (dataworks_${region}_${projectId}_save) dengan cabang pengembangan Anda menggunakan git merge atau git rebase. Setelah menyelesaikan konflik, dorong cabang pengembangan Anda ke repositori jarak jauh. Terakhir, kembali ke halaman DataWorks dan coba penggabungan lagi.