DataWorks menyediakan RestAPI Reader untuk membaca data dari API RESTful. Anda dapat mengonfigurasi URL permintaan HTTP untuk RestAPI Reader agar dapat membaca data dari sumber data RestAPI, mengonversi data tersebut ke tipe yang didukung oleh Data Integration, dan mentransfernya ke penulis (writer). Contohnya, Anda dapat menggunakan RestAPI Reader untuk membaca data dalam rentang waktu tertentu, membaca data berhalaman, atau menelusuri parameter permintaan dalam loop untuk mendapatkan data yang diperlukan. Topik ini memberikan contoh umum penggunaan sumber data RestAPI.
Topik ini menjelaskan cara menggunakan RestAPI Reader untuk membaca data. Untuk informasi tentang pengaturan parameter dalam contoh-contoh topik ini, lihat Parameter dalam Kode untuk RestAPI Reader.
Untuk informasi tentang cara mengonfigurasi skrip untuk RestAPI Writer, lihat Kode untuk RestAPI Writer dan Parameter dalam Kode untuk RestAPI Writer.
Informasi latar belakang
RestAPI Reader menyediakan kemampuan berikut dalam aspek pembacaan data dan pengembalian hasil:
Dimensi | Kemampuan |
Format respons yang didukung | RestAPI Reader hanya dapat membaca data dari respons dalam format JSON. |
Tipe data yang didukung | RestAPI Reader dapat membaca data dari tipe data INT, BOOLEAN, DATE, DOUBLE, FLOAT, LONG, dan STRING. |
Metode permintaan | RestAPI Reader dapat membaca data dari API RESTful yang dipanggil menggunakan metode GET atau POST melalui HTTP. |
Metode autentikasi | RestAPI Reader memungkinkan Anda menonaktifkan autentikasi atau menggunakan salah satu metode autentikasi berikut: autentikasi dasar, autentikasi berbasis token, dan autentikasi berdasarkan tanda tangan API Alibaba Cloud. Saat Anda menambahkan sumber data RestAPI ke DataWorks, Anda dapat memilih metode autentikasi yang didukung oleh sumber data dan mengonfigurasi parameter autentikasi yang diperlukan.
|
Contoh 1: Membaca data dari API RESTful yang mengambil data dalam rentang waktu tertentu
Skenario sampel: Definisikan API RESTful
Dalam skenario sampel ini, tugas sinkronisasi batch yang menggunakan RestAPI Reader dikonfigurasikan untuk menyinkronkan data dari API RESTful ke tabel partisi MaxCompute. API RESTful adalah API yang dikelola sendiri dengan metode permintaan GET. API RESTful mengembalikan data dalam rentang waktu tertentu berdasarkan parameter permintaan terkait rentang waktu yang dikonfigurasikan untuk API tersebut. Berikut adalah detail dari API RESTful:
Saat menggunakan RestAPI Reader untuk membaca data dari API RESTful, Anda dapat menyesuaikan konfigurasi berdasarkan API RESTful yang digunakan. API RESTful dalam contoh ini hanya untuk referensi.
Permintaan Sampel
http://TestAPIAddress:Port/rest/test2?startTime=<StartTime>&endTime=<EndTime>startTime dan endTime adalah parameter permintaan dari API RESTful. Parameter ini menentukan rentang waktu di mana data perlu di-query.
Respons Sampel
{ "status": "success", "totalNum": 187, "data": [ { "axis": "series1", "value": 9191352, "createTime": "2023-01-04 00:07:20" }, { "axis": "series1", "value": 6645322, "createTime": "2023-01-04 00:14:47" }, { "axis": "series1", "value": 2078369, "createTime": "2023-01-04 00:22:13" }, { "axis": "series1", "value": 7325410, "createTime": "2023-01-04 00:29:30" }, { "axis": "series1", "value": 7448456, "createTime": "2023-01-04 00:37:04" }, { "axis": "series1", "value": 5808077, "createTime": "2023-01-04 00:44:30" }, { "axis": "series1", "value": 5625821, "createTime": "2023-01-04 00:52:06" } ] }Parameter data dalam respons menunjukkan jalur tempat data yang di-query disimpan. Bidang berikut dikembalikan:
axis,value, dancreateTime.Panggilan Sampel yang Dibuat Menggunakan Alat Uji API

