All Products
Search
Document Center

Migration Hub:DolphinScheduler ke DataWorks

Last Updated:Nov 13, 2025

Topik ini menjelaskan cara melakukan migrasi alur kerja penjadwalan DolphinScheduler ke DataWorks menggunakan alat migrasi penjadwalan LHM. Prosesnya melibatkan ekspor tugas dari DolphinScheduler, konversi, lalu impor ke DataWorks.

1. Ekspor alur kerja penjadwalan DolphinScheduler

Alat ekspor mengambil informasi proyek, definisi alur kerja, definisi sumber data, dan berkas sumber daya dengan memanggil API DolphinScheduler. Alat ini mendukung semua versi DolphinScheduler, termasuk 1.x, 2.x, dan 3.x. Untuk mengekspor alur kerja Anda, ikuti langkah-langkah berikut.

1. Prasyarat

Persiapkan lingkungan runtime JDK 17. Pastikan konektivitas jaringan antara lingkungan runtime dan DolphinScheduler. Unduh alat migrasi penjadwalan dan ekstrak secara lokal.

Untuk menguji konektivitas jaringan, Anda dapat memanggil API ListProject DolphinScheduler untuk memverifikasi bahwa API tersebut mengembalikan informasi dan daftar yang dikembalikan berisi proyek yang ingin Anda migrasikan. Informasi tentang cara mendapatkan token tersedia di bagian berikutnya.

# DolphinScheduler 1.x
curl -H "token:<YourToken>" -X GET http://<YourIp>:12345/dolphinscheduler/projects/query-project-list

# DolphinScheduler 2.x
curl -H "token:<YourToken>" -X GET http://<YourIp>:12345/dolphinscheduler/projects/list

# DolphinScheduler 3.x
curl -H "token:<YourToken>" -X GET http://<YourIp>:12345/dolphinscheduler/projects/list

2. Konfigurasi informasi koneksi

Di folder `conf` direktori proyek, buat berkas konfigurasi ekspor dalam format JSON, misalnya `read.json`.

  • Hapus komentar dari berkas JSON sebelum digunakan.

{
  "schedule_datasource": {
    "name": "YourDolphin", // Beri nama sumber data DolphinScheduler Anda.
    "type": "DolphinScheduler", // Jenis sumber data (DolphinScheduler)
    "properties": {
      "endpoint": "http://localhost:12345", // Titik akhir
      "project": "Comprehensive Test", // Nama proyek
      "token": "***********************" // Token
    },
    "operaterType": "AUTO" // Jenis koneksi (AUTO: Secara otomatis mendapatkan informasi penjadwalan melalui API)
  },
  "conf": {

  }
}

2.1. Dapatkan titik akhir (endpoint)

Titik akhir adalah endpoint API, yang biasanya sama dengan alamat halaman antarmuka depan. Misalnya, titik akhir adalah `http://120.55.X.XXX:12345` pada gambar berikut.

Jika alamat DolphinScheduler adalah `http://your-company:12345/dolphinscheduler/ui/home`, maka titik akhirnya adalah `http://your-company:12345`.

Karena DolphinScheduler merupakan mesin penjadwalan open-source, modul API-nya mungkin telah dikustomisasi. Jika pemanggilan API gagal, Anda dapat membuka halaman Swagger dan menjalankan pengujian sederhana untuk mengonfirmasi atribut API.

2.2. Dapatkan token

Di halaman Manajemen Token di Pusat Keamanan, buat token dan atur masa kedaluwarsa yang panjang.

Catatan: Token pengguna harus memiliki izin untuk proyek yang ingin Anda migrasikan.

2.3. Dapatkan proyek

Buka halaman manajemen proyek. Salin nama proyek yang ingin Anda migrasikan dan masukkan sebagai nilai parameter `Project`.

3. Jalankan alat penemuan penjadwalan

Setiap kali Anda menjalankan alat penemuan penjadwalan, alat ini menghasilkan dua berkas yang menyimpan informasi berikut:

  1. Informasi mentah yang dihasilkan oleh API DolphinScheduler (paket ApiOutput).

  2. Paket yang diurai oleh alat penemuan, yang menstandarkan struktur data dari informasi mentah (paket ReaderOutput).

Paket ReaderOutput adalah hasil akhir dari ekspor penjadwalan. Paket ApiOutput adalah hasil antara yang hanya digunakan untuk pemecahan masalah selama proses ekspor.

Jalankan alat penemuan dari baris perintah. Perintahnya sebagai berikut:

sh ./bin/run.sh read \
-c ./conf/<your_config_file>.json \
-f ./data/0_OriginalPackage/<api_raw_info_package>.zip \
-o ./data/1_ReaderOutput/<source_discovery_export_package>.zip \
-t <PluginName>

Dalam perintah tersebut, `-c` menentukan jalur berkas konfigurasi, `-f` menentukan jalur penyimpanan paket ApiOutput, `-o` menentukan jalur penyimpanan paket ReaderOutput, dan `-t` menentukan nama plugin penemuan.

