Sumber data Graph Database memungkinkan Anda membaca dan menulis data ke Graph Database. Topik ini menjelaskan kemampuan sinkronisasi data untuk Graph Database di DataWorks.
Batasan
Baca offline | Tulis offline |
|
|
Tambahkan sumber data
Sebelum mengembangkan tugas sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk di Data source management. Anda dapat melihat deskripsi parameter di konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Kembangkan tugas sinkronisasi data
Untuk informasi mengenai titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Panduan konfigurasi untuk tugas sinkronisasi offline tabel tunggal
Untuk informasi selengkapnya, lihat Codeless UI configuration dan Code editor configuration.
Untuk parameter dan demo skrip editor kode, lihat Lampiran: Demo skrip dan deskripsi parameter.
Lampiran: Demo skrip dan deskripsi parameter
Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi selengkapnya, lihat Configure a task in the code editor. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Demo skrip Reader
Saat mengonfigurasi pekerjaan sinkronisasi data untuk menulis data ke GDB, Anda harus mengonfigurasi vertex dan edge secara terpisah:
Contoh konfigurasi vertex
{ "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] }, "setting":{ "errorLimit":{ "record":"100" // Jumlah catatan error. Ini menunjukkan jumlah maksimum catatan data kotor yang dapat ditoleransi. }, "jvmOption":"", "speed":{ "concurrent":3, "throttle":true,/// Jika throttle diatur ke false, parameter mbps tidak berlaku, artinya laju tidak dibatasi. Jika throttle diatur ke true, laju dibatasi. "mbps":"12"// Batas laju. 1 mbps setara dengan 1 MB/s. } }, "steps":[ { "category":"reader", "name":"Reader", "parameter":{ "host": "gdb-xxxxxx.aliyuncs.com", // Titik akhir instans GDB. "port": 8182, // Port instans GDB. "username": "gdb", // Username untuk instans GDB. "password": "gdb", // Password yang sesuai dengan username untuk instans GDB. "labelType": "VERTEX", // Tipe label. VERTEX menunjukkan vertex. "labels": ["label1", "label2"], // Daftar nama label. Daftar kosong berarti semua vertex diekspor. "column": [ { "name": "id", // Nama field. "type": "string", // Tipe field. "columnType": "primaryKey" // Kategorisasi field. Ini menunjukkan ID kunci utama vertex. Di GDB, tipenya adalah STRING. }, { "name": "label", // Nama field. "type": "string", // Tipe field. "columnType": "primaryLabel" // Kategorisasi field. Ini menunjukkan nama label vertex. Di GDB, tipenya adalah STRING. }, { "name": "age", // Nama field properti. "type": "int", // Tipe field properti. "columnType": "vertexProperty" // Kategorisasi field. Ini menunjukkan properti vertex. Di GDB, ini adalah properti tipe dasar. } ] }, "stepType":"gdb" }, { "category":"writer", "name":"Writer", "parameter":{ "print": true }, "stepType":"stream" } ] }Contoh konfigurasi edge
{ "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] }, "setting":{ "errorLimit":{ "record":"100" // Jumlah catatan error. Ini menunjukkan jumlah maksimum catatan data kotor yang dapat ditoleransi. }, "jvmOption":"", "speed":{ "concurrent":3, "throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku, artinya laju tidak dibatasi. Jika throttle diatur ke true, laju dibatasi. "mbps":"12"// Batas laju. 1 mbps setara dengan 1 MB/s. } }, "steps":[ { "category":"reader", "name":"Reader", "parameter":{ "host": "gdb-xxxxxx.aliyuncs.com", // Titik akhir instans GDB. "port": 8182, // Port instans GDB. "username": "gdb", // Username untuk instans GDB. "password": "gdb", // Password yang sesuai dengan username untuk instans GDB. "labelType": "EDGE", // Tipe label. EDGE menunjukkan edge. "labels": ["label1", "label2"], // Daftar nama label. Daftar kosong berarti semua edge diekspor. "column": [ { "name": "id", // Nama field. "type": "string", // Tipe field. "columnType": "primaryKey" // Kategorisasi field. Ini menunjukkan ID kunci utama edge. Di GDB, tipenya adalah STRING. }, { "name": "label", // Nama field. "type": "string", // Tipe field. "columnType": "primaryLabel" // Kategorisasi field. Ini menunjukkan nama label edge. Di GDB, tipenya adalah STRING. }, { "name": "srcId", // Nama field. "type": "string", // Tipe field. "columnType": "srcPrimaryKey" // Kategorisasi field. Ini menunjukkan ID vertex sumber edge. Di GDB, tipenya adalah STRING. }, { "name": "srcLabel", // Nama field. "type": "string", // Tipe field. "columnType": "srcPrimaryLabel" // Kategorisasi field. Ini menunjukkan nama label vertex sumber edge. Di GDB, tipenya adalah STRING. }, { "name": "dstId", // Nama field. "type": "string", // Tipe field. "columnType": "dstPrimaryKey" // Kategorisasi field. Ini menunjukkan ID vertex tujuan edge. Di GDB, tipenya adalah STRING. }, { "name": "dstLabel", // Nama field. "type": "string", // Tipe field. "columnType": "dstPrimaryLabel" // Kategorisasi field. Ini menunjukkan nama label vertex tujuan edge. Di GDB, tipenya adalah STRING. }, { "name": "weight", // Nama field properti. "type": "double", // Tipe field properti. "columnType": "edgeProperty" // Kategorisasi field. Ini menunjukkan properti edge. } ] }, "stepType":"gdb" }, { "category":"writer", "name":"Writer", "parameter":{ "print": true }, "stepType":"stream" } ] }
Parameter skrip Reader
Parameter | Deskripsi | Wajib | Nilai default |
host | Nama domain yang digunakan untuk menghubungkan ke instans GDB. Di Konsol Graph Database, klik Manage di sebelah instans untuk melihat Internal Endpoint (host). | Ya | Tidak ada |
port | Port yang digunakan untuk menghubungkan ke instans GDB. | Ya | 8182 |
username | Nama akun untuk instans GDB. | Ya | Tidak ada |
password | Password untuk akun instans GDB. | Ya | Tidak ada |
labels | Nama tipe, yaitu nama vertex atau edge. Anda dapat membaca data dengan beberapa nama. Gunakan array, seperti `["label1", "label2"]`. | Ya | Tidak ada |
labelType | Tipe label data:
| Ya | Tidak ada |
column | Konfigurasi pemetaan field untuk vertex atau edge. | Ya | Tidak ada |
column -> name | Nama field untuk pemetaan vertex atau edge. Ini wajib saat membaca properti. Berikan nama properti. | Ya | Tidak ada |
column -> type | Tipe nilai field untuk pemetaan vertex atau edge:
| Ya | Tidak ada |
column -> columnType | Field pemetaan untuk data vertex atau edge GDB. Termasuk nilai enumerasi berikut:
| Ya | Tidak ada |
Demo skrip Writer
Contoh konfigurasi vertex
{ "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] }, "setting":{ "errorLimit":{ "record":"100" // Jumlah catatan error. Ini menunjukkan jumlah maksimum catatan data kotor yang dapat ditoleransi. }, "speed":{ "throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku, artinya laju tidak dibatasi. Jika throttle diatur ke true, laju dibatasi. "concurrent":3, // Konkurensi pekerjaan. "mbps":"12"// Batas laju. 1 mbps setara dengan 1 MB/s. } }, "steps":[ { "category":"reader", "name":"Reader", "parameter":{ "column":[ "*" ], "datasource":"_ODPS", "emptyAsNull":true, "guid":"", "isCompress":false, "partition":[], "table":"" }, "stepType":"odps" }, { "category":"writer", "name":"Writer", "parameter": { "datasource": "testGDB", // Nama sumber data. "label": "person", // Nama label, yaitu nama vertex. "srcLabel": "", // Field ini dapat diabaikan untuk tipe vertex. "dstLabel": "", // Field ini dapat diabaikan untuk tipe vertex. "labelType": "VERTEX", // Tipe label. "VERTEX" menunjukkan vertex. "writeMode": "INSERT", // Metode penanganan ID duplikat saat impor. "idTransRule": "labelPrefix", // Aturan transformasi untuk kunci utama vertex. "srcIdTransRule": "none", // Field ini dapat diabaikan untuk tipe vertex. "dstIdTransRule": "none", // Field ini dapat diabaikan untuk tipe vertex. "column": [ { "name": "id", // Nama field. "value": "#{0}", // #{0} menunjukkan nilai field pertama dari sumber. Penggabungan didukung. 0 adalah indeks kolom sumber. "type": "string", // Tipe field. "columnType": "primaryKey" // Kategorisasi field. primaryKey menunjukkan kunci utama. }, // Kunci utama vertex. Nama field harus id dan tipenya harus STRING. Catatan ini wajib ada. { "name": "person_age", "value": "#{1}", // #{1} menunjukkan nilai field kedua dari sumber. Penggabungan juga didukung. "type": "int", "columnType": "vertexProperty" // Kategorisasi field. vertexProperty menunjukkan properti vertex. }, // Properti vertex. Mendukung tipe INT, LONG, FLOAT, DOUBLE, BOOLEAN, dan STRING. { "name": "person_credit", "value": "#{2}", // #{2} menunjukkan nilai field ketiga dari sumber. Penggabungan juga didukung. "type": "string", "columnType": "vertexProperty" }, // Properti vertex. ] } "stepType":"gdb" } ], "type":"job", "version":"2.0" }Contoh konfigurasi edge
{ "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] }, "setting":{ "errorLimit":{ "record":"100" // Jumlah catatan error. Ini menunjukkan jumlah maksimum catatan data kotor yang dapat ditoleransi. }, "jvmOption":"", "speed":{ "throttle":true,// Jika throttle diatur ke false, parameter mbps tidak berlaku, artinya laju tidak dibatasi. Jika throttle diatur ke true, laju dibatasi. "concurrent":3, // Konkurensi pekerjaan. "mbps":"12"// Batas laju. 1 mbps setara dengan 1 MB/s. } }, "steps":[ { "category":"reader", "name":"Reader", "parameter":{ "column":[ "*" ], "datasource":"_ODPS", "emptyAsNull":true, "guid":"", "isCompress":false, "partition":[], "table":"" }, "stepType":"odps" }, { "category":"writer", "name":"Writer", "parameter": { "datasource": "testGDB", // Nama sumber data. "label": "use", // Nama label, yaitu nama edge. "labelType": "EDGE", // Tipe label. EDGE menunjukkan edge. "srcLabel": "person", // Nama vertex sumber. "dstLabel": "software", // Nama vertex tujuan. "writeMode": "INSERT", // Metode penanganan ID duplikat saat impor. "idTransRule": "labelPrefix", // Aturan transformasi untuk kunci utama edge. "srcIdTransRule": "labelPrefix", // Aturan transformasi untuk kunci utama vertex sumber. "dstIdTransRule": "labelPrefix", // Aturan transformasi untuk kunci utama vertex tujuan. "column": [ { "name": "id", // Nama field. "value": "#{0}", // #{0} menunjukkan nilai field pertama dari sumber. Penggabungan didukung. "type": "string", // Tipe field. "columnType": "primaryKey" // Kategorisasi field. primaryKey menunjukkan bahwa field ini adalah kunci utama. }, // Kunci utama edge. Nama field harus id dan tipenya harus STRING. Catatan ini bersifat opsional. { "name": "id", "value": "#{1}", // Penggabungan didukung. Aturan pemetaan harus konsisten dengan yang digunakan saat vertex dimasukkan. "type": "string", "columnType": "srcPrimaryKey" // Kategorisasi field. srcPrimaryKey menunjukkan kunci utama vertex sumber. }, // Kunci utama vertex sumber. Nama field harus id dan tipenya harus STRING. Catatan ini wajib ada. { "name": "id", "value": "#{2}", // Penggabungan didukung. Aturan pemetaan harus konsisten dengan yang digunakan saat vertex dimasukkan. "type": "string", "columnType": "dstPrimaryKey" // Kategorisasi field. dstPrimaryKey menunjukkan kunci utama vertex tujuan. }, // Kunci utama vertex tujuan. Nama field harus id dan tipenya harus STRING. Catatan ini wajib ada. { "name": "person_use_software_time", "value": "#{3}", // Penggabungan didukung. "type": "long", "columnType": "edgeProperty" // Kategorisasi field. edgeProperty menunjukkan properti edge. }, // Properti edge. Mendukung tipe INT, LONG, FLOAT, DOUBLE, BOOLEAN, dan STRING. { "name": "person_regist_software_name", "value": "#{4}", // Penggabungan didukung. "type": "string", "columnType": "edgeProperty" }, // Properti edge. { "name": "id", "value": "#{5}", // Penggabungan didukung. "type": "long", "columnType": "edgeProperty" }, // Properti edge. Nama field adalah id. Berbeda dengan ID kunci utama, field ini adalah properti biasa dan bersifat opsional. ] } "stepType":"gdb" } ], "type":"job", "version":"2.0" }
Parameter skrip Writer
Parameter | Deskripsi | Wajib | Nilai default |
datasource | Nama sumber data. Editor kode mendukung penambahan sumber data. Nilai item konfigurasi ini harus sama dengan nama sumber data yang ditambahkan. | Ya | Tidak ada |
label | Nama tipe, yaitu nama vertex atau edge. Label dapat dibaca dari kolom sumber. Misalnya, `#{0}` menunjukkan bahwa kolom pertama digunakan sebagai nama label. Indeks kolom sumber dimulai dari 0. | Ya | Tidak ada |
labelType | Tipe label:
| Ya | Tidak ada |
srcLabel |
| Tidak | Tidak ada |
dstLabel |
| Tidak | Tidak ada |
writeMode | Mode pemrosesan untuk ID duplikat saat impor.
| Ya | INSERT |
idTransRule | Aturan transformasi untuk ID kunci utama.
| Ya | none |
srcIdTransRule | Jika label adalah edge, parameter ini menentukan aturan transformasi untuk ID kunci utama vertex sumber.
| Wajib jika label adalah edge | none |
dstIdTransRule | Jika label adalah edge, parameter ini menentukan aturan transformasi untuk ID kunci utama vertex tujuan.
| Wajib jika label adalah edge | none |
column | Konfigurasi pemetaan field untuk vertex atau edge.
contoh properties | Ya | Tidak ada |