All Products
Search
Document Center

Platform For AI:Time window SQL

Last Updated:Apr 01, 2026

Pengisian ulang data historis umumnya memerlukan loop yang menjalankan kueri SQL yang sama untuk setiap hari, sehingga menambahkan logika orkestrasi ke setiap pipeline. Time Window SQL menghilangkan kebutuhan akan loop tersebut: komponen ini menjalankan kueri SQL yang sama terhadap setiap hari dalam rentang tanggal tertentu secara paralel, dengan secara otomatis membuat satu subtugas per tanggal. Kasus penggunaan umumnya adalah mengekstraksi data fitur harian dari tujuh hari terakhir untuk melakukan pengisian ulang pada mesin rekomendasi.

Cara kerja

Saat Anda menjalankan pipeline dengan Time Window SQL, komponen ini membuat satu subtugas per tanggal dalam jendela waktu eksekusi. Setiap subtugas menerima skrip SQL yang sama, tetapi variabel sistem ${pai.system.cycledate} diselesaikan menjadi data date yang berbeda untuk setiap subtugas—yaitu tanggal data yang diproses oleh subtugas tersebut, bukan waktu saat subtugas dijalankan.

Sebagai contoh, dengan Business base date 20230210 dan Execution time window (-4,-2],0, tiga subtugas dijalankan secara paralel:

Subtask${pai.system.cycledate} (dengan format yyyyMMdd)Data yang diproses
1202302077 Feb 2023
2202302088 Feb 2023
32023021010 Feb 2023

Tanggal 9 Februari (offset -1) tidak termasuk karena jendela (-4,-2] mencakup offset -4 hingga -2 (inklusif di sisi kanan), dan 0 menambahkan tanggal dasar itu sendiri.

Batasan

  • Eksekusi multi-date loop hanya mendukung pengisian ulang data tingkat hari. Interval yang lebih detail (per jam, per minggu) tidak didukung.

  • Sebelum menggunakan Periodic Scheduling untuk menjadwalkan pipeline Anda di lingkungan produksi, nonaktifkan eksekusi multi-date loop. Jika dibiarkan aktif, komponen akan menghasilkan subtugas pengisian ulang tambahan pada setiap eksekusi terjadwal.

  • Pengaturan Maximum number of concurrent pada tab Parameters Setting hanya berlaku untuk node tempat pengaturan tersebut dikonfigurasi. Jika pipeline Anda memiliki beberapa node Time Window SQL, pertimbangkan total konkurensi yang didukung oleh sumber daya Proyek Anda.

Catatan penggunaan

Time Window SQL menerima hingga empat input dan menghasilkan satu output. Perhatikan hal-hal berikut.

Variabel input dan output

Saat Anda menghubungkan komponen hulu ke Time Window SQL, port input yang Anda pilih menentukan nama variabel yang dipetakan ke tabel input tersebut. Rujuk tabel input dalam skrip SQL Anda menggunakan ${t1}, ${t2}, ${t3}, dan ${t4}. Rujuk tabel output menggunakan ${o1}.

Variabel lifecycle

Gunakan ${lifecycle} dalam skrip SQL Anda untuk mendapatkan pengaturan siklus hidup tabel temporary di ruang kerja. Nilai default-nya adalah 28 hari. Untuk mengubah nilai ini, lihat Manage workspaces.

Konfigurasi komponen di Machine Learning Designer

Buka pipeline Anda di Machine Learning Designer dan konfigurasikan parameter berikut.

ParameterDeskripsi
Business base dateTanggal acuan untuk jendela waktu. Masukkan tanggal secara langsung (misalnya, 20230210) atau rujuk variabel global. Lihat Global variable.
Whether to open multi-date loop executionDiaktifkan secara default. Saat dinonaktifkan, komponen berperilaku sama seperti komponen SQL script dan menjalankan satu eksekusi SQL.
Execution time windowMenentukan tanggal-tanggal yang akan diproses, dinyatakan sebagai offset relatif terhadap Business base date. Menerima bilangan bulat dan interval setengah terbuka, dipisahkan koma. Sistem menghasilkan satu subtugas per tanggal. Maksimal 100 subtugas dapat dijalankan per eksekusi pipeline. Lihat Sintaks jendela waktu di bawah.
Maximum number of concurrentJumlah maksimum subtugas yang dijalankan secara bersamaan. Pertahankan nilai ini rendah untuk menghindari konflik sumber daya.
Date formatMengontrol format ${pai.system.cycledate}. Opsi: yyyyMMdd (default), yyyy-MM-dd, yyyy/MM/dd.
Whether the system adds a create table statementSaat diaktifkan, pernyataan terakhir dalam skrip SQL Anda harus berupa pernyataan SELECT. Sistem secara otomatis membuat tabel temporary untuk menyimpan hasilnya. Saat dinonaktifkan, buat tabel output ${o1} secara eksplisit dalam SQL Anda.
SQL ScriptKueri SQL yang dijalankan untuk setiap tanggal. Gunakan ${pai.system.cycledate} di tempat Anda membutuhkan tanggal data. Variabel lain (${t1}${t4}, ${o1}, ${lifecycle}) juga tersedia.

Sintaks jendela waktu

Nilai Execution time window adalah daftar offset dan interval setengah terbuka yang dipisahkan koma, relatif terhadap tanggal dasar bisnis. Bilangan bulat positif merupakan offset masa depan; bilangan bulat negatif merupakan offset masa lalu.

SintaksMaknaTanggal yang dihasilkan (tanggal dasar: 20230210)
(-4,-2],0Tiga hingga dua hari lalu, ditambah tanggal dasar20230207, 20230208, 20230210

Referensi kurung:

  • [ / ] — batas inklusif

  • ( / ) — batas eksklusif

Contoh skrip SQL

Dengan Business base date 20230210, Execution time window (-4,-2],0, dan Date format yyyy-MM-dd, skrip SQL berikut dijalankan tiga kali:

SELECT * FROM ${t1} WHERE dt = ${pai.system.cycledate}

Ketiga subtugas mengeksekusi:

-- Subtask 1
SELECT * FROM ${t1} WHERE dt = 2023-02-07

-- Subtask 2
SELECT * FROM ${t1} WHERE dt = 2023-02-08

-- Subtask 3
SELECT * FROM ${t1} WHERE dt = 2023-02-10
Tip: Untuk memvalidasi konfigurasi jendela waktu Anda sebelum menjalankan penuh, atur Execution time window ke 0 (hanya tanggal dasar). Ini menjalankan satu subtugas sehingga Anda dapat memverifikasi logika SQL dan substitusi variabel tanpa memproses seluruh rentang tanggal.

Langkah selanjutnya