Plugin ekspor untuk DolphinScheduler 1.x, 2.x, dan 3.x masing-masing adalah `dolphinv1-reader`, `dolphinv2-reader`, dan `dolphinv3-reader`.

Sebagai contoh, untuk mengekspor Proyek A dari DolphinScheduler 3.2.0:

sh ./bin/run.sh read \
-c ./conf/projectA_read.json \
-f ./data/0_OriginalPackage/projectA_ApiOutput.zip \
-o ./data/1_ReaderOutput/projectA_ReaderOutput.zip \
-t dolphinv3-reader

4. Lihat hasil ekspor

Buka paket `ReaderOutput.zip` yang dihasilkan di direktori `./data/1_ReaderOutput/` untuk melihat pratinjau hasil ekspor.

Laporan statistik merangkum informasi dasar mengenai alur kerja, node, sumber daya, fungsi, dan sumber data di DolphinScheduler.

Folder `data/project` berisi struktur data standar dari informasi penjadwalan DolphinScheduler.

Laporan statistik:

Lembar 1, bernama 'Overview', menampilkan ringkasan hasil ekspor Reader. Lembar bernama 'WORKFLOW', 'WORKFLOWNODE', dan seterusnya berisi informasi spesifik mengenai alur kerja, node, sumber daya, fungsi, dan sumber data.

Laporan statistik menyediakan dua fitur khusus:

1. Anda dapat mengubah beberapa properti alur kerja dan node dalam laporan. Bidang yang dapat diedit ditampilkan dengan font berwarna biru. Pada tahap berikutnya, yaitu konversi penjadwalan, alat akan mengambil perubahan properti dari tabel dan menerapkannya selama inisialisasi.

2. Laporan ini memungkinkan Anda melewatkan alur kerja selama konversi dengan menghapus baris di sub-tabel alur kerja. Ini juga dikenal sebagai pembuatan blacklist alur kerja. Catatan: Jika alur kerja saling bergantung satu sama lain, alur kerja terkait harus dikonversi dalam batch yang sama. Jangan memisahkannya menggunakan blacklist. Memisahkan mereka akan menyebabkan kesalahan.

Untuk informasi lebih lanjut, lihat Gunakan laporan ikhtisar dalam migrasi penjadwalan untuk menambah atau mengubah properti penjadwalan.

5. Tanya Jawab

5.1. (Penemuan batch) Dapatkah saya menemukan beberapa proyek sekaligus?

Ya, Anda bisa. Anda dapat memasukkan beberapa nama proyek untuk item konfigurasi `project`. Pisahkan nama-nama tersebut dengan koma tanpa spasi. Karena nama proyek DolphinScheduler dapat mengandung spasi, semua spasi dianggap sebagai bagian dari nama tersebut.

  • Hapus komentar dari berkas JSON sebelum digunakan.

{
  "schedule_datasource": {
    "name": "YourDolphin", // Beri nama sumber data DolphinScheduler Anda.
    "type": "DolphinScheduler", // Jenis sumber data (DolphinScheduler)
    "properties": {
      "endpoint": "http://localhost:12345", // Titik akhir
      "project": "Project1,Project2", // Nama proyek
      "token": "***********************" // Token
    },
    "operaterType": "AUTO" // Jenis koneksi (AUTO: Secara otomatis mendapatkan informasi penjadwalan melalui API)
  },
  "conf": {

  }
}

Dalam perintah jalankan, parameter input `-f` dan `-o` harus berupa jalur folder. Alat secara otomatis membuat paket ekspor terpisah untuk setiap proyek.

sh ./bin/run.sh read \
-c ./conf/<your_config_file>.json \
-f ./data/0_OriginalPackage/ \
-o ./data/1_ReaderOutput/ \
-t <dolphinv1/2/3-reader>

5.2. (Mode manual) Bagaimana jika tidak ada API?

Beberapa pengembang menghapus modul API DolphinScheduler, sehingga Anda tidak dapat memperoleh informasi penjadwalan melalui koneksi API. Sebagai alternatif, Anda dapat membuat paket informasi mentah secara manual di direktori `./data/0_OriginalPackage/` dan mengubah `operaterType` menjadi `MANUAL` dalam item konfigurasi. Alat kemudian akan menggunakan paket mentah yang dibuat secara manual sebagai input untuk menyelesaikan penemuan DolphinScheduler.

  • Hapus komentar dari berkas JSON sebelum digunakan.

{
  "schedule_datasource": {
    "name": "YourDolphin", // Beri nama sumber data DolphinScheduler Anda.
    "type": "DolphinScheduler", // Jenis sumber data (DolphinScheduler)
    "properties": {
      "endpoint": "http://localhost:12345", // Titik akhir
      "project": "Comprehensive Test", // Nama proyek
      "token": "***********************" // Token
    },
    "operaterType": "MANUAL" // Jenis koneksi (MANUAL: Mode offline)
  },
  "conf": {

  }
}

Contoh struktur paket mentah:

