Tutorial: Menulis kueri yang valid ke data metrik orientasi

Penting

Mulai tanggal 20 September 2023, Anda tidak akan dapat membuat sumber daya Metrics Advisor baru. Layanan Metrics Advisor dihentikan pada 1 Oktober 2026.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Cara menulis kueri orientasi data yang valid
  • Kesalahan umum dan cara menghindarinya

Prasyarat

Membuat sumber daya Metrics Advisor

Untuk menjelajahi kemampuan Metrics Advisor, Anda mungkin perlu membuat sumber daya Metrics Advisor di portal Azure untuk menyebarkan instans Metrics Advisor Anda.

Persyaratan skema data

Azure AI Metrics Advisor adalah layanan untuk deteksi anomali rangkaian waktu, diagnostik, dan analisis. Sebagai layanan yang didukung AI, layanan ini menggunakan data Anda untuk melatih model yang digunakan. Layanan ini menerima tabel data agregat dengan kolom berikut:

  • Ukuran (diperlukan): Ukuran adalah istilah fundamental atau unit khusus dan nilai metrik yang dapat diukur. Artinya satu atau beberapa kolom yang berisi nilai numerik.
  • Stempel waktu (opsional): Nol atau satu kolom, dengan jenis DateTime atau String. Jika kolom ini tidak disetel, stempel waktu disetel sebagai waktu mulai setiap periode penyerapan. Format stempel waktu sebagai berikut: yyyy-MM-ddTHH:mm:ssZ.
  • Dimensi (opsional): Dimensi adalah satu atau lebih nilai kategoris. Kombinasi nilai tersebut mengidentifikasi rangkaian waktu univariat tertentu (misalnya, negara/wilayah, bahasa, dan penyewa). Kolom dimensi dapat berupa tipe data apa pun. Berhati-hatilah saat bekerja dengan kolom dan nilai dalam volume besar, untuk mencegah pemrosesan dalam jumlah yang berlebihan.

Jika Anda menggunakan sumber data seperti Azure Data Lake Storage atau Azure Blob Storage, Anda dapat menggabungkan data anda untuk menyelaraskan dengan skema metrik yang Anda harapkan. Ini karena sumber data ini menggunakan file sebagai input metrik.

Jika Anda menggunakan sumber data seperti Azure SQL atau Azure Data Explorer, Anda dapat menggunakan fungsi agregasi untuk menggabungkan data ke dalam skema yang Anda harapkan. Ini karena sumber data ini mendukung menjalankan kueri untuk mendapatkan data metrik dari sumber.

Bagaimana cara kerja penyerapan data di Metrics Advisor?

Saat orientasi metrik Anda ke Metrics Advisor, umumnya ada dua cara:

  • Pra-agregat metrik Anda ke dalam skema yang diharapkan dan menyimpan data ke dalam file tertentu. Isi templat jalur selama orientasi, dan Metrics Advisor akan terus mengambil file baru dari jalur dan melakukan deteksi pada metrik. Ini adalah praktik umum untuk sumber data seperti Azure Data Lake dan Azure Blob Storage.
  • Jika Anda mencerna data dari sumber data seperti Azure SQL Server, Azure Data Explorer, atau sumber lain, yang mendukung penggunaan skrip kueri daripada yang Anda perlukan untuk memastikan Anda menyusun kueri dengan benar. Artikel ini akan mengajari Anda cara menulis kueri yang valid ke data metrik orientasi seperti yang diinginkan.

Apa itu interval?

Metrik perlu dipantau pada granularitas tertentu sesuai dengan persyaratan bisnis. Misalnya, Indikator Kinerja Utama (KPI) bisnis dipantau pada granularitas harian. Namun, metrik kinerja layanan sering dipantau pada granularitas menit/jam. Jadi frekuensi untuk mengumpulkan data metrik dari sumber adalah berbeda-beda.

Metrics Advisor terus mengambil data metrik pada setiap interval waktu, intervalnya sama dengan granuralitas metrik. Setiap kali, Metrics Advisor menjalankan kueri yang Anda tulis menyerap data pada interval khusus ini. Berdasarkan mekanisme penyerapan data ini, skrip kueri tidak boleh mengembalikan semua data metrik yang ada di basis data, tetapi perlu membatasi hasilnya ke satu interval.

Illustration that describes what is an interval

Bagaimana menulis kueri yang valid?

Use @IntervalStart and @IntervalEnd to limit query results

Untuk membantu mencapai hal ini, dua parameter telah diberikan untuk digunakan dalam kueri: @IntervalStart dan @IntervalEnd.

