全部产品
Search
文档中心

DataWorks:Gunakan RestAPI Reader untuk membaca data

更新时间:Jul 02, 2025

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.

Catatan

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.

  • Basic Authentication: autentikasi dasar

    Jika sumber data mendukung autentikasi berbasis nama pengguna dan kata sandi, Anda dapat memilih Basic Authentication dan mengonfigurasi nama pengguna dan kata sandi yang dapat digunakan untuk autentikasi. Selama integrasi data, nama pengguna dan kata sandi ditransfer ke URL API RESTful untuk autentikasi. Sumber data hanya terhubung setelah autentikasi berhasil.

  • Token Authentication: autentikasi berbasis token

    Jika sumber data mendukung autentikasi berbasis token, Anda dapat memilih Token Authentication dan mengonfigurasi nilai token tetap yang dapat digunakan untuk autentikasi. Selama integrasi data, token tersebut disertakan dalam header permintaan, seperti {"Authorization":"Bearer TokenXXXXXX"}, dan ditransfer ke URL API RESTful untuk autentikasi. Sumber data hanya terhubung setelah autentikasi berhasil.

    Catatan

    Jika Anda ingin menggunakan metode autentikasi kustom, Anda dapat memilih Token Authentication dan mengonfigurasi nilai token tetap di bidang Token. Nilai token dapat digunakan untuk autentikasi setelah dienkripsi.

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:

Catatan

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, dan createTime.

  • Panggilan Sampel yang Dibuat Menggunakan Alat Uji APIapirest2

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.

Catatan

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

  1. Tambahkan sumber data RestAPI.

    Tambahkan sumber data RestAPI ke ruang kerja yang ingin Anda gunakan. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Data RestAPI. image.pngPerhatikan 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.

  2. 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, dan end_time=23:59:59.

        Sebagai contoh, jika tanggal di mana tugas sinkronisasi batch dijadwalkan untuk dijalankan adalah 2023-01-05, nilai dari extract_day adalah 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.结果1

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:

Catatan

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=1

    pageSize 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: id dan name.

  • Panggilan Sampel yang Dibuat Menggunakan Alat Uji APIapirest1

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.

Catatan

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

  1. Tambahkan Sumber Data RestAPI.

    Tambahkan sumber data RestAPI ke ruang kerja yang ingin Anda gunakan. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Data RestAPI. image.pngPerhatikan 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.

  2. 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=50 untuk 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.结果1

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:

Catatan

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/test3

    Badan 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, dan createTime.

  • Panggilan Sampel yang Dibuat Menggunakan Alat Uji APIapirest3

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.

Catatan

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

  1. Tambahkan Sumber Data RestAPI.

    Tambahkan sumber data RestAPI ke ruang kerja yang ingin Anda gunakan. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Data RestAPI. image.pngPerhatikan 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.

  2. 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.结果3

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.

Catatan

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=hangzhou
  • Respons Sampel

    {
      "province": "P1",
      "city": "hz",
      "date": "2023-01-04",
      "minTemperature": "-14",
      "maxTemperature": "-7",
      "unit": "℃",
      "weather": "cool"
    }
  • Panggilan Sampel yang Dibuat Menggunakan Alat Uji APIimage.png

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.

Catatan

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

  1. Tambahkan Sumber Data RestAPI.

    Tambahkan sumber data RestAPI ke ruang kerja yang ingin Anda gunakan. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Data RestAPI. image.pngPerhatikan 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.

  2. 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.

  3. 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.

  4. 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.

  1. 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).

  2. Pilih cap waktu data dan node yang ingin Anda isi balik datanya. Cap waktu data mencakup titik awal dan titik akhir waktu.

  3. 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=20231215 tabel 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.