All Products
Search
Document Center

DataWorks:Pemrosesan data

Last Updated:Aug 21, 2026

Topik ini menggambarkan skenario gudang data dan pemrosesan data sederhana: menggunakan node MaxCompute di DataWorks untuk memproses tabel informasi pengguna ods_user_info_d_odps dan data log akses ods_raw_log_d_odps guna menghasilkan data profil pengguna.

Prasyarat

Sebelum memulai, selesaikan langkah-langkah dalam Sinkronisasi data.

  • Informasi pengguna dasar dari tabel MySQL ods_user_info_d telah disinkronkan ke tabel MaxCompute ods_user_info_d_odps menggunakan Data Integration.

  • Log akses situs web dari objek Object Storage Service (OSS) user_log.txt telah disinkronkan ke tabel MaxCompute ods_raw_log_d_odps menggunakan Data Integration.

Tujuan

Anda akan memproses tabel ods_user_info_d_odps dan ods_raw_log_d_odps di MaxCompute untuk menghasilkan tabel profil pengguna dasar.

  1. Pisahkan bidang informasi log di tabel ods_raw_log_d_odps menjadi beberapa bidang untuk menghasilkan tabel fakta dwd_log_info_di_odps.

  2. Gabungkan tabel fakta dwd_log_info_di_odps dengan tabel ods_user_info_d_odps berdasarkan bidang uid untuk menghasilkan tabel agregat dws_user_info_all_di_odps.

  3. Tabel dws_user_info_all_di_odps memiliki banyak kolom dan terlalu besar untuk langsung dikonsumsi sebagai data consumption, sehingga Anda perlu menyaringnya menjadi tabel ads_user_info_1d_odps.

Buka DataStudio

Masuk ke Konsol DataWorks. Di wilayah target, klik Data Development and O&M > Data Development di panel navigasi kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to Data Development.

1. Rancang alur kerja

Setelah tahap sinkronisasi data, data tersedia di MaxCompute. Tujuan selanjutnya adalah memproses data tersebut untuk menghasilkan profil pengguna dasar.

  • Hierarki dan logika node

    Di kanvas alur kerja, klik Create Node untuk membuat node berikut.

    Kategori node

    Jenis node

    Parameter

    (Dinamai sesuai tabel output akhir)

    Logika kode

    MaxCompute

    ODPS SQL

    dwd_log_info_di_odps

    Gunakan fungsi bawaan dan user-defined function (UDF) untuk memisahkan data dari tabel log mentah ods_raw_log_d_odps dan tulis hasilnya ke beberapa bidang di tabel dwd_log_info_di_odps.

    MaxCompute

    ODPS SQL

    dws_user_info_all_di_odps

    Agregasikan informasi pengguna dasar dan data log yang telah diproses awal ke dalam satu tabel.

    MaxCompute

    ODPS SQL

    ads_user_info_1d_odps

    Lanjutkan pemrosesan data untuk menghasilkan profil pengguna dasar.

  • Grafik asiklik terarah (DAG) alur kerja

    Rancang alur kerja pemrosesan data dengan menyeret komponen node ke kanvas alur kerja dan menggambar garis di antara node untuk mengatur dependensi.

    image

Langkah 2: Konfigurasikan alur kerja

Buat tabel MaxCompute

Buat tabel dwd_log_info_di_odps, dws_user_info_all_di_odps, dan ads_user_info_1d_odps terlebih dahulu untuk menyimpan data yang diproses pada setiap lapisan. Langkah-langkah berikut menunjukkan cara cepat membuat tabel terkait. Untuk informasi lebih lanjut tentang operasi tabel MaxCompute, lihat Buat dan gunakan tabel MaxCompute.

  1. Buka halaman pembuatan tabel.

    Di halaman DataStudio, buka alur kerja WorkShop yang telah Anda buat pada tahap sinkronisasi data. Klik kanan MaxCompute dan pilih Create Table.

  2. Definisikan skema tabel MaxCompute.

    Di kotak dialog Create Table, masukkan nama tabel dan klik Create. Buat tiga tabel bernama dwd_log_info_di_odps, dws_user_info_all_di_odps, dan ads_user_info_1d_odps. Pilih metode DDL untuk membuat tabel. Bagian berikut menyediakan pernyataan DDL untuk ketiga tabel tersebut.

  3. Komit tabel ke mesin komputasi.

    Setelah Anda mendefinisikan skema tabel, klik Commit to Development Environment lalu Commit to Production Environment. Sistem kemudian akan membuat tabel fisik di proyek mesin komputasi untuk lingkungan pengembangan dan produksi.

    • Komit tabel ke lingkungan pengembangan DataWorks. Ini akan membuat tabel di mesin MaxCompute lingkungan pengembangan.

    • Komit tabel ke lingkungan produksi DataWorks. Ini akan membuat tabel di mesin MaxCompute lingkungan produksi.

      Catatan
      • Jika Anda menggunakan ruang kerja dalam mode dasar, Anda hanya perlu menerapkan tabel ke lingkungan produksi. Untuk informasi selengkapnya mengenai perbedaan antara ruang kerja dalam mode dasar dan mode standar, lihat Perbedaan antara mode ruang kerja.

      • Untuk informasi lebih lanjut tentang hubungan antara DataWorks dan MaxCompute serta mesin komputasi yang sesuai, lihat Catatan penggunaan DataWorks On MaxCompute.