.
├── package_info.json
├── projects.json
├── projects
│   └── Comprehensive Test
│       └── processDefinition
│           └── process_definitions_page_1.json
├── datasource
│   └── datasource_page_1.json
├── resource
│   └── resources.json
└── udfFunction
    └── udf_function_page_1.json

`package_info.json` berisi informasi paket, termasuk versi DolphinScheduler.

{
  "version": "3.2.0"
}

Berkas `projects.json` berisi informasi proyek. Saat membuat berkas ini secara manual, fokuslah mengisi bidang `id`, `userId`, `code`, dan `name`.

[
  {
    "id": 2,
    "userId": 1,
    "code": 16372996967936,
    "name": "Comprehensive Test",
    "description": "",
    "createTime": "2025-01-20 11:40:39",
    "updateTime": "2025-01-20 11:40:39",
    "perm": 0,
    "defCount": 0,
    "instRunningCount": 0
  }
]

Folder `projects` menyimpan definisi alur kerja. Saat membuat folder ini secara manual, ubah subdirektorinya menjadi nama proyek. Kemudian, ekspor definisi alur kerja dari antarmuka DolphinScheduler, ganti namanya secara berurutan menjadi `process_definitions_page_*.json`, dan letakkan di direktori `processDefinition`.

`datasource`, `resource`, dan `udfFunction` masing-masing berisi informasi sumber data, berkas sumber daya, dan UDF. Karena antarmuka DolphinScheduler tidak memiliki fitur ekspor untuk elemen-elemen ini, Anda dapat mengabaikannya. Untuk melakukannya, isi berkas `datasource_page_1.json`, `resources.json`, dan `udf_function_page_1.json` dengan array kosong `[]`. Mengabaikan elemen-elemen ini berdampak kecil pada detail migrasi alur kerja. Dampak tersebut meliputi pemetaan node SQL ke sumber data, pemetaan node DataX (dalam mode templat non-kustom) ke sumber data, dan migrasi hubungan referensi node ke sumber daya. Node yang terpengaruh dibuat di DataWorks seperti yang diharapkan, tetapi Anda harus mengonfigurasi secara manual pengikatan node tersebut ke sumber data dan sumber daya di DataWorks.

5.3. Bagaimana jika token valid tetapi sebagian alur kerja yang diekspor hilang?

Pertama, periksa apakah token memiliki izin untuk proyek tersebut.

Selain itu, kami menemukan bahwa API dari beberapa versi minor DolphinScheduler 1.x dapat menyebabkan kehilangan data selama ekspor. Anda dapat menggunakan laporan statistik dalam hasil ekspor untuk mengidentifikasi dan melengkapi alur kerja yang hilang.

2. Konversi alur kerja DolphinScheduler ke alur kerja DataWorks

DolphinScheduler adalah mesin penjadwalan open-source populer. DataWorks sepenuhnya mendukung kemampuan penjadwalan DolphinScheduler. Setelah alat migrasi mengonversi alur kerja, alur kerja tersebut dapat berjalan di DataWorks dengan efek yang sama seperti di DolphinScheduler.

1. Prasyarat

Alat penemuan telah berhasil dijalankan, informasi penjadwalan DolphinScheduler telah diekspor, dan berkas `ReaderOutput.zip` telah dihasilkan.

(Opsional, direkomendasikan) Buka paket ekspor penemuan dan lihat laporan statistik untuk memeriksa apakah cakupan penuh migrasi telah diekspor.

2. Item konfigurasi konversi

2.1. Templat konfigurasi konversi

  • Hapus komentar dari berkas JSON sebelum digunakan.

{
  "conf": {},
  "self": {
    "if.use.default.convert": false,
    "if.use.migrationx.before": false,
    "if.use.dataworks.newidea": true,
    "owner.map": [ // Pemetaan pemilik
      {
        "src": "1", // ID pengguna DolphinScheduler
        "tgt": "202006995118212119" // ID pengguna DataWorks
      }
    ],
    "conf": [
      {
        "nodes": "all", // Cakupan grup aturan
        "rule": {
          "settings": {
            // Konversi node Shell DolphinScheduler ke node Shell DataWorks
            "workflow.converter.shellNodeType": "DIDE_SHELL",
            // Konversi node tak dikenal ke node virtual DataWorks secara default
            "workflow.converter.target.unknownNodeTypeAs": "VIRTUAL",
            // Konversi node SQL DolphinScheduler ke node SQL atau database DataWorks yang sesuai berdasarkan jenis sumber data
            "workflow.converter.dolphinscheduler.sqlNodeTypeMapping": {
              "CLICKHOUSE": "CLICK_SQL",
              "HIVE": "ODPS_SQL",
              "STARROCKS": "StarRocks",
              "DORIS": "HOLOGRES_SQL",
              "MYSQL": "MYSQL",
              "REDSHIFT": "Redshift",
              "SQLSERVER": "SQLSERVER",
              "PRESTO": "EMR_PRESTO",
              "POSTGRESQL": "POSTGRESQL",
              "ORACLE": "Oracle",
              "ATHENA": "MYSQL"
            },
            // Pemetaan nama sumber data DolphinScheduler dan DataWorks
            "workflow.converter.connection.mapping": {
              "mysqlDb1": "dataworks_mysqlDb1",
              "srDb1": "dataworks_srDb1"
            },
            // Mesin komputasi utama yang dilampirkan ke DataWorks (EMR, MaxCompute, atau Hologres)
            "workflow.converter.target.engine.type": "EMR",
            // Konversi node Spark DolphinScheduler ke node MaxCompute Spark DataWorks
            "workflow.converter.sparkSubmitAs": "ODPS_SPARK",
            "workflow.converter.sparkVersion": "3.x",
          }
        }
      }
    ]
  },
  "schedule_datasource": {
    "name": "DsProject",
    "type": "DolphinScheduler"
  },
  "target_schedule_datasource": {}
}