Persiapan: Buat tabel partisi MaxCompute
Dalam contoh ini, data yang dibaca dari API RESTful perlu ditulis ke tabel partisi MaxCompute. Anda harus membuat tabel partisi MaxCompute yang digunakan untuk menyimpan data yang disinkronkan sebelumnya.
Jika Anda menggunakan tabel partisi MaxCompute sebagai tabel tujuan dan mengatur mode penulisan ke penimpaan untuk tugas sinkronisasi batch terkait, data yang ada di partisi tabel akan ditimpa oleh data baru setiap kali tugas dijalankan, sehingga memungkinkan tugas sinkronisasi batch dijalankan ulang. Selama proses pelaksanaan ulang, data di tabel partisi MaxCompute tidak diduplikasi, dan tabel partisi MaxCompute dapat memfasilitasi analisis data.
Eksekusi pernyataan berikut untuk membuat tabel partisi MaxCompute:
CREATE TABLE IF NOT EXISTS ods_xiaobo_rest2
(
`axis` STRING
,`value` BIGINT
,`createTime` STRING
)
PARTITIONED BY
(
ds STRING
)
LIFECYCLE 3650;Jika Anda menggunakan ruang kerja dalam mode standar dan menerapkan tabel partisi MaxCompute ke lingkungan produksi setelah dibuat, Anda dapat melihat tabel tersebut di Peta Data.
Tambahkan sumber data RestAPI dan konfigurasikan tugas sinkronisasi batch
Tambahkan sumber data RestAPI.
Tambahkan sumber data RestAPI ke ruang kerja yang ingin Anda gunakan. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Data RestAPI.
Perhatikan item-item berikut:url: Tentukan URL dari API RESTful.
Auth method: Pilih metode autentikasi yang didukung oleh sumber data RestAPI dan konfigurasikan parameter autentikasi yang diperlukan.
Network connectivity: Sumber data RestAPI hanya mendukung grup sumber daya eksklusif untuk Data Integration. Pilih grup sumber daya eksklusif untuk Data Integration yang ingin Anda gunakan dan uji konektivitas jaringan antara grup sumber daya dan sumber data RestAPI.
Buat dan Konfigurasikan Tugas Sinkronisasi Batch.
Di halaman DataStudio konsol DataWorks, buat tugas sinkronisasi batch dan konfigurasikan tugas tersebut menggunakan antarmuka pengguna tanpa kode (UI). Untuk informasi lebih lanjut, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan UI Tanpa Kode. Perhatikan item-item berikut:
Item Konfigurasi Utama untuk source:
Data source: Pilih sumber data RestAPI yang telah ditambahkan pada langkah sebelumnya.
Request Method: Dalam contoh ini, metode permintaan API RESTful adalah GET. Atur metode permintaan ke GET.
Data Structure: Dalam contoh ini, respons yang dikembalikan oleh API RESTful adalah array JSON. Atur parameter Struktur Data ke Array Data.
json path to store data: Dalam contoh ini, bidang yang di-query oleh API RESTful disimpan di jalur data. Masukkan data di bidang tersebut.
Request parameters: Gunakan parameter permintaan bersama dengan parameter penjadwalan untuk memungkinkan tugas sinkronisasi batch menyinkronkan data setiap hari.
Anda dapat mengonfigurasi parameter permintaan berikut:
startTime=${extract_day} ${start_time}&endTime=${extract_day} ${end_time}.Saat mengonfigurasi properti penjadwalan untuk tugas sinkronisasi batch, tambahkan parameter penjadwalan berikut:
extract_day=${yyyy-mm-dd},start_time=00:00:00, danend_time=23:59:59.
Sebagai contoh, jika tanggal di mana tugas sinkronisasi batch dijadwalkan untuk dijalankan adalah 2023-01-05, nilai dari
extract_dayadalah 2023-01-04. Parameter permintaan digabungkan dalam format berikut:startTime=2023-01-04 00:00:00&endTime=2023-01-04 23:59:59.
Item Konfigurasi Utama untuk destination:
Data source dan table: Pilih sumber data MaxCompute yang ingin Anda gunakan dan tabel partisi MaxCompute yang dibuat dalam persiapan untuk contoh ini.
Partition information: Gunakan parameter penjadwalan untuk menentukan partisi ke mana Anda ingin menulis data di tabel partisi MaxCompute.
Masukkan
${bizdate}di bidang tersebut.Saat mengonfigurasi properti penjadwalan untuk tugas sinkronisasi data, tambahkan parameter penjadwalan
bizdate=$bizdate.
Sebagai contoh, jika tanggal di mana tugas sinkronisasi batch dijadwalkan untuk dijalankan adalah 2023-01-05, partisi ke mana data ditulis diwakili oleh tanggal 20230104.
Item Konfigurasi Utama untuk field mappings: Saat mengonfigurasi pemetaan bidang untuk tugas sinkronisasi batch, tentukan bidang yang ingin Anda dapatkan dari API RESTful berdasarkan definisi data dalam API RESTful. Nama bidang bersifat peka huruf besar-kecil. Setelah menentukan bidang, klik Map Fields with Same Name untuk memetakan bidang sumber ke bidang tujuan yang namanya sama, atau secara manual seret garis untuk memetakan bidang sumber ke bidang tujuan.
Uji tugas sinkronisasi batch
Dalam contoh ini, parameter penjadwalan dikonfigurasikan untuk tugas sinkronisasi batch. Setelah menyelesaikan konfigurasi tugas sinkronisasi batch, klik ikon Run with Parameters di bilah alat atas tab konfigurasi tugas untuk menguji tugas tersebut. Setelah mengklik ikon tersebut, tentukan nilai untuk parameter penjadwalan di kotak dialog yang muncul.
Setelah melakukan pengujian, lihat log run yang dihasilkan untuk tugas sinkronisasi batch di bagian bawah tab konfigurasi untuk memeriksa apakah nilai parameter penjadwalan sesuai dengan kebutuhan bisnis Anda.
Periksa apakah data disinkronkan ke MaxCompute
Anda dapat membuat node kueri ad hoc di panel Kueri Ad Hoc halaman DataStudio untuk menanyakan data yang disinkronkan ke MaxCompute. Pernyataan kueri sampel:
select * from ods_xiaobo_rest2 where ds='20230104' order by createtime;ods_xiaobo_rest2 adalah tabel partisi MaxCompute yang dibuat dalam persiapan untuk contoh ini. 20230104 adalah partisi yang diperoleh dalam pengujian sebelumnya.
Setelah mengeksekusi pernyataan kueri, periksa apakah data berhasil disinkronkan ke MaxCompute di tab hasil di bagian bawah tab konfigurasi.
Komit dan terapkan tugas sinkronisasi batch, dan isi balik data untuk tugas sinkronisasi batch
Setelah pengujian dan pemeriksaan data selesai, komit dan terapkan tugas sinkronisasi batch ke lingkungan produksi. Untuk informasi tentang cara menerapkan tugas di ruang kerja dalam mode standar, lihat Terapkan Node di Ruang Kerja yang Berada dalam Mode Standar.
Setelah tugas sinkronisasi batch diterapkan ke lingkungan produksi, Anda dapat menemukan tugas tersebut di halaman Tugas Siklus di Pusat Operasi dan isi balik data historis untuk tugas tersebut. Untuk informasi tentang fitur pengisian balik data dan cara mengisi balik data untuk tugas, lihat Isi Balik Data untuk Tugas yang Dipicu Otomatis dan Lihat Instance Pengisian Balik Data yang Dihasilkan untuk Tugas Tersebut.
Contoh 2: Membaca data dari hasil berhalaman yang dikembalikan oleh API RESTful
Skema sampel: Definisikan API RESTful
Dalam skenario sampel ini, tugas sinkronisasi batch yang menggunakan RestAPI Reader dikonfigurasikan untuk menyinkronkan data dari API RESTful ke tabel partisi MaxCompute. API RESTful adalah API yang dikelola sendiri dengan metode permintaan GET. Berikut adalah detail dari API RESTful:
Saat menggunakan RestAPI Reader untuk membaca data dari API RESTful, Anda dapat menyesuaikan konfigurasi berdasarkan API RESTful yang digunakan. API RESTful dalam contoh ini hanya untuk referensi.
Permintaan Sampel
http://TestAPIAddress:Port/rest/test1?pageSize=5&pageNum=1pageSize dan pageNum adalah parameter permintaan dari API RESTful. pageSize menentukan jumlah entri yang dikembalikan di setiap halaman. pageNum menentukan jumlah total halaman yang dikembalikan.
Respons Sampel
{ "status": "success", "totalNum": 304, "data": [ { "id": 6, "name": "User 6" }, { "id": 7, "name": "User 7" }, { "id": 8, "name": "User 8" }, { "id": 9, "name": "User 9" }, { "id": 10, "name": "User 10" } ] }Parameter data dalam respons menunjukkan jalur tempat data yang di-query disimpan. Bidang berikut dikembalikan:
iddanname.Panggilan Sampel yang Dibuat Menggunakan Alat Uji API