Tabel dwd_log_info_di_odps

Klik ganda tabel dwd_log_info_di_odps. Di halaman pengeditan yang terbuka, klik DDL dan masukkan pernyataan berikut.

CREATE TABLE IF NOT EXISTS dwd_log_info_di_odps (
 ip STRING COMMENT 'IP address',
 uid STRING COMMENT 'User ID',
 time STRING COMMENT 'Time in the yyyymmddhh:mi:ss format',
 status STRING COMMENT 'Status code returned by the server',
 bytes STRING COMMENT 'Number of bytes returned to the client',
 region STRING COMMENT 'Region, obtained from the IP address',
 method STRING COMMENT 'HTTP request type',
 url STRING COMMENT 'URL',
 protocol STRING COMMENT 'HTTP protocol version',
 referer STRING COMMENT 'Source URL',
 device STRING COMMENT 'Device type',
 identity STRING COMMENT 'Access type: crawler, feed, user, or unknown'
)
PARTITIONED BY (
 dt STRING
)
LIFECYCLE 14;

Tabel dws_user_info_all_di_odps

Klik ganda tabel dws_user_info_all_di_odps. Di halaman pengeditan yang terbuka, klik DDL dan masukkan pernyataan berikut.

CREATE TABLE IF NOT EXISTS dws_user_info_all_di_odps (
 uid STRING COMMENT 'User ID',
 gender STRING COMMENT 'Gender',
 age_range STRING COMMENT 'Age range',
 zodiac STRING COMMENT 'Zodiac sign',
 region STRING COMMENT 'Region, obtained from the IP address',
 device STRING COMMENT 'Device type',
 identity STRING COMMENT 'Access type: crawler, feed, user, or unknown',
 method STRING COMMENT 'HTTP request type',
 url STRING COMMENT 'URL',
 referer STRING COMMENT 'Source URL',
 time STRING COMMENT 'Time in the yyyymmddhh:mi:ss format'
)
PARTITIONED BY (
 dt STRING
)
LIFECYCLE 14;

Tabel ads_user_info_1d_odps

Klik ganda tabel ads_user_info_1d_odps. Di halaman pengeditan yang terbuka, klik DDL dan masukkan pernyataan berikut.

CREATE TABLE IF NOT EXISTS ads_user_info_1d_odps (
 uid STRING COMMENT 'User ID',
 region STRING COMMENT 'Region, obtained from the IP address',
 device STRING COMMENT 'Device type',
 pv BIGINT COMMENT 'Jumlah tampilan halaman (PVs)',
 gender STRING COMMENT 'Gender',
 age_range STRING COMMENT 'Age range',
 zodiac STRING COMMENT 'Zodiac sign'
)
PARTITIONED BY (
 dt STRING
)
LIFECYCLE 14;    

Buat fungsi (getregion)

Berdasarkan struktur data log eksperimen yang telah disinkronkan, Anda perlu mengurai data ke dalam tabel menggunakan alat seperti fungsi. Tutorial ini menyediakan sumber daya yang diperlukan untuk fungsi yang mengubah alamat IP menjadi wilayah. Anda hanya perlu mengunduh sumber daya ini ke komputer lokal dan mengunggahnya ke ruang kerja DataWorks sebelum mendaftarkan fungsi tersebut.

Penting

