Peramalan deret waktu di Snowflake menggunakan SQL
Peramalan permintaan, rantai pasokan & manajemen inventaris, perencanaan keuangan penting untuk operasi bisnis. Modelstar memungkinkan Anda melakukannya di Snowflake, hanya dengan 1 baris SQL.

Apa itu Time Series Forecasting dan kasus penggunaannya?
Time series forecasting adalah teknik untuk memprediksi nilai berdasarkan data sampel waktu historis.
Peramalan belum sempurna untuk manajemen
Peramalan dapat membantu perusahaan membuat keputusan bisnis yang tepat tentang manajemen rantai pasokan, manajemen inventaris (tentang berapa banyak & kapan persediaan ulang), perencanaan keuangan, peta jalan produk, dan strategi perekrutan, dll. Dengan hasil peramalan yang akurat dan tepat waktu, manajemen bisnis dapat memiliki pemahaman yang lebih baik tentang cara mengalokasikan sumber daya atau memanfaatkan angin penarik.
Tantangan teknis untuk peramalan
Peramalan adalah salah satu aplikasi dari analisis deret waktu. Ada beberapa komponen yang perlu diperhatikan:
- Musiman: perubahan berkala dari waktu ke waktu. Contoh: Liburan musim panas dan musim dingin adalah tahunan, atau konsumsi kopi yang lebih tinggi di pagi hari adalah setiap hari.
- Kecenderungan: perubahan non-periodik yang terus menerus. Contoh: Pertumbuhan penjualan perusahaan dalam 5 tahun terakhir.
- Peristiwa yang mengganggu: perubahan mendadak. Ini dapat didorong oleh faktor yang dapat diprediksi, seperti liburan atau pemeliharaan layanan, dan masalah yang tidak dapat diprediksi, seperti kesalahan atau bug acak.
Tantangan teknis implementasi
Python memiliki ekosistem yang kaya untuk mengimplementasikan pembelajaran mesin dan algoritma peramalan. Kemampuan Snowpark Snowflake baru yang membawa Python ke Gudang Data Anda, menggunakan UDF untuk menjalankan Python dalam SQL adalah pengubah permainan pada transformasi yang dapat Anda lakukan pada data Anda. Namun, ini bisa menjadi hal yang menakutkan dan memakan waktu jika Anda ingin menerapkan solusi akhir untuk melakukan peramalan. Modelstar menyelesaikan ini dengan menyediakan solusi yang disederhanakan untuk menghadirkan kekuatan super Python ke SQL.
Modelstar adalah proyek open source dan dibangun di atas fitur yang baru diluncurkan dari Snowflake, seperti Snowpark. Secara otomatis menangani dependensi, artefak model, dan file I/O dalam komputasi Snowflake.
SQL 1-liner untuk peramalan
Modelstar memungkinkan Anda mengirim dan mengelola model perkiraan dan memvisualisasikan hasil pemodelan dengan 1 baris SQL di dalam Snowflake. Di bawah tenda, Modelstar menyediakan algoritme prakiraan pra-bangun, dan memaparkannya sebagai prosedur tersimpan SQL di database Anda. Dalam contoh ini, kita akan menggunakan univariate_time_series_forecast
( API doc ). API ini didasarkan pada pustaka sumber terbuka Nabi , yang merupakan salah satu algoritme peramalan yang paling banyak digunakan di industri.
Tutorial ini memberikan langkah-langkah untuk membangun model peramalan deret waktu dan laporan. Ini mencakup:
- Konsep dasar: tentang kasus penggunaan peramalan penjualan dan teknologi.
- Alat Modelstar CLI: Panduan instalasi Modelstar
univariate_time_series_forecast
Sintaks SQL: SQL 1-liner untuk membuat perkiraan- Laporan peramalan: hasil ramalan siap dikonsumsi oleh tim bisnis

Persiapan untuk perjalanan
Ini adalah panduan memulai cepat untuk menyiapkan Modelstar jika Anda adalah pengguna Modelstar pertama kali.
Langkah #1: Instal Modelstar
$ pip install modelstar
Verifikasi pemasangan dengan pemeriksaan versi cepat:
$ modelstar --version
Langkah #2: Menginisialisasi proyek
$ modelstar init forecast_project
Anda sekarang akan melihat forecast_project
folder yang dibuat di direktori kerja Anda.
Langkah #3: Sesi
Di dalam forecast_project
folder, cari file modelstar.config.yaml
dan buka dengan editor favorit Anda. Tambahkan info dan kredensial akun Snowflake Anda ke sana. Jangan ragu untuk memberi nama sesi dengan nama apa pun. Dalam contoh ini, kami menggunakan snowflake-test
. Kredensial dalam file ini digunakan untuk terhubung ke gudang data Snowflake Anda. (Catatan: Jangan komit file modelstar.config.yaml ke CI/CD Anda, kontrol versi.)
# ./modelstar.config.yaml
# MODELSTAR CONFIGURATION FILE
---
sessions:
- name: snowflake-test
connector: snowflake
config:
account: WQA*****
username: <username>
password: <password>
database: MODELSTAR_TEST
schema: PUBLIC
stage: test
warehouse: COMPUTE_WH
Langkah #4: Ping Kepingan Salju
Kami sekarang dapat memulai sesi Modelstar dari terminal Anda. Di dalam direktori proyek Modelstar yang baru dibuat (dalam contoh kita, ini adalah ./forecast_project/
), jalankan ini:
$ modelstar use snowflake-test
Ping yang berhasil akan menghasilkan sesuatu seperti ini:

Langkah #5: Daftarkan algoritme perkiraan ke Snowflake
Modelstar menyediakan algoritme peramalan di luar kotak dan mengelola dependensi untuk algoritme ini, jadi Anda tidak perlu melakukannya. Untuk membuatnya tersedia di gudang Snowflake Anda, jalankan perintah berikut:
$ modelstar register forecast:univariate_time_series_forecast

Langkah #6: Unggah data sampel penjualan ke Snowflake (opsional, jika Anda menggunakan kumpulan data Anda sendiri ).
Jika Anda ingin mencoba algoritme perkiraan pada sampel kumpulan data penjualan, jalankan perintah ini untuk membuat tabel data di gudang data Anda. Anda dapat melewati langkah ini jika ingin menggunakan data Anda sendiri.
$ modelstar create table sample_data/time_series_data.csv:TS_DATA_TABLE
Bangun model perkiraan menggunakan SQL 1- linear
Jalankan skrip ini di Lembar Kerja
Gunakan perintah berikut di Snowflake untuk membuat model prediksi (contoh di bawah ini menggunakan data sampel yang diunggah di langkah #6):
CALL UNIVARIATE_TIME_SERIES_FORECAST('TS_DATA_TABLE', 'DS', 'Y', 40, 'M');

Untuk menjalankan algoritme peramalan pada data
Di bawah tenda, algoritme perkiraan berjalan di dalam Snowflake sebagai Prosedur Tersimpan. Dibutuhkan parameter berikut:
Untuk mengonfigurasi periode perkiraan Anda sendiri, periksa dokumen API ini untuk daftar lengkap alias unit.
Periksa hasilnya
Setelah pelatihan model selesai, di jendela Hasil Kepingan Salju, proses yang berhasil akan menghasilkan string json yang mirip dengan ini:
{
"return_table": "RESULT_UNIVARIATE_TIME_SERIES_FORECAST",
"run_id": "3NvQXnHQqUdYG4Fu"
}
Periksa tabel
Mari kita periksa tabel hasil dari proses menggunakan:
SELECT * FROM RESULT_UNIVARIATE_TIME_SERIES_FORECAST;
DS
(datetime
): tanggal waktuY_FORECAST
,YHAT_LOWER
,YHAT_UPPER
(float): rata-rata, ikatan bawah dan atas dari nilai prediksi (lihatUncertainty Intervals
di bagian Glosarium untuk artinya).

Laporan yang mencatat informasi tentang proses, dengan artefak pembelajaran mesin dibuat secara otomatis dengan Modelstar. Untuk memeriksa laporan, cukup jalankan perintah ini di komputer lokal Anda:
$ modelstar check <run_id>

Seperti disebutkan, laporan akan muncul di browser Anda:

Apa yang ada di laporan
Laporan ini mencakup 3 bagian:
- Informasi meta dari proses ini
- Grafik peramalan: untuk memeriksa kualitas pemodelan dan hasil perkiraan.
- Analisis komponen: untuk mengilustrasikan tren dan musiman yang telah "dipelajari" oleh model Anda, termasuk tren keseluruhan, dan musiman tahunan dan mingguan (pola siklus selama 1 tahun/minggu).



Prakiraan dalam sampel dan luar sampel: Dari prakiraan dalam sampel, Anda dapat memeriksa seberapa cocok model prakiraan dengan data aktual. Out-of-sample forecast menunjukkan prediksi masa depan.
Interval Ketidakpastian: pita antara batas atas dan bawah. Ini berarti ada kemungkinan 80% bahwa nilai sebenarnya berada dalam interval tersebut. Persyaratan kepastian yang lebih tinggi mengarah ke pita yang lebih luas (lihat artikel Bartosz ). Ketidakpastian juga tumbuh saat kita melangkah lebih jauh ke masa depan, mengarah ke pita yang melebar sebagai fungsi waktu.
Kesimpulan
Peramalan belum sempurna untuk manajemen bisnis. Tujuan kami adalah mengirimkan fungsi Peramalan ke Snowflake untuk melatih model Machine Learning dan membuat prediksi dengan menggunakannya. Kami mencapai semua ini hanya dengan 1 baris SQL. Bersamaan dengan ini, laporan proses yang berisi detail proses beserta analisis perkiraan dihasilkan. Ini dimungkinkan oleh Modelstar .
Lihat repositori GitHub Modelstar : di sini , beri bintang untuk diperbarui pada yang terbaru. Jika ada bug, masalah, atau permintaan fitur untuk kasus penggunaan Anda, hubungi Github atau buka masalah di GitHub .
- Repositori GitHub:https://github.com/modelstar-labs/modelstar
- Dokumentasi:https://modelstar.io/docs/quickstart/