Setiap kali kueri berjalan, @IntervalStart dan @IntervalEnd akan diperbarui secara otomatis ke tanda waktu interval terbaru dan mendapatkan data metrik yang sesuai. @IntervalEnd selalu ditetapkan sebagai @IntervalStart + 1 granularitas.

Berikut adalah contoh penggunaan yang tepat dari kedua parameter ini dengan Azure SQL Server:

SELECT [timestampColumnName] AS timestamp, [dimensionColumnName], [metricColumnName] FROM [sampleTable] WHERE [timestampColumnName] >= @IntervalStart and [timestampColumnName] < @IntervalEnd;

Dengan menulis skrip kueri dengan cara ini, tanda waktu metrik harus jatuh dalam interval yang sama untuk setiap hasil kueri. Metrics Advisor akan secara otomatis menyelaraskan tanda waktu dengan granularitas metrik.

Gunakan fungsi agregasi untuk mengagregasi metrik

Ini adalah kasus yang umum bahwa ada banyak kolom dalam sumber data pelanggan, namun, tidak semuanya masuk akal untuk dipantau atau dimasukkan sebagai dimensi. Pelanggan dapat menggunakan fungsi agregasi untuk mengagregasi metrik dan hanya menyertakan kolom yang bermakna sebagai dimensi.

Di bawah ini adalah contoh di mana ada lebih dari 10 kolom di sumber data pelanggan, tetapi hanya beberapa dari mereka yang bermakna dan perlu dimasukkan dan dikumpulkan ke dalam metrik untuk dipantau.

TS Pasar OS Perangkat Kategori ... Measure1 Measure2 Measure3
2020-09-18T12:23:22Z New York iOS Kacamata hitam ... 43242 322 54546
2020-09-18T12:27:34Z Beijing Android Tas ... 3333 126 67677
...

Jika pelanggan ingin memantau 'Measure1' pada granularitas per jam dan memilih 'Market' dan 'Category' sebagai dimensi, di bawah ini adalah contoh cara menggunakan fungsi agregasi dengan benar untuk mendapatkannya:

  • Sampel SQL:

        SELECT dateadd(hour, datediff(hour, 0, TS),0) as NewTS
        ,Market
        ,Category
        ,sum(Measure1) as M1
        FROM [dbo].[SampleTable] where TS >= @IntervalStart and TS < @IntervalEnd
        group by Market, Category, dateadd(hour, datediff(hour, 0, TS),0)
    
  • Sampel Azure Data Explorer:

        SampleTable
        | where TS >= @IntervalStart and TS < @IntervalEnd
        | summarize M1 = sum(Measure1) by Market, Category, NewTS = startofhour(TS)
    

Catatan

Dalam kasus di atas, pelanggan ingin memantau metrik pada granularitas per jam, tetapi tanda waktu (TS) mentah tidak selaras. Dalam pernyataan agregasi, suatu proses pada tanda waktu diperlukan untuk menyelaraskan pada jam dan menghasilkan kolom tanda waktu baru bernama 'NewTS'.

Kesalahan umum selama orientasi

  • Kesalahan: Beberapa nilai tanda waktu ditemukan dalam hasil kueri

    Ini adalah kesalahan umum, jika Anda belum membatasi hasil kueri dalam satu interval. Misalnya, jika Anda memantau metrik pada granularitas harian, Anda akan mendapatkan kesalahan ini jika kueri Anda menampilkan hasil seperti ini:

    Screenshot that shows multiple timestamp values returned

    Ada beberapa nilai tanda waktu dan nilai tersebut tidak dalam interval metrik yang sama (satu hari). Periksa Bagaimana cara kerja penyerapan data di Metrics Advisor? dan pahami bahwa Metrics Advisor mengambil data metrik pada setiap interval metrik. Kemudian pastikan untuk menggunakan @IntervalStart dan @IntervalEnd dalam kueri Anda untuk membatasi hasil dalam satu interval. Periksa Use @IntervalStart and @IntervalEnd to limit query results untuk panduan dan sampel terperinci.

  • Kesalahan: Nilai metrik duplikat ditemukan pada kombinasi dimensi yang sama dalam satu interval metrik

    Dalam satu interval, Metrics Advisor hanya mengharapkan satu nilai metrik untuk kombinasi dimensi yang sama. Misalnya, jika Anda memantau metrik pada granularitas harian, Anda akan mendapatkan kesalahan ini jika kueri Anda menampilkan hasil seperti ini:

    Screenshot that shows duplicate values returned

    Lihat Menggunakan fungsi agregasi untuk mengagregasi metrik untuk panduan dan contoh terperinci.

Langkah berikutnya

Lanjutkan ke artikel berikutnya untuk mempelajari cara membuatnya.