Fungsi ini dan contoh sumber daya IP-nya hanya untuk tujuan tutorial. Untuk memetakan alamat IP ke lokasi geografis di lingkungan produksi, Anda harus menggunakan layanan geolokasi IP profesional.

  1. Unggah sumber daya (ip2region.jar).

    1. Unduh file ip2region.jar.

      Catatan

      Sumber daya contoh ip2region.jar hanya untuk tujuan tutorial.

    2. Di halaman DataStudio, buka alur kerja WorkShop. Klik kanan MaxCompute dan pilih Create Resource > JAR.

    3. Klik Upload, pilih file ip2region.jar yang telah diunduh, lalu klik Open.

      Catatan
      • Pilih Upload to ODPS.

      • Nama sumber daya tidak harus sama dengan nama file yang diunggah.

    4. Klik ikon image.png di bilah alat untuk mengirimkan sumber daya ke proyek MaxCompute di lingkungan pengembangan.

  2. Daftarkan fungsi (getregion).

    1. Buka halaman pendaftaran fungsi.

      Di halaman DataStudio, buka alur kerja, klik kanan MaxCompute, lalu pilih Create Function.

    2. Masukkan nama fungsi.

      Di kotak dialog Create Function, masukkan getregion untuk Function Name dan klik Create.

    3. Di kotak dialog Register Function, konfigurasikan parameter.

      Parameter

      Deskripsi

      Function Type

      Pilih jenis fungsi.

      MaxCompute Engine Instance

      Parameter ini hanya bisa dibaca.

      Function Name

      Menampilkan nama fungsi yang telah Anda masukkan.

      Owner

      Pilih pemilik.

      Class Name

      Masukkan org.alidata.odps.udf.Ip2Region.

      Resources

      Masukkan ip2region.jar.

      Description

      Masukkan “Mengonversi alamat IP menjadi wilayah.”

      Expression Syntax

      Masukkan getregion('ip').

      Parameter Description

      Masukkan "IP address."

    4. Klik ikon image.png untuk menyerahkan fungsi ke Mesin komputasi di lingkungan pengembangan.

Konfigurasikan node pemrosesan data MaxCompute

Dalam kasus ini, logika pemrosesan untuk setiap lapisan diimplementasikan menggunakan ODPS SQL terjadwal. Karena terdapat dependensi alur data yang kuat antara node tiap lapisan dan tabel output dari tugas sinkronisasi telah ditambahkan secara manual sebagai node outputs selama fase sinkronisasi data, dependensi untuk tugas pemrosesan data dikonfigurasi secara otomatis oleh mekanisme penguraian otomatis DataWorks berdasarkan alur data.

Node dwd_log_info_di_odps

