Ringkasan

Pengantar

Perkiraan dan deteksi anomali lebih dari miliaran deret waktu adalah komputasi yang intensif. Sebagian besar sistem yang ada menjalankan perkiraan dan deteksi anomali sebagai tugas batch (misalnya, pipeline risiko, perkiraan traffic, perencanaan permintaan, dan sebagainya). Hal ini sangat membatasi jenis analisis yang dapat Anda lakukan secara online, seperti menentukan apakah akan mengirim pemberitahuan berdasarkan peningkatan atau penurunan yang tiba-tiba di seluruh kumpulan dimensi peristiwa.

Sasaran utama Timeseries Insights API adalah:

  • Skalakan ke miliaran deret waktu yang dibuat secara dinamis dari peristiwa mentah dan propertinya, berdasarkan parameter kueri.
  • Memberikan hasil perkiraan anomali dan perkiraan real-time. Artinya, dalam beberapa detik, deteksi tren dan tren musiman di semua deret waktu dan tentukan apakah ada bagian yang melonjak atau menurun secara tidak terduga.

Fungsi API

  • Kelola set data
    • Mengindeks dan memuat set data yang terdiri dari beberapa sumber data yang disimpan di Cloud Storage. Izinkan penambahan acara baru secara streaming.
    • Hapus set data yang tidak lagi diperlukan.
    • Menanyakan status pemrosesan set data.
  • Set data kueri
    • Mengambil deret waktu yang cocok dengan nilai properti yang diberikan. Deret waktu diperkirakan hingga jangka waktu yang ditentukan. Deret waktu juga akan dievaluasi untuk menemukan anomali.
    • Deteksi kombinasi nilai properti untuk anomali secara otomatis.
  • Memperbarui set data
    • Menyerap peristiwa baru yang baru-baru ini terjadi dan memasukkannya ke dalam indeks secara hampir real-time (penundaan detik hingga menit).

Pemulihan dari bencana

Timeseries Insights API tidak berfungsi sebagai cadangan untuk Cloud Storage atau menampilkan update streaming mentah. Klien bertanggung jawab untuk menyimpan dan mencadangkan data secara terpisah.

Setelah pemadaman layanan regional, layanan melakukan upaya pemulihan terbaik. Metadata (informasi tentang set data dan status operasional) dan data pengguna yang di-streaming yang diperbarui dalam waktu 24 jam sejak dimulainya pemadaman mungkin tidak dapat dipulihkan.

Selama pemulihan, kueri dan update streaming ke set data mungkin tidak tersedia.

Data input

Data numerik dan kategoris biasanya dikumpulkan dari waktu ke waktu. Misalnya, gambar berikut menunjukkan penggunaan CPU, penggunaan memori, dan status satu tugas yang sedang berjalan di pusat data untuk setiap menit selama jangka waktu tertentu. Penggunaan CPU dan penggunaan memori adalah nilai numerik, dan statusnya adalah nilai kategori.

Deret waktu

Acara

Timeseries Insights API menggunakan peristiwa sebagai entri data dasar. Setiap peristiwa memiliki stempel waktu dan kumpulan dimensi, yaitu pasangan nilai kunci dengan kuncinya adalah nama dimensi. Representasi sederhana ini memungkinkan kita untuk menangani data dalam skala triliunan. Misalnya, pusat data, pengguna, nama pekerjaan, dan nomor tugas disertakan untuk sepenuhnya merepresentasikan satu peristiwa. Gambar di atas menunjukkan serangkaian peristiwa yang direkam untuk satu tugas yang menggambarkan subset dimensi.

{"name":"user","stringVal":"user_64194"},
{"name":"job","stringVal":"job_45835"},
{"name":"data_center","stringVal":"data_center_30389"},
{"name":"task_num","longVal":19},
{"name":"cpu","doubleVal":3840787.5207877564},
{"name":"ram","doubleVal":1067.01},
{"name":"state","stringVal":"idle"}

DataSet

DataSet adalah kumpulan peristiwa. Kueri dilakukan dalam set data yang sama. Setiap project dapat memiliki beberapa {i>dataset<i}.

Set data dibuat dari data batch dan streaming. Build data batch membaca dari beberapa URI Cloud Storage sebagai sumber data. Setelah build batch selesai, set data dapat diperbarui dengan data streaming. Dengan menggunakan build batch untuk data historis, sistem dapat menghindari masalah cold start.

{i>Dataset<i} harus dibangun atau diindeks sebelum dapat dikueri atau diperbarui. Pengindeksan dimulai saat set data dibuat, dan biasanya memerlukan waktu beberapa menit hingga jam untuk diselesaikan, bergantung pada jumlah data. Lebih khusus lagi, sumber data dipindai sekali selama pengindeksan awal. Jika konten URI Cloud Storage berubah setelah pengindeksan awal selesai, konten tersebut tidak akan dipindai lagi. Menggunakan update streaming untuk data tambahan. Update streaming diindeks secara terus-menerus hampir secara real time.

Deteksi deret waktu dan anomali

Irisan

Untuk Timeseries Insights API, slice adalah kumpulan peristiwa dengan kombinasi nilai dimensi tertentu. Kita ingin mengetahui jumlah peristiwa yang termasuk dalam bagian-bagian ini dari waktu ke waktu.

Untuk irisan tertentu, peristiwa digabungkan menjadi nilai numerik per resolusi interval waktu yang ditentukan pengguna, yang merupakan deret waktu untuk mendeteksi anomali. Gambar sebelumnya mengilustrasikan berbagai pilihan slice yang dihasilkan dari berbagai kombinasi dimensi "user", "job", dan "data_center".

Deret waktu dan Anomali

Anomali terjadi untuk bagian tertentu jika nilai numerik dari interval waktu yang diminati berbeda secara signifikan dari nilai di masa lalu. Gambar di atas mengilustrasikan deret waktu berdasarkan suhu yang diukur di seluruh dunia selama 10 tahun. Misalkan kita tertarik pada apakah bulan terakhir untuk tahun 2015 adalah suatu anomali. Kueri untuk sistem menentukan waktu yang diinginkan, detectionTime, menjadi "2015/12/01" dan granularity menjadi "1 bulan". Deret waktu yang diambil sebelum detectionTime akan dipartisi ke dalam periode pelatihan sebelumnya yang diikuti dengan periode holdout. Sistem menggunakan data dari periode pelatihan untuk melatih model, dan menggunakan periode penangguhan untuk memverifikasi bahwa model dapat memprediksi nilai berikutnya dengan andal. Sebagai contoh, periode penahanan adalah 1 tahun. Gambar menunjukkan data aktual dan nilai yang diprediksi dari model dengan batas atas dan bawah. Suhu untuk tahun 2015/12 ditandai sebagai anomali karena nilai sebenarnya berada di luar batas yang diprediksi.

Langkah selanjutnya