Persiapan: Buat tabel partisi MaxCompute
Dalam contoh ini, data yang dibaca dari API RESTful perlu ditulis ke tabel partisi MaxCompute. Anda harus membuat tabel partisi MaxCompute yang digunakan untuk menyimpan data yang disinkronkan sebelumnya.
Jika Anda menggunakan tabel partisi MaxCompute sebagai tabel tujuan dan mengatur mode penulisan ke penimpaan untuk tugas sinkronisasi batch terkait, data yang ada di partisi tabel akan ditimpa oleh data baru setiap kali tugas dijalankan, sehingga memungkinkan tugas sinkronisasi batch dijalankan ulang. Selama proses pelaksanaan ulang, data di tabel partisi MaxCompute tidak diduplikasi, dan tabel partisi MaxCompute dapat memfasilitasi analisis data.
Eksekusi pernyataan berikut untuk membuat tabel partisi MaxCompute:
CREATE TABLE IF NOT EXISTS ods_xiaobo_rest1
(
`id` BIGINT
,`name` STRING
)
PARTITIONED BY
(
ds STRING
)
LIFECYCLE 3650;Jika Anda menggunakan ruang kerja dalam mode standar dan menerapkan tabel partisi MaxCompute ke lingkungan produksi setelah dibuat, Anda dapat melihat tabel tersebut di Peta Data.
Tambahkan sumber data RestAPI dan konfigurasikan tugas sinkronisasi batch
Tambahkan Sumber Data RestAPI.
Tambahkan sumber data RestAPI ke ruang kerja yang ingin Anda gunakan. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Data RestAPI.
Perhatikan item-item berikut:url: Tentukan URL dari API RESTful.
Auth method: Pilih metode autentikasi yang didukung oleh sumber data RestAPI dan konfigurasikan parameter autentikasi yang diperlukan.
Network connectivity: Sumber data RestAPI hanya mendukung grup sumber daya eksklusif untuk Data Integration. Pilih grup sumber daya eksklusif untuk Data Integration yang ingin Anda gunakan dan uji konektivitas jaringan antara grup sumber daya dan sumber data RestAPI.
Buat dan Konfigurasikan Tugas Sinkronisasi Batch.
Di halaman DataStudio konsol DataWorks, buat tugas sinkronisasi batch dan konfigurasikan tugas tersebut menggunakan antarmuka pengguna tanpa kode. Untuk informasi lebih lanjut, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan UI Tanpa Kode. Perhatikan item-item berikut:
Item Konfigurasi Utama untuk source:
Data source: Pilih sumber data RestAPI yang telah ditambahkan pada langkah sebelumnya.
Request Method: Dalam contoh ini, metode permintaan API RESTful adalah GET. Atur metode permintaan ke GET.
Data Structure: Dalam contoh ini, respons yang dikembalikan oleh API RESTful adalah array JSON. Atur parameter Struktur Data ke Array Data.
json path to store data: Dalam contoh ini, bidang yang di-query oleh API RESTful disimpan di jalur data. Masukkan data di bidang tersebut.
Request parameters: Dalam contoh ini, konfigurasikan
pageSize=50untuk membatasi jumlah entri yang dikembalikan di setiap halaman menjadi 50. Kami menyarankan Anda untuk tidak menentukan nilai yang terlalu besar untuk parameter pageSize. Jika tidak, beban pada sisi server RestAPI dan tugas sinkronisasi batch mungkin akan tinggi.Number of requests: Dalam contoh ini, pilih Multiple requests.
Parameter paging yang digunakan dalam contoh ini untuk API RESTful adalah pageNum. Setelah memilih Multiple requests, konfigurasikan parameter berikut:
Multiple requests parameter: Masukkan pageNum.
StartIndex: Masukkan 1.
Step: Masukkan 1.
EndIndex: Masukkan 100.
Item Konfigurasi Utama untuk destination:
Data source dan table: Pilih sumber data MaxCompute yang ingin Anda gunakan dan tabel partisi MaxCompute yang dibuat dalam persiapan untuk contoh ini.
Partition information: Gunakan parameter penjadwalan untuk menentukan partisi ke mana Anda ingin menulis data di tabel partisi MaxCompute.
Masukkan
${bizdate}di bidang tersebut.Saat mengonfigurasi properti penjadwalan untuk tugas sinkronisasi data, tambahkan parameter penjadwalan
bizdate=$bizdate.
Sebagai contoh, jika tanggal di mana tugas sinkronisasi batch dijadwalkan untuk dijalankan adalah 2023-01-05, partisi ke mana data ditulis diwakili oleh tanggal 20230104.
Item Konfigurasi Utama untuk field mappings: Saat mengonfigurasi pemetaan bidang untuk tugas sinkronisasi batch, tentukan bidang yang ingin Anda dapatkan dari API RESTful berdasarkan definisi data dalam API RESTful. Nama bidang bersifat peka huruf besar-kecil. Setelah menentukan bidang, klik Map Fields with Same Name untuk memetakan bidang sumber ke bidang tujuan yang namanya sama, atau secara manual seret garis untuk memetakan bidang sumber ke bidang tujuan.
Uji tugas sinkronisasi batch
Dalam contoh ini, parameter penjadwalan dikonfigurasikan untuk tugas sinkronisasi batch. Setelah menyelesaikan konfigurasi tugas sinkronisasi batch, klik ikon Run with Parameters di bilah alat atas tab konfigurasi tugas untuk menguji tugas tersebut. Setelah mengklik ikon tersebut, tentukan nilai untuk parameter penjadwalan di kotak dialog yang muncul.
Setelah melakukan pengujian, lihat log run yang dihasilkan untuk tugas sinkronisasi batch di bagian bawah tab konfigurasi untuk memeriksa apakah nilai parameter penjadwalan sesuai dengan kebutuhan bisnis Anda.
Periksa apakah data disinkronkan ke MaxCompute
Anda dapat membuat node kueri ad hoc di panel Kueri Ad Hoc halaman DataStudio untuk menanyakan data yang disinkronkan ke MaxCompute. Pernyataan kueri sampel:
select * from ods_xiaobo_rest1 where ds='20230104' order by id;ods_xiaobo_rest1 adalah tabel partisi MaxCompute yang dibuat dalam persiapan untuk contoh ini. 20230104 adalah partisi yang diperoleh dalam pengujian sebelumnya.
Setelah mengeksekusi pernyataan kueri, periksa apakah data berhasil disinkronkan ke MaxCompute di tab hasil di bagian bawah tab konfigurasi.
Contoh 3: Membaca data dari API RESTful yang metode permintaannya adalah POST
Skema sampel: Definisikan API RESTful
Dalam skenario sampel ini, tugas sinkronisasi batch yang menggunakan RestAPI Reader dikonfigurasikan untuk menyinkronkan data dari API RESTful ke tabel partisi MaxCompute. API RESTful adalah API yang dikelola sendiri dengan metode permintaan POST. Berikut adalah detail dari API RESTful:
Saat menggunakan RestAPI Reader untuk membaca data dari API RESTful, Anda dapat menyesuaikan konfigurasi berdasarkan API RESTful yang digunakan. API RESTful dalam contoh ini hanya untuk referensi.
Permintaan Sampel
http://TestAPIAddress:Port/rest/test3Badan permintaan dalam format JSON.
{ "userId":16, "startTime":"2023-01-04 00:00:00", "endTime":"2023-01-04 23:59:59" }Respons Sampel
{ "status": "success", "totalNum": 289, "data": [ { "user": { "id": 16, "name": "User 16" }, "axis": "series1", "value": 8231053, "createTime": "2023-01-04 00:04:57" }, { "user": { "id": 16, "name": "User 16" }, "axis": "series1", "value": 6519928, "createTime": "2023-01-04 00:09:51" }, { "user": { "id": 16, "name": "User 16" }, "axis": "series1", "value": 2915920, "createTime": "2023-01-04 00:14:36" }, { "user": { "id": 16, "name": "User 16" }, "axis": "series1", "value": 7971851, "createTime": "2023-01-04 00:19:51" }, { "user": { "id": 16, "name": "User 16" }, "axis": "series1", "value": 6598996, "createTime": "2023-01-04 00:24:30" } ] }Parameter data dalam respons menunjukkan jalur tempat data yang di-query disimpan. Bidang berikut dikembalikan:
user.id,user.name,axis,value, dancreateTime.Panggilan Sampel yang Dibuat Menggunakan Alat Uji API