Di kanvas alur kerja, klik ganda node dwd_log_info_di_odps. Gunakan fungsi yang telah Anda buat untuk menulis kode SQL yang memproses bidang dari tabel leluhur ods_raw_log_d_odps dan menulis output ke tabel dwd_log_info_di_odps. Untuk contoh pemrosesan data, lihat Lampiran: Contoh pemrosesan data.

  1. Edit kode.

    -- Skenario: Pernyataan SQL ini menggunakan fungsi getregion untuk mengurai alamat IP dalam data log mentah. Fungsi ini juga menggunakan ekspresi reguler dan metode lain untuk memisahkan data mentah menjadi bidang-bidang yang dapat dianalisis dan menuliskannya ke tabel dwd_log_info_di_odps.
    --      Tutorial ini menyediakan fungsi getregion, yang mengonversi alamat IP menjadi wilayah.
    -- Catatan:
    --     1. Sebelum Anda dapat menggunakan fungsi di node DataWorks, Anda harus mengunggah sumber daya yang diperlukan ke DataWorks lalu mendaftarkan fungsi tersebut melalui UI menggunakan sumber daya tersebut.
    --        Sumber daya yang digunakan untuk mendaftarkan fungsi getregion dalam tutorial ini adalah ip2region.jar.
    --     2. DataWorks menyediakan parameter penjadwalan yang memungkinkan Anda menulis data inkremental harian ke partisi bisnis yang sesuai di tabel target dalam skenario penjadwalan.
    --        Dalam skenario pengembangan dunia nyata, Anda dapat mendefinisikan variabel kode dalam format ${variable_name}. Di halaman konfigurasi penjadwalan, Anda dapat menetapkan parameter penjadwalan ke variabel ini untuk mengaktifkan penerusan parameter dinamis selama eksekusi terjadwal.
    INSERT OVERWRITE TABLE dwd_log_info_di_odps PARTITION (dt='${bizdate}')
    SELECT ip 
      , uid
      , time
      , status
      , bytes 
      , getregion(ip) AS region -- Gunakan UDF kustom untuk mendapatkan wilayah dari alamat IP.
      , regexp_substr(request, '(^[^ ]+ )') AS method -- Gunakan ekspresi reguler untuk membagi permintaan menjadi tiga bidang.
      , regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') AS url
      , regexp_substr(request, '([^ ]+$)') AS protocol 
      , regexp_extract(referer, '^[^/]+://([^/]+){1}') AS referer -- Gunakan ekspresi reguler untuk mengurai referer dan mendapatkan URL yang lebih akurat.
      , CASE
        WHEN TOLOWER(agent) RLIKE 'android' THEN 'android' -- Dapatkan informasi perangkat dan jenis akses dari agent.
        WHEN TOLOWER(agent) RLIKE 'iphone' THEN 'iphone'
        WHEN TOLOWER(agent) RLIKE 'ipad' THEN 'ipad'
        WHEN TOLOWER(agent) RLIKE 'macintosh' THEN 'macintosh'
        WHEN TOLOWER(agent) RLIKE 'windows phone' THEN 'windows_phone'
        WHEN TOLOWER(agent) RLIKE 'windows' THEN 'windows_pc'
        ELSE 'unknown'
      END AS device
      , CASE
        WHEN TOLOWER(agent) RLIKE '(bot|spider|crawler|slurp)' THEN 'crawler'
        WHEN TOLOWER(agent) RLIKE 'feed'
        OR regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') RLIKE 'feed' THEN 'feed'
        WHEN TOLOWER(agent) NOT RLIKE '(bot|spider|crawler|feed|slurp)'
        AND agent RLIKE '^[Mozilla|Opera]'
        AND regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') NOT RLIKE 'feed' THEN 'user'
        ELSE 'unknown'
      END AS identity
      FROM (
        SELECT SPLIT(col, '##@@')[0] AS ip
        , SPLIT(col, '##@@')[1] AS uid
        , SPLIT(col, '##@@')[2] AS time
        , SPLIT(col, '##@@')[3] AS request
        , SPLIT(col, '##@@')[4] AS status
        , SPLIT(col, '##@@')[5] AS bytes
        , SPLIT(col, '##@@')[6] AS referer
        , SPLIT(col, '##@@')[7] AS agent
      FROM ods_raw_log_d_odps  
      WHERE dt ='${bizdate}'
    ) a;
  2. Konfigurasikan properti penjadwalan.

    Di halaman konfigurasi, klik Scheduling Properties di sebelah kanan untuk membuka panel Scheduling Settings, tempat Anda dapat mengonfigurasi penjadwalan dan informasi node. Untuk informasi lebih lanjut, lihat Properti Penjadwalan Node. Parameter berikut dapat dikonfigurasi:

    Parameter

    Pengaturan

    Ilustrasi

    Scheduling Parameter

    Di bagian Scheduling Parameter, konfigurasikan parameter berikut:

    • Parameter name: bizdate

    • Parameter Value: $[yyyymmdd-1]

    Panel parameter penjadwalan menunjukkan bahwa parameter bizdate memiliki nilai $[yyyymmdd-1] dan sumbernya adalah Parse from Code. Terdapat tombol Preview scheduling parameter di bagian bawah.

    Schedule

    • Scheduling period: Day.

    • Scheduling Time: 00:30.

    • RUN Attribute: Mengizinkan tugas dijalankan ulang terlepas dari keberhasilan atau kegagalannya sebelumnya.

    Gunakan nilai default untuk parameter lainnya.

    Catatan

    Node hanya berjalan setelah pukul 00:30 setiap hari.

    Di panel Properti Waktu, metode pembuatan Instans adalah T+1 (pembuatan hari berikutnya), jenis penjadwalan adalah Penjadwalan Normal, siklus penjadwalan adalah Harian, waktu terjadwal diatur ke 00:30, properti jalankan ulang adalah Dapat dijalankan ulang saat berhasil atau gagal, dan tanggal efektif adalah Efektif Permanen.

    Resource Group

    Pilih kelompok sumber daya arsitektur tanpa server yang telah Anda buat pada langkah Persiapkan lingkungan.

    Di panel properti sumber daya, kelompok sumber daya penjadwalan diatur ke User_portraits (gunakan nama aktual kelompok sumber daya arsitektur tanpa server Anda).

    Dependencies

    Fitur Code Auto-parsing secara otomatis menetapkan node ods_raw_log_d_odps yang menghasilkan tabel ods_raw_log_d_odps sebagai dependensi hulu dari node saat ini dwd_log_info_di_odps. Tetapkan tabel dwd_log_info_di_odps sebagai output node agar pekerjaan hilir yang mengkueri tabel ini secara otomatis bergantung pada node saat ini.

    Di panel Dependensi, Auto-parse dependencies before commit diaktifkan. Node leluhur dikonfigurasi secara otomatis sebagai ods_raw_log_d_odps menggunakan Parse from code. Output node saat ini dapat berasal dari default sistem, penambahan manual, atau penguraian kode.

    Catatan

    Dependensi node leluhur: Klik Parse from code. Sistem mengurai nama tabel dari kode dan menggunakan nama output node leluhur yang sesuai, diformat sebagai Production_MaxCompute_Project_Name.TableName, sebagai Output Name of Ancestor Node.

    Output node saat ini: Klik Parse from code. Sistem mengurai nama tabel dari kode untuk menghasilkan nama output untuk node saat ini, diformat sebagai Production_MaxCompute_Project_Name.TableName. Output ini kemudian tersedia untuk node hilir.

  3. Konfigurasikan pengaturan lain yang diperlukan, lalu klik ikon image.png Simpan di bilah alat editor node.