2.2. Pemetaan pemilik

DolphinScheduler mencatat pemilik setiap alur kerja. Pemilik merupakan informasi penting untuk pengembangan tim. Alat ini mendukung pemetaan pengguna DolphinScheduler ke pengguna DataWorks untuk menandai pemilik yang sesuai untuk alur kerja dan node.

Dapatkan nama pengguna dan ID DolphinScheduler dari halaman manajemen pengguna.

Anda dapat menambahkan pengguna sebagai anggota ke ruang kerja DataWorks. Dapatkan ID pengguna dari pojok kanan atas.

Anda juga dapat memperoleh ID dari daftar drop-down Pemilik di halaman Pengembangan Data.

2.3. Aturan konversi node

2.3.1. Cakupan aturan

Anda dapat mengatur cakupan aturan konversi node. Misalnya, untuk mengonversi semua node sesuai aturan seragam, Anda dapat mengonfigurasi `"nodes": "all"` dan mengisi `Settings`. Biasanya, Anda hanya perlu mengonfigurasi satu grup aturan `all`.

  • Hapus komentar dari berkas JSON sebelum digunakan.

{
  "conf": {},
  "self": {
    "conf": [
      {
        "nodes": "all", // Cakupan grup aturan adalah SEMUA. Semua node dikonversi sesuai aturan ini.
        "rule": {
          "settings": {
            // Pengaturan
          }
      }
    ]
  }
}

Jika beberapa node memerlukan aturan konversi terpisah, Anda dapat menentukan cakupan aturan dengan memasukkan ID atau nama tugas di `nodes`. Untuk mengatur aturan untuk sekelompok node, pisahkan ID atau nama dengan koma. Kami menyarankan Anda menggunakan ID untuk menentukan cakupan karena penggunaan nama dapat menyebabkan pengaturan salah. Anda juga dapat menggunakan ekspresi reguler untuk mencocokkan nama node. Kami juga sangat menyarankan Anda mengatur grup aturan `normal` untuk menyediakan aturan konversi default bagi node yang tersisa.

  • Hapus komentar dari berkas JSON sebelum digunakan.

{
  "conf": {},
  "self": {
    "conf": [
      {
        "nodes": "node1Name, node2Id", // Cakupan grup aturan adalah node1 dan node2.
        "rule": {
          "settings": {
            // Pengaturan 1
          }
        },
        {
        "nodes": "node3Name, node4Id", // Cakupan grup aturan adalah node3 dan node4.
        "rule": {
          "settings": {
            // Pengaturan 2
          }
        },
        {
        "nodes": "regexExpression", // Mendukung penyaringan nama node dengan ekspresi reguler.
        "rule": {
          "settings": {
            // Pengaturan 3
          }
        },
        {
        "nodes": "normal", // Aturan konversi untuk node lainnya.
        "rule": {
          "settings": {
            // Pengaturan 4
          }
        }
        ]
  }
}
2.3.2. Aturan konversi

DolphinScheduler 1.x, 2.x, dan 3.x mendukung jenis node yang berbeda. Oleh karena itu, solusi dan item konfigurasi konversi bervariasi. Rinciannya sebagai berikut.

2.3.2.1. Item konfigurasi konversi DolphinScheduler 3.x

Alat saat ini mendukung konversi jenis node DolphinScheduler 3.x berikut:

SHELL, SQL, PYTHON, DATAX, SQOOP, SEATUNNEL, HIVECLI, SPARK (Java, Python, Sql), MR, PROCEDURE, HTTP, CONDITIONS, SWITCH, DEPENDENT, dan SUB_PROCESS.

Anda dapat mengonfigurasi aturan pemetaan DataWorks untuk jenis berikut:

  • SHELL (workflow.converter.shellNodeType):

Kami merekomendasikan mengonversinya ke node DIDE_SHELL, EMR_SHELL, atau VIRTUAL.

  • SQL (workflow.converter.dolphinscheduler.sqlNodeTypeMapping):

Kami merekomendasikan mengonversinya ke berbagai node SQL atau node database.

  • PROCEDURE (workflow.converter.dolphinscheduler.sqlNodeTypeMapping):

Kami merekomendasikan mengonversinya ke berbagai node SQL atau node database.

  • PYTHON (workflow.converter.pyNodeType):

Kami merekomendasikan mengonversinya ke node PYTHON, PYODPS, PYODPS3, atau EMR_SHELL.

  • HIVECLI (workflow.converter.dolphinscheduler.sqlNodeTypeMapping/HIVE):

Kami merekomendasikan mengonversinya ke node EMR_HIVE atau ODPS_SQL.

  • SPARK (workflow.converter.sparkSubmitAs):

Kami merekomendasikan mengonversi node SparkJava dan SparkPython ke node ODPS_SPARK atau EMR_SPARK.

Kami merekomendasikan mengonversi node SparkSql ke node ODPS_SQL atau EMR_SPARK_SQL.

  • MR (workflow.converter.mrNodeType):

Kami merekomendasikan mengonversinya ke node ODPS_MR atau EMR_MR.

Untuk informasi lebih lanjut tentang jenis node DataWorks, lihat kelas enumerasi berikut:

https://github.com/aliyun/dataworks-spec/blob/b0f4a4fd769215d5f81c0bbe990addd7498df5f4/spec/src/main/java/com/aliyun/dataworks/common/spec/domain/dw/types/CodeProgramType.java#L180

Jenis node dengan aturan konversi tetap:

  • DATAX: Dikonversi ke node DI. Mode templat kustom (mode Skrip JSON) dan mode reguler (mode entri antarmuka depan) didukung.

Konversi konfigurasi plugin reader sumber data berikut didukung: MYSQL ke mysql, POSTGRESQL ke postgresql, ORACLE ke oracle, SQLSERVER ke sqlserver, ODPS ke odps, OSS ke oss, HIVE ke hdfs, Hadoop Distributed File System (HDFS) ke hdfs, CLICKHOUSE ke clickhouse, dan MONGODB ke mongodb.

Konversi konfigurasi plugin writer sumber data berikut didukung: MYSQL ke mysql, POSTGRESQL ke postgresql, ORACLE ke oracle, SQLSERVER ke sqlserver, ODPS ke odps, OSS ke oss, HIVE ke hdfs, HDFS ke hdfs, CLICKHOUSE ke clickhouse, dan MONGODB ke mongodb.

  • SQOOP: Dikonversi ke node DI.

Konversi konfigurasi plugin reader sumber data berikut didukung: Mysql ke mysql, Hive ke hive, dan HDFS ke hdfs.

Konversi konfigurasi plugin writer sumber data berikut didukung: Mysql ke mysql, Hive ke hive, dan HDFS ke hdfs.

  • SEATUNNEL: Dikonversi ke node DI.

Konversi skrip belum didukung. Hanya node dan informasi penjadwalan yang dikonversi.

  • HTTP: Dikonversi ke node DIDE_SHELL (Shell umum). Alat migrasi secara otomatis menggabungkan parameter permintaan menjadi perintah curl.

  • SWITCH: Dikonversi ke node CONTROLLER_BRANCH (cabang). Fungsionalitasnya sama sebelum dan sesudah migrasi.

  • SUB_PROCESS: Dikonversi ke node SUB_PROCESS. Fungsionalitasnya sama sebelum dan sesudah migrasi. Catatan: Saat Anda mengimpor alur kerja ke DataWorks, alat migrasi mengaktifkan sakelar 'Dapat dirujuk' untuk alur kerja yang dirujuk. Alur kerja yang dirujuk hanya dapat dimulai melalui panggilan SUB_PROCESS dan tidak dapat dijadwalkan untuk dimulai sendiri.

  • DEPENDENT: Dikonversi ke node VIRTUAL. Dependensi dikonversi menjadi dependensi garis keturunan node. Misalnya, jika node Dependent bergantung pada Alur Kerja A, dependensi dikonversi menjadi garis keturunan dari node ekor Alur Kerja A ke node Dependent. Jika node Dependent bergantung pada Node A, dependensi dikonversi menjadi garis keturunan dari Node A ke node Dependent. Gambar berikut memberikan ilustrasi.

  • CONDITIONS: Node ini berisi dua lapis logika, yang diimplementasikan menggunakan dua lapis node CONTROLLER_JOIN (gabung). Pada kasus yang ditunjukkan pada gambar di bawah, node CONDITIONS memiliki dua node hulu (A dan B) dan dua node hilir (C dan D). Ekspresi logikanya adalah `((!A&B)|(A&!B)|(!A&!B))`. Jika ekspresi bernilai benar, alur berlanjut ke C. Jika ekspresi bernilai salah, alur berlanjut ke D. Di lapis atas, tiga node gabung dihasilkan untuk menghitung hasil dari `!A&B`, `A&!B`, dan `!A&!B`. Di lapis bawah, dua node dihasilkan. Satu node memicu eksekusi node hilir C ketika `((!A&B)|(A&!B)|(!A&!B))==true`. Node lainnya memicu eksekusi node hilir D ketika `(!(!A&B)&!(A&!B)&!(!A&!B))==true`. Proses ini mereplikasi efek dari node CONDITIONS.

2.3.2.2. Item konfigurasi konversi DolphinScheduler 2.x

Alat saat ini mendukung konversi jenis node DolphinScheduler 2.x berikut:

SHELL, SQL, PYTHON, DATAX, SQOOP, HIVECLI, SPARK (Java, Python, Sql), MR, PROCEDURE, HTTP, CONDITIONS, SWITCH, DEPENDENT, dan SUB_PROCESS.

Dibandingkan dengan versi 2.x, DolphinScheduler 3.x hanya menambahkan jenis node SEATUNNEL. Solusi dan item konfigurasi konversi untuk node lainnya sama dengan DolphinScheduler 3.x. Untuk informasi lebih lanjut, lihat bagian sebelumnya.

2.3.2.3. Item konfigurasi konversi DolphinScheduler 1.x

Alat saat ini mendukung konversi jenis node DolphinScheduler 1.x berikut:

SHELL, SQL, PYTHON, DATAX, SQOOP, SPARK (Java, Python, Sql), MR, CONDITIONS, DEPENDENT, dan SUB_PROCESS.

Solusi dan item konfigurasi konversi untuk node-node ini sama dengan DolphinScheduler 3.x. Untuk informasi lebih lanjut, lihat bagian sebelumnya.

3. Jalankan alat konversi penjadwalan

Jalankan alat konversi dari baris perintah. Perintahnya sebagai berikut:

sh ./bin/run.sh convert \
-c ./conf/<your_config_file>.json \
-f ./data/1_ReaderOutput/<source_discovery_export_package>.zip \
-o ./data/2_ConverterOutput/<conversion_result_output_package>.zip \
-t <PluginName>

Dalam perintah tersebut, `-c` menentukan jalur berkas konfigurasi, `-f` menentukan jalur penyimpanan paket ReaderOutput, `-o` menentukan jalur penyimpanan paket ConverterOutput, dan `-t` menentukan nama plugin konversi. Plugin konversi untuk DolphinScheduler 1.x, 2.x, dan 3.x masing-masing adalah `dolphinv1-dw-converter`, `dolphinv2-dw-converter`, dan `dolphinv3-dw-converter`.

Sebagai contoh, untuk mengonversi Proyek A DolphinScheduler 3.x:

sh ./bin/run.sh convert \
-c ./conf/projectA_convert.json \
-f ./data/1_ReaderOutput/projectA_ReaderOutput.zip \
-o ./data/2_ConverterOutput/projectA_ConverterOutput.zip \
-t dolphinv3-dw-converter

Alat konversi mencetak informasi proses selama operasi. Periksa adanya kesalahan selama proses. Setelah konversi selesai, statistik konversi yang berhasil dan gagal dicetak di baris perintah. Perhatikan bahwa kegagalan konversi beberapa node tidak memengaruhi keseluruhan proses konversi. Jika beberapa node gagal dikonversi, Anda dapat memodifikasinya secara manual setelah memigrasikannya ke DataWorks.

4. Lihat hasil konversi

Buka paket `ConverterOutput.zip` yang dihasilkan di direktori `./data/2_ConverterOutput/` untuk melihat pratinjau hasil ekspor.

Laporan statistik merangkum informasi dasar mengenai alur kerja, node, sumber daya, fungsi, dan sumber data yang telah dikonversi.

Folder `data/project` adalah paket migrasi penjadwalan yang telah dikonversi.

Laporan statistik menyediakan dua fitur khusus:

1. Anda dapat mengubah beberapa properti alur kerja dan node dalam laporan. Bidang yang dapat diedit ditampilkan dengan font berwarna biru. Pada tahap berikutnya, yaitu impor ke DataWorks, alat akan mengambil perubahan properti dari tabel dan menerapkannya.

2. Laporan ini memungkinkan Anda melewatkan alur kerja saat mengimpor ke DataWorks dengan menghapus baris di sub-tabel alur kerja (blacklist alur kerja). Catatan: Jika alur kerja saling bergantung satu sama lain, alur kerja terkait harus diimpor dalam batch yang sama. Jangan memisahkannya menggunakan blacklist. Memisahkan mereka akan menyebabkan kesalahan.

Untuk informasi lebih lanjut, lihat Gunakan laporan ikhtisar dalam migrasi penjadwalan untuk menambah atau mengubah properti penjadwalan.

3. Impor ke DataWorks

Fitur konversi heterogen dari alat migrasi LHM mengubah elemen penjadwalan sumber menjadi format penjadwalan DataWorks. Alat ini menyediakan entri unggah terpadu untuk berbagai skenario migrasi guna mengimpor alur kerja ke DataWorks.

Alat impor mendukung penulisan beberapa putaran. Alat secara otomatis memilih apakah akan membuat atau memperbarui alur kerja (mode timpa).

1. Prasyarat

1.1. Konversi berhasil

Alat konversi telah berhasil dijalankan, informasi penjadwalan sumber telah dikonversi ke informasi penjadwalan DataWorks, dan berkas `ConverterOutput.zip` telah dihasilkan.

(Opsional, direkomendasikan) Buka paket hasil konversi dan lihat laporan statistik untuk memeriksa apakah cakupan penuh migrasi telah berhasil dikonversi.

1.2. Konfigurasi DataWorks

Lakukan tindakan berikut di DataWorks:

1. Buat ruang kerja.

2. Buat Pasangan Kunci Akses dan pastikan memiliki izin administrator untuk ruang kerja tersebut. Kami sangat menyarankan Anda membuat Pasangan Kunci Akses yang terikat pada akun Anda untuk membantu pemecahan masalah jika terjadi masalah penulisan.

3. Di ruang kerja, buat sumber data, lampirkan sumber daya komputasi, dan buat kelompok sumber daya.

4. Di ruang kerja, unggah berkas sumber daya dan buat UDF.

1.3. Pemeriksaan konektivitas jaringan

Verifikasi bahwa Anda dapat terhubung ke titik akhir DataWorks.

Daftar titik akhir layanan:

Titik akhir layanan

ping dataworks.aliyuncs.com

2. Item konfigurasi impor

Di folder `conf` direktori proyek, buat berkas konfigurasi ekspor dalam format JSON, misalnya `writer.json`.

  • Hapus komentar dari berkas JSON sebelum digunakan.

{
  "schedule_datasource": {
    "name": "YourDataWorks", // Beri nama sumber data DataWorks Anda.
    "type": "DataWorks",
    "properties": {
      "endpoint": "dataworks.cn-hangzhou.aliyuncs.com", // Titik akhir layanan
      "project_id": "YourProjectId", // ID ruang kerja
      "project_name": "YourProject", // Nama ruang kerja
      "ak": "************", // AK
      "sk": "************", // SK
    },
    "operaterType": "MANUAL"
  },
  "conf": {
    "di.resource.group.identifier": "Serverless_res_group_***_***", // Kelompok sumber daya penjadwalan
    "resource.group.identifier": "Serverless_res_group_***_***", // Kelompok sumber daya integrasi data
    "dataworks.node.type.xls": "/Software/bwm-client/conf/CodeProgramType.xls", // Jalur ke tabel jenis node DataWorks
    "qps.limit": 5 // Batas QPS untuk mengirim permintaan API ke DataWorks
  }
}

2.1. Titik akhir layanan

Pilih titik akhir layanan berdasarkan wilayah tempat ruang kerja DataWorks Anda berada. Untuk informasi lebih lanjut, lihat:

Titik akhir layanan

2.2. ID dan nama ruang kerja

Buka konsol DataWorks. Buka halaman produk ruang kerja. Dapatkan ID dan nama ruang kerja dari informasi dasar di sebelah kanan.

2.3. Buat dan berikan izin untuk Pasangan Kunci Akses

Di halaman pengguna, buat Pasangan Kunci Akses yang memiliki izin baca dan tulis administrator untuk ruang kerja DataWorks target.

Manajemen izin melibatkan dua lokasi. Jika akun adalah pengguna Resource Access Management (RAM), Anda harus terlebih dahulu memberikan izin kepada pengguna RAM untuk melakukan operasi DataWorks.

Halaman kebijakan akses: https://ram.console.alibabacloud.com/policies

Kemudian, di ruang kerja DataWorks, tetapkan izin ruang kerja ke akun tersebut.

Catatan: Anda dapat mengatur kebijakan kontrol akses jaringan untuk Kunci Akses. Pastikan alamat IP mesin tempat alat migrasi berada diizinkan untuk mengakses.

2.4. Kelompok sumber daya

Di panel navigasi kiri halaman produk ruang kerja DataWorks, buka halaman kelompok sumber daya. Lampirkan kelompok sumber daya dan dapatkan ID-nya.

Kelompok sumber daya serbaguna dapat digunakan untuk penjadwalan node dan integrasi data. Anda dapat mengatur kelompok sumber daya penjadwalan (`resource.group.identifier`) dan kelompok sumber daya integrasi data (`di.resource.group.identifier`) ke kelompok sumber daya serbaguna yang sama dalam konfigurasi.

2.5. Pengaturan QPS

Alat mengimpor data dengan memanggil API DataWorks. Edisi DataWorks yang berbeda memiliki batas queries-per-second (QPS) dan batas panggilan harian yang berbeda untuk panggilan OpenAPI baca dan tulis. Untuk informasi lebih lanjut, lihat Batas.

Untuk DataWorks Edisi Dasar, Edisi Standar, dan Edisi Profesional, kami merekomendasikan mengatur `"qps.limit": 5`. Untuk Edisi Perusahaan, kami merekomendasikan mengatur `"qps.limit": 20`.

Catatan: Hindari menjalankan beberapa alat impor secara bersamaan.

2.6. Pengaturan ID jenis node DataWorks

Di DataWorks, beberapa jenis node diberikan TypeId yang berbeda di wilayah yang berbeda. TypeID spesifik tergantung pada antarmuka Pengembangan Data DataWorks. Karakteristik ini terutama berlaku untuk node database. Untuk informasi lebih lanjut, lihat Node database.

Sebagai contoh, node MySQL memiliki NodeTypeId 1000039 di wilayah Hangzhou dan 1000041 di wilayah Shenzhen.

Untuk menyesuaikan perbedaan ini antar wilayah DataWorks, alat menyediakan metode konfigurasi agar Anda dapat mengatur tabel TypeId node yang digunakan alat.

Tabel diimpor menggunakan item konfigurasi alat impor:

"conf": {
    "dataworks.node.type.xls": "/Software/bwm-client/conf/CodeProgramType.xls" // Jalur ke tabel jenis node DataWorks
 }

Untuk mendapatkan ID jenis node dari antarmuka Pengembangan Data DataWorks, Anda dapat membuat alur kerja baru di antarmuka, membuat node baru di alur kerja tersebut, lalu klik Simpan untuk melihat spec alur kerja.

Jika jenis node dikonfigurasi salah, kesalahan berikut dilaporkan saat alur kerja dipublikasikan.

3. Jalankan alat impor DataWorks

Jalankan alat konversi dari baris perintah. Perintahnya sebagai berikut:

sh ./bin/run.sh write \
-c ./conf/<your_config_file>.json \
-f ./data/2_ConverterOutput/<conversion_result_output_package>.zip \
-o ./data/4_WriterOutput/<import_result_storage_package>.zip \
-t dw-newide-writer

Dalam perintah tersebut, `-c` menentukan jalur berkas konfigurasi, `-f` menentukan jalur penyimpanan paket ConverterOutput, `-o` menentukan jalur penyimpanan paket WriterOutput, dan `-t` menentukan nama plugin pengiriman.

Sebagai contoh, untuk mengimpor Proyek A ke DataWorks:

sh ./bin/run.sh write \
-c ./conf/projectA_write.json \
-f ./data/2_ConverterOutput/projectA_ConverterOutput.zip \
-o ./data/4_WriterOutput/projectA_WriterOutput.zip \
-t dw-newide-writer

Alat impor mencetak informasi proses selama operasi. Periksa adanya kesalahan selama proses. Setelah impor selesai, statistik impor yang berhasil dan gagal dicetak di baris perintah. Perhatikan bahwa kegagalan impor beberapa node tidak memengaruhi keseluruhan proses impor. Jika beberapa node gagal diimpor, Anda dapat memodifikasinya secara manual di DataWorks.

4. Lihat hasil impor

Setelah impor selesai, Anda dapat melihat hasilnya di DataWorks. Anda juga dapat memantau alur kerja saat diimpor satu per satu. Jika Anda menemukan masalah dan perlu menghentikan impor, Anda dapat menjalankan perintah `jps` untuk menemukan `BwmClientApp` lalu menjalankan perintah `kill -9` untuk menghentikan impor.

5. Tanya Jawab

5.1. Sumber berada dalam pengembangan berkelanjutan. Bagaimana cara mengirimkan penambahan dan perubahan ini ke DataWorks?

Alat migrasi berjalan dalam mode timpa. Anda dapat menjalankan ulang proses ekspor, konversi, dan impor untuk mengirimkan perubahan inkremental dari sumber ke DataWorks. Catatan: Alat mencocokkan alur kerja berdasarkan jalur lengkapnya untuk memutuskan apakah akan membuat atau memperbarui alur kerja tersebut. Untuk memigrasikan perubahan, jangan memindahkan alur kerja tersebut.

5.2. Sumber berada dalam pengembangan berkelanjutan, dan saya juga memodifikasi serta mengelola alur kerja di DataWorks. Apakah migrasi inkremental akan menimpa perubahan di DataWorks?

Ya, akan. Alat migrasi berjalan dalam mode timpa. Kami merekomendasikan Anda melakukan modifikasi lebih lanjut di DataWorks setelah migrasi selesai. Atau, Anda dapat melakukan migrasi secara bertahap. Setelah Anda memastikan bahwa sekelompok alur kerja yang dimigrasikan tidak akan ditimpa lagi, Anda dapat mulai memodifikasinya di DataWorks. Tahapan yang berbeda tidak saling memengaruhi.

5.3. Seluruh paket membutuhkan waktu terlalu lama untuk diimpor. Dapatkah saya hanya mengimpor sebagian saja?

Ya, Anda bisa. Anda dapat memotong paket yang akan diimpor secara manual untuk melakukan impor parsial. Di folder `data/project/workflow`, simpan alur kerja yang perlu Anda impor dan hapus yang lainnya. Kompres ulang folder tersebut menjadi paket lalu jalankan alat impor. Catatan: Alur kerja yang saling bergantung harus diimpor bersama. Jika tidak, garis keturunan node antar alur kerja akan hilang.