Persiapan: Buat tabel partisi MaxCompute
Dalam contoh ini, data yang dibaca dari API RESTful perlu ditulis ke tabel partisi MaxCompute. Anda harus membuat tabel partisi MaxCompute yang digunakan untuk menyimpan data yang disinkronkan sebelumnya.
Jika Anda menggunakan tabel partisi MaxCompute sebagai tabel tujuan dan mengatur mode penulisan ke penimpaan untuk tugas sinkronisasi batch terkait, data yang ada di partisi tabel akan ditimpa oleh data baru setiap kali tugas dijalankan, sehingga memungkinkan tugas sinkronisasi batch dijalankan ulang. Selama proses pelaksanaan ulang, data di tabel partisi MaxCompute tidak diduplikasi, dan tabel partisi MaxCompute dapat memfasilitasi analisis data.
Eksekusi pernyataan berikut untuk membuat tabel partisi MaxCompute:
CREATE TABLE IF NOT EXISTS ods_xiaobo_rest3
(
`user_id` BIGINT
,`name` STRING
,`axis` STRING
,`value` BIGINT
,`create_time` STRING
)
PARTITIONED BY
(
ds STRING
)
LIFECYCLE 3650;Jika Anda menggunakan ruang kerja dalam mode standar dan menerapkan tabel partisi MaxCompute ke lingkungan produksi setelah dibuat, Anda dapat melihat tabel tersebut di Peta Data.
Tambahkan sumber data RestAPI dan konfigurasikan tugas sinkronisasi batch
Tambahkan Sumber Data RestAPI.
Tambahkan sumber data RestAPI ke ruang kerja yang ingin Anda gunakan. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Data RestAPI.
Perhatikan item-item berikut:url: Tentukan URL dari API RESTful.
Auth method: Pilih metode autentikasi yang didukung oleh sumber data RestAPI dan konfigurasikan parameter autentikasi yang diperlukan.
Network connectivity: Sumber data RestAPI hanya mendukung grup sumber daya eksklusif untuk Data Integration. Pilih grup sumber daya eksklusif untuk Data Integration yang ingin Anda gunakan dan uji konektivitas jaringan antara grup sumber daya dan sumber data RestAPI.
Buat dan Konfigurasikan Tugas Sinkronisasi Batch.
Di halaman DataStudio konsol DataWorks, buat tugas sinkronisasi batch dan konfigurasikan tugas tersebut menggunakan antarmuka pengguna tanpa kode. Untuk informasi lebih lanjut, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan UI Tanpa Kode. Perhatikan item-item berikut:
Item Konfigurasi Utama untuk source:
Data source: Pilih sumber data RestAPI yang telah ditambahkan pada langkah sebelumnya.
Request Method: Dalam contoh ini, metode permintaan API RESTful adalah POST. Atur metode permintaan ke POST.
Data Structure: Dalam contoh ini, respons yang dikembalikan oleh API RESTful adalah array JSON. Atur parameter Struktur Data ke Array Data.
json path to store data: Dalam contoh ini, bidang yang di-query oleh API RESTful disimpan di jalur data. Masukkan data di bidang tersebut.
Header: Badan permintaan API RESTful yang digunakan dalam contoh ini dalam format JSON. Dalam contoh ini, masukkan
{"Content-Type":"application/json"}di bidang tersebut.Request parameters: Gunakan parameter permintaan bersama dengan parameter penjadwalan untuk memungkinkan tugas sinkronisasi batch menyinkronkan data setiap hari.
Kode berikut memberikan contoh untuk konfigurasi parameter permintaan:
{ "userId":16, "startTime":"${extract_day} 00:00:00", "endTime":"${extract_day} 23:59:59" }Saat mengonfigurasi properti penjadwalan untuk tugas sinkronisasi batch, tambahkan parameter penjadwalan
extract_day=${yyyy-mm-dd}.
Item Konfigurasi Utama untuk destination:
Data source dan table: Pilih sumber data MaxCompute yang ingin Anda gunakan dan tabel partisi MaxCompute yang dibuat dalam persiapan untuk contoh ini.
Partition information: Gunakan parameter penjadwalan untuk menentukan partisi ke mana Anda ingin menulis data di tabel partisi MaxCompute.
Masukkan
${bizdate}di bidang tersebut.Saat mengonfigurasi properti penjadwalan untuk tugas sinkronisasi data, tambahkan parameter penjadwalan
bizdate=$bizdate.
Sebagai contoh, jika tanggal di mana tugas sinkronisasi batch dijadwalkan untuk dijalankan adalah 2023-01-05, partisi ke mana data ditulis diwakili oleh tanggal 20230104.
Item Konfigurasi Utama untuk field mappings: Saat mengonfigurasi pemetaan bidang untuk tugas sinkronisasi batch, tentukan bidang yang ingin Anda dapatkan dari API RESTful berdasarkan definisi data dalam API RESTful. Jika bidang yang ingin Anda tentukan adalah bidang bersarang, gunakan titik (.) di nama bidang saat menentukan bidang tersebut. Nama bidang bersifat peka huruf besar-kecil. Setelah menentukan bidang, klik Map Fields with Same Name untuk memetakan bidang sumber ke bidang tujuan yang namanya sama, atau secara manual seret garis untuk memetakan bidang sumber ke bidang tujuan.
Uji tugas sinkronisasi batch
Dalam contoh ini, parameter penjadwalan dikonfigurasikan untuk tugas sinkronisasi batch. Setelah menyelesaikan konfigurasi tugas sinkronisasi batch, klik ikon Run with Parameters di bilah alat atas tab konfigurasi tugas untuk menguji tugas tersebut. Setelah mengklik ikon tersebut, tentukan nilai untuk parameter penjadwalan di kotak dialog yang muncul.
Setelah melakukan pengujian, lihat log run yang dihasilkan untuk tugas sinkronisasi batch di bagian bawah tab konfigurasi untuk memeriksa apakah nilai parameter penjadwalan sesuai dengan kebutuhan bisnis Anda.
Periksa apakah data disinkronkan ke MaxCompute
Anda dapat membuat node kueri ad hoc di panel Kueri Ad Hoc halaman DataStudio untuk menanyakan data yang disinkronkan ke MaxCompute. Pernyataan kueri sampel:
select * from ods_xiaobo_rest3 where ds='20230105' order by create_time;ods_xiaobo_rest3 adalah tabel partisi MaxCompute yang dibuat dalam persiapan untuk contoh ini. 20230105 adalah partisi yang diperoleh dalam pengujian sebelumnya.
Setelah mengeksekusi pernyataan kueri, periksa apakah data berhasil disinkronkan ke MaxCompute di tab hasil di bagian bawah tab konfigurasi.
Contoh 4: Menelusuri parameter permintaan API RESTful dalam loop untuk membaca data
Skema sampel: Definisikan API RESTful
Dalam skenario sampel ini, tugas sinkronisasi batch yang menggunakan RestAPI Reader dikonfigurasikan untuk membaca data berulang kali dari API RESTful ke tabel partisi MaxCompute. API RESTful adalah API yang dikelola sendiri dengan metode permintaan GET dan mengembalikan data terkait suhu berdasarkan parameter permintaan berikut: date, province, dan city.
Saat menggunakan RestAPI Reader untuk membaca data dari API RESTful, Anda dapat menyesuaikan konfigurasi berdasarkan API RESTful yang digunakan. API RESTful dalam contoh ini hanya untuk referensi.
Permintaan Sampel
http://TestAPIAddress:Port/rest/test5?date=2023-01-04&province=zhejiang&city=hangzhouRespons Sampel
{ "province": "P1", "city": "hz", "date": "2023-01-04", "minTemperature": "-14", "maxTemperature": "-7", "unit": "℃", "weather": "cool" }Panggilan Sampel yang Dibuat Menggunakan Alat Uji API