Konfigurasikan node dws_user_info_all_di_odps

Di kanvas alur kerja, klik ganda node dws_user_info_all_di_odps. Tulis kode SQL untuk menggabungkan tabel leluhur dwd_log_info_di_odps dan ods_user_info_d_odps dan menulis hasilnya ke tabel dws_user_info_all_di_odps.

  1. Edit kode.

    -- Skenario: Pernyataan SQL ini mengagregasikan data log yang telah diproses dari dwd_log_info_di_odps dan informasi pengguna dasar dari ods_user_info_d_odps, lalu menulis hasilnya ke tabel dws_user_info_all_di_odps.
    -- Catatan: DataWorks menyediakan parameter penjadwalan yang memungkinkan Anda menulis data inkremental harian ke partisi bisnis yang sesuai di tabel target dalam skenario penjadwalan.
    --      Dalam skenario pengembangan dunia nyata, Anda dapat mendefinisikan variabel kode dalam format ${variable_name}. Di halaman konfigurasi penjadwalan, Anda dapat menetapkan parameter penjadwalan ke variabel ini untuk mengaktifkan penerusan parameter dinamis selama eksekusi terjadwal.
    INSERT OVERWRITE TABLE dws_user_info_all_di_odps  PARTITION (dt='${bizdate}')
    SELECT COALESCE(a.uid, b.uid) AS uid
      , b.gender
      , b.age_range
      , b.zodiac
      , a.region
      , a.device
      , a.identity
      , a.method
      , a.url
      , a.referer
      , a.time
    FROM (
      SELECT *
      FROM dwd_log_info_di_odps  
      WHERE dt = '${bizdate}'
    ) a
    LEFT OUTER JOIN (
      SELECT *
      FROM ods_user_info_d_odps 
      WHERE dt = '${bizdate}'
    ) b
    ON a.uid = b.uid;
  2. Konfigurasikan properti penjadwalan.

    Di halaman konfigurasi, klik Scheduling Properties di sebelah kanan untuk membuka panel Scheduling Settings dan konfigurasikan penjadwalan serta informasi node. Untuk informasi lebih lanjut, lihat Properti penjadwalan node. Item konfigurasi adalah sebagai berikut:

    Parameter

    Pengaturan

    Ilustrasi

    Scheduling Parameter

    Di bagian Scheduling Parameter, konfigurasikan parameter berikut:

    • Parameter name: bizdate

    • Parameter Value: $[yyyymmdd-1]

    Panel parameter penjadwalan menunjukkan bahwa parameter bizdate memiliki nilai $[yyyymmdd-1] dan sumbernya adalah Parse from Code. Terdapat tombol Preview scheduling parameter di bagian bawah.

    Schedule

    • Scheduling period: Day.

    • Scheduling Time: 00:30.

    • RUN Attribute: Mengizinkan tugas dijalankan ulang terlepas dari keberhasilan atau kegagalannya sebelumnya.

    Gunakan nilai default untuk parameter lainnya.

    Catatan

    Node hanya berjalan setelah pukul 00:30 setiap hari.

    Di panel properti Waktu, Instance Generation diatur ke Generate next day (T+1), Jenis Penjadwalan adalah Normal, Siklus Penjadwalan adalah Day, Waktu Terjadwal diatur ke 00:30, Kebijakan Jalankan Ulang adalah Rerun on success or failure, dan Tanggal Efektif adalah Permanent.

    Resource Group

    Pilih kelompok sumber daya arsitektur tanpa server yang telah Anda buat pada langkah Persiapkan lingkungan.

    Di panel properti sumber daya, kelompok sumber daya penjadwalan diatur ke User_portraits (gunakan nama aktual kelompok sumber daya arsitektur tanpa server Anda).

    Dependencies

    Sistem secara otomatis mengurai kode dan menetapkan node dwd_log_info_di_odps dan ods_user_info_d_odps yang menghasilkan tabel dwd_log_info_di_odps dan ods_user_info_d_odps sebagai dependensi hulu untuk node saat ini dws_user_info_all_di_odps. Sistem juga mendaftarkan tabel output node dws_user_info_all_di_odps sebagai output node, yang memungkinkan kueri hilir pada tabel ini secara otomatis membuat dependensi pada node saat ini.

    Konfigurasi sama seperti untuk node dwd_log_info_di_odps. Node leluhur dikonfigurasi secara otomatis sebagai ods_user_info_d_odps dan dwd_log_info_di_odps dengan mengurai kode. Output node saat ini mencakup dws_user_info_all_di_odps.

    Catatan

    Dependensi node leluhur: Klik Parse from code. Sistem mengurai nama tabel dari kode dan menggunakan nama output node leluhur yang sesuai, diformat sebagai Production_MaxCompute_Project_Name.TableName, sebagai Output Name of Ancestor Node.

    Output node saat ini: Klik Parse from code. Sistem mengurai nama tabel dari kode untuk menghasilkan nama output untuk node saat ini, diformat sebagai Production_MaxCompute_Project_Name.TableName. Output ini kemudian tersedia untuk node hilir.

  3. Konfigurasikan pengaturan lain yang diperlukan, lalu klik ikon image.png Simpan di bilah alat editor node.

Konfigurasikan node ads_user_info_1d_odps

Di kanvas alur kerja, klik ganda node ads_user_info_1d_odps. Tulis kode SQL untuk memproses tabel leluhur dws_user_info_all_di_odps dan menulis hasilnya ke tabel ads_user_info_1d_odps.

  1. Edit kode.

    -- Skenario: Pernyataan SQL ini memproses lebih lanjut tabel lebar dws_user_info_all_di_odps yang berisi informasi akses pengguna untuk menghasilkan data profil pengguna dasar dan menulis hasilnya ke tabel ads_user_info_1d_odps.
    -- Catatan: DataWorks menyediakan parameter penjadwalan yang memungkinkan Anda menulis data inkremental harian ke partisi bisnis yang sesuai di tabel target dalam skenario penjadwalan.
    --      Dalam skenario pengembangan dunia nyata, Anda dapat mendefinisikan variabel kode dalam format ${variable_name}. Di halaman konfigurasi penjadwalan, Anda dapat menetapkan parameter penjadwalan ke variabel ini untuk mengaktifkan penerusan parameter dinamis selama eksekusi terjadwal.
    INSERT OVERWRITE TABLE ads_user_info_1d_odps  PARTITION (dt='${bizdate}')
    SELECT uid
      , MAX(region)
      , MAX(device)
      , COUNT(0) AS pv
      , MAX(gender)
      , MAX(age_range)
      , MAX(zodiac)
    FROM dws_user_info_all_di_odps 
    WHERE dt = '${bizdate}'
    GROUP BY uid; 
  2. Konfigurasikan properti penjadwalan.

    Di halaman konfigurasi, klik scheduling properties di sebelah kanan untuk membuka panel Scheduling Settings, tempat Anda dapat mengonfigurasi penjadwalan dan informasi node. Untuk informasi lebih lanjut, lihat Properti penjadwalan node. Konfigurasi adalah sebagai berikut:

    Parameter

    Pengaturan

    Ilustrasi

    Scheduling Parameter

    Di bagian Scheduling Parameter, konfigurasikan parameter berikut:

    • Parameter name: bizdate

    • Parameter Value: $[yyyymmdd-1]

    Panel parameter penjadwalan menunjukkan bahwa parameter bizdate memiliki nilai $[yyyymmdd-1] dan sumbernya adalah Parse from Code. Terdapat tombol Preview scheduling parameter di bagian bawah.

    Schedule

    • Scheduling period: Day.

    • Scheduling Time: 00:30.

    • RUN Attribute: Mengizinkan tugas dijalankan ulang terlepas dari keberhasilan atau kegagalannya sebelumnya.

    Gunakan nilai default untuk parameter lainnya.

    Catatan

    Node hanya berjalan setelah pukul 00:30 setiap hari.

    Di panel properti Waktu, Instance Generation diatur ke Generate next day (T+1), Jenis Penjadwalan adalah Normal, Siklus Penjadwalan adalah Day, Waktu Terjadwal diatur ke 00:30, Kebijakan Jalankan Ulang adalah Rerun on success or failure, dan Tanggal Efektif adalah Permanent.

    Resource Group

    Pilih kelompok sumber daya arsitektur tanpa server yang telah Anda buat pada langkah Persiapkan lingkungan.

    Di panel properti sumber daya, kelompok sumber daya penjadwalan diatur ke User_portraits (gunakan nama aktual kelompok sumber daya arsitektur tanpa server Anda).

    Dependencies

    Fitur Auto-Parse Code secara otomatis mengonfigurasi dependensi node berdasarkan alur data. Fitur ini menetapkan node dws_user_info_all_1d_odps, yang menghasilkan tabel dws_user_info_all_1d_odps, sebagai dependensi hulu untuk node ads_user_info_1d_odps saat ini. Output node diatur ke tabel ads_user_info_1d sehingga kueri hilir ke tabel ini secara otomatis membuat dependensi pada node saat ini.

    Konfigurasi sama seperti untuk node sebelumnya. Node leluhur dikonfigurasi secara otomatis sebagai dws_user_info_all_di_odps dengan mengurai kode. Output node saat ini mencakup ads_user_info_1d_odps.

    Catatan

    Dependensi node leluhur: Klik Parse from code. Sistem mengurai nama tabel dari kode dan menggunakan nama output node leluhur yang sesuai, diformat sebagai Production_MaxCompute_Project_Name.TableName, sebagai Output Name of Ancestor Node.

    Output node saat ini: Klik Parse from code. Sistem mengurai nama tabel dari kode untuk menghasilkan nama output untuk node saat ini, diformat sebagai Production_MaxCompute_Project_Name.TableName. Output ini kemudian tersedia untuk node hilir.

  3. Konfigurasikan pengaturan lain yang diperlukan, lalu klik ikon image.png Simpan di bilah alat editor node.