Persiapan: Buat tabel parameter dan tabel partisi MaxCompute
Dalam contoh ini, data yang dibaca dari API RESTful perlu ditulis ke tabel partisi MaxCompute. Anda harus membuat tabel parameter dan tabel partisi MaxCompute sebelumnya. Tabel parameter digunakan untuk menyimpan nilai parameter province dan city, yang perlu ditelusuri dalam loop. Tabel partisi MaxCompute digunakan untuk menyimpan data yang disinkronkan.
Jika Anda menggunakan tabel partisi MaxCompute sebagai tabel tujuan dan mengatur mode penulisan ke penimpaan untuk tugas sinkronisasi batch terkait, data yang ada di partisi tabel akan ditimpa oleh data baru setiap kali tugas dijalankan, sehingga memungkinkan tugas sinkronisasi batch dijalankan ulang. Selama proses pelaksanaan ulang, data di tabel partisi MaxCompute tidak diduplikasi, dan tabel partisi MaxCompute dapat memfasilitasi analisis data.
Eksekusi pernyataan berikut untuk membuat tabel:
Buat tabel parameter
CREATE TABLE IF NOT EXISTS `citys`
(
`province` STRING ,
`city` STRING
);
insert into citys
select 'shanghai','shanghai'
union all select 'zhejiang','hangzhou'
union all select 'sichuan','chengdu';Buat tabel partisi MaxCompute
CREATE TABLE IF NOT EXISTS ods_xiaobo_rest5
(
`minTemperature` STRING ,
`maxTemperature` STRING ,
`unit` STRING ,
`weather` STRING
)
PARTITIONED BY
(
`province` STRING ,
`city` STRING ,
`ds` STRING
)
LIFECYCLE 3650;Jika Anda menggunakan ruang kerja dalam mode standar dan menerapkan kedua tabel ke lingkungan produksi setelah mereka dibuat, Anda dapat melihat tabel-tabel tersebut di Peta Data.
Tambahkan sumber data RestAPI dan konfigurasikan tugas sinkronisasi batch
Tambahkan Sumber Data RestAPI.
Tambahkan sumber data RestAPI ke ruang kerja yang ingin Anda gunakan. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Data RestAPI.
Perhatikan item-item berikut:url: Tentukan URL dari API RESTful.
Auth method: Pilih metode autentikasi yang didukung oleh sumber data RestAPI dan konfigurasikan parameter autentikasi yang diperlukan.
Network connectivity: Pilih grup sumber daya eksklusif untuk Data Integration yang ingin Anda gunakan dan uji konektivitas jaringan antara grup sumber daya dan sumber data RestAPI.
Buat dan konfigurasikan node penugasan bernama setval_citys di halaman DataStudio. Untuk informasi lebih lanjut, lihat Konfigurasikan Node Penugasan.
Perhatikan item-item berikut:
No.
Deskripsi
1
Bahasa pemrograman: ODPS SQL
Kode untuk penugasan nilai:
SELECT province ,city FROM citys;
2
Properti rerun: Atur properti rerun ke Allow Regardless of Running Status.
Setelah konfigurasi node penugasan selesai, komit dan terapkan node tersebut.
Buat dan konfigurasikan node for-each di halaman DataStudio. Untuk informasi lebih lanjut, lihat topik-topik dalam direktori Konfigurasikan Node For-Each. Perhatikan item-item berikut:
Parameter
Deskripsi
Properti rerun
Atur properti rerun ke Allow Regardless of Running Status.
Node leluhur
Pilih node penugasan setval_citys.
Parameter masukan
Pilih sumber parameter masukan.
Tugas sinkronisasi batch
Lihat langkah berikut untuk membuat dan mengonfigurasi tugas sinkronisasi batch di dalam node for-each.
Buat dan konfigurasikan tugas sinkronisasi batch menggunakan UI tanpa kode. Untuk informasi lebih lanjut, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan UI Tanpa Kode.
Perhatikan item-item berikut:
Parameter
Deskripsi
parameter penjadwalan
Konfigurasikan parameter penjadwalan berikut:
bizdate=$[yyyymmdd-1] bizdate_year=$[yyyy-1] bizdate_month=$[mm-1] bizdate_day=$[dd-1]parameter permintaan
Konfigurasikan parameter permintaan untuk API RESTful. Parameter province dan city adalah parameter keluaran dari node for-each.
date=${bizdate_year}-${bizdate_month}-${bizdate_day}&province=${dag.foreach.current[0]}&city=${dag.foreach.current[1]}parameter province
Konfigurasikan parameter province untuk menentukan partisi MaxCompute tujuan. Parameter province adalah parameter keluaran dari node for-each.
province=${dag.foreach.current[0]}parameter city
Konfigurasikan parameter city untuk menentukan partisi MaxCompute tujuan. Parameter city adalah parameter keluaran dari node for-each.
city=${dag.foreach.current[1]}parameter ds
Konfigurasikan parameter ds untuk menentukan partisi MaxCompute tujuan. Parameter ds adalah parameter penjadwalan.
ds=${bizdate}pemetaan bidang
Tentukan bidang yang ingin Anda dapatkan dari API RESTful berdasarkan definisi data dalam API RESTful. Nama bidang bersifat peka huruf besar-kecil. Setelah Anda menentukan bidang, Anda dapat mengklik Map Fields with Same Name untuk memetakan bidang sumber ke bidang tujuan yang namanya sama, atau secara manual menyeret garis untuk memetakan bidang sumber ke bidang tujuan.
Setelah konfigurasi selesai, komit dan terapkan node for-each.
Uji node penugasan dan node for-each.
Setelah Anda mengomitm dan terapkan node penugasan dan node for-each, temukan node penugasan di halaman Tugas Siklus di Pusat Operasi dan isi balik data untuk node penugasan. Untuk informasi lebih lanjut, lihat Isi Balik Data dan Lihat Instance Pengisian Balik Data (Versi Baru).
Pilih cap waktu data dan node yang ingin Anda isi balik datanya. Cap waktu data mencakup titik awal dan titik akhir waktu.
Setelah instance pengisian balik data dihasilkan untuk node tersebut, periksa apakah parameter penjadwalan dirender dengan benar di log run node penugasan.
Dalam gambar di atas, parameter penjadwalan dirender dengan benar. Data akan ditulis ke partisi
province=shanghai,city=shanghai,ds=20231215tabel MaxCompute.
Periksa apakah data disinkronkan ke MaxCompute
Anda dapat membuat node kueri ad hoc di panel Kueri Ad Hoc halaman DataStudio untuk menanyakan data yang disinkronkan ke MaxCompute.
ods_xiaobo_rest5 dalam pernyataan sampel berikut adalah tabel partisi MaxCompute yang dibuat dalam subbagian Persiapan: Buat Tabel Partisi MaxCompute.
SELECT weather
,mintemperature
,maxtemperature
,unit
,province
,city
,ds
FROM ods_xiaobo_rest5
WHERE ds != 1
ORDER BY ds,province,city;Setelah mengeksekusi pernyataan kueri, Anda dapat memeriksa apakah data berhasil disinkronkan ke MaxCompute di tab hasil di bagian bawah tab konfigurasi.