III. Jalankan alur kerja

Jalankan alur kerja

  1. Di halaman DataStudio, klik ganda alur kerja User profile analysis_MaxCompute di bawah Workflow. Setelah panel alur kerja terbuka, klik ikon image di bilah alat untuk menjalankan alur kerja.

    Setelah Anda menjalankan alur kerja, node-node di panel akan berjalan secara berurutan. Ikon sukses berwarna hijau akan muncul di samping setiap node saat selesai.

  2. Konfirmasi status eksekusi:

    • Lihat status eksekusi tugas: Node dalam keadaan image.png menunjukkan bahwa tugas berhasil dijalankan.

    • Lihat log eksekusi tugas: Klik kanan node dan pilih View Logs untuk melihat log-nya di lingkungan pengembangan.

Verifikasi hasil

Saat semua tugas berada dalam keadaan image.png Succeeded, kueri tabel hasil akhir.

  1. Di panel navigasi kiri halaman DataStudio, klik image.png untuk membuka panel Ad Hoc Query.

  2. Klik kanan Ad Hoc Query dan pilih Create Node > ODPS SQL.

    Di node ODPS SQL, jalankan pernyataan SQL berikut untuk memverifikasi tabel hasil akhir.

    // Anda harus memperbarui filter partisi ke waktu data aktual Anda. Misalnya, jika tugas dijalankan pada 20230222, waktu data adalah 20230221, yaitu sehari sebelum tanggal eksekusi tugas.
    select count(*) from ads_user_info_1d_odps where dt='<your_data_timestamp>';</your_data_timestamp>
    Catatan

    Tugas dalam tutorial ini dijalankan di DataStudio (lingkungan pengembangan). Oleh karena itu, data output secara default ditulis ke tabel yang ditentukan di proyek MaxCompute workshop2024_01_dev, yang terkait dengan lingkungan pengembangan.

IV. Terapkan alur kerja

Anda harus menerapkan tugas ke lingkungan produksi agar dapat dijadwalkan untuk berjalan secara otomatis.

Komit ke lingkungan pengembangan

Pada bilah alat kanvas alur kerja, klik ikon image Commit untuk melakukan commit terhadap semua tugas dalam alur kerja. Konfigurasikan pengaturan seperti yang dijelaskan di bawah ini, lalu klik Confirm.

Di kotak dialog Commit, pilih semua node (workshop_start_odps, ods_raw_log_d_odps, ods_user_info_d_odps, dwd_log_info_di_odps, dan dws_user_info_all_di_odps), masukkan Change description (misalnya, "User profile analysis for MaxCompute"), centang kotak Ignore warnings for inconsistent shelved outputs, lalu klik Confirm.

Terapkan ke lingkungan produksi

Setelah Anda men-commit Alur kerja, tugas tersebut akan tersedia di lingkungan pengembangan. Karena tugas di lingkungan pengembangan tidak dijadwalkan secara otomatis, Anda harus men-deploy-nya ke lingkungan produksi.

  1. Di kanvas alur kerja, klik ikon image.png Deploy di bilah alat, atau di halaman DataStudio, klik tombol Deploy untuk membuka halaman Create Deploy Task.

  2. Terapkan tugas secara batch, bersama dengan sumber daya dan fungsi terkait.

    Di halaman Create Deploy Task, pilih User Profile Analysis_MaxCompute untuk bidang Workflow. Daftar menampilkan semua item untuk penerapan, termasuk node ODPS SQL, node sinkronisasi offline, node virtual workshop_start_odps, fungsi getregion, dan sumber daya ip2region.jar. Pastikan statusnya adalah Check Passed. Pilih semua item, lalu klik Deploy Selected Items.

Langkah 5: O&M dan penjadwalan

Di lingkungan produksi, Anda dapat melakukan pengisian ulang data untuk memproses ulang data historis. Tutorial ini menggunakan pengisian ulang data untuk menunjukkan O&M dan penjadwalan. Untuk kemampuan O&M lainnya, lihat Pusat Operasi.

  1. Buka Pusat Operasi.

    Setelah tugas diterapkan, klik Operation Center di pojok kanan atas.

    Atau, di editor alur kerja, klik Go to O&M di bilah alat untuk membuka halaman Operation Center.

  2. Lakukan pengisian ulang data untuk tugas terjadwal.

    1. Di panel navigasi kiri, klik Auto Triggered Task O&M > Auto Triggered Task. Di halaman Auto Triggered Task, klik node root workshop_start_odps.

    2. Klik kanan node workshop_start_odps dan pilih Backfill Data > Current and Descendant Nodes Retroactively.

    3. Pilih semua node hilir dari node workshop_start_odps, masukkan tanggal bisnis, lalu klik Determine. Anda kemudian akan diarahkan ke halaman Backfill Data.

      Di tampilan DAG untuk tugas terjadwal di Pusat Operasi, mengklik kanan node workshop_start_odps membuka menu konteks dengan opsi O&M seperti Expand Child Nodes (untuk melihat node hilir berdasarkan lapisan), View Run Log, Rerun, dan Rerun Downstream.

  3. Klik Refresh hingga semua tugas SQL berhasil dijalankan.

Catatan

Untuk menghindari biaya berkelanjutan setelah menyelesaikan tutorial ini, Anda dapat menetapkan Validity Period untuk node atau Freeze node root Alur kerja (node virtual workshop_start_odps).

Langkah selanjutnya

Penerapan tugas menyelesaikan alur kerja. Anda kemudian dapat melihat tabel data, mengonsumsi data darinya, dan mengonfigurasi pemantauan kualitas data. Untuk informasi lebih lanjut, lihat Kelola data, Layanan data API, visualisasi data, dan Pantau kualitas data.

Contoh pemrosesan data

  • Sebelum diproses

    58.246.10.82##@@2d24d94f14784##@@2014-02-12 13:12:25##@@GET /wp-content/themes/inove/img/feeds.gif HTTP/1.1##@@200##@@2572##@@http://coolshell.cn/articles/10975.html##@@Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36
  • Setelah diproses

    Entri yang telah diproses diurai sebagai berikut: time adalah 2014-02-12 13:12:25, status adalah 200, bytes adalah 2572, region adalah China (Shanghai) (dikonversi dari alamat IP menggunakan fungsi getregion), method adalah GET, protocol adalah HTTP/1.1, referer adalah coolshell.cn, device adalah windows_pc, dan identity adalah feed.