Bagikan melalui


Tutorial: Memvisualisasikan anomali menggunakan deteksi {i>batch

Penting

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

Gunakan tutorial ini untuk menemukan anomali dalam himpunan data rangkaian waktu sebagai batch. Dengan Power BI Desktop, Anda akan mengambil file Excel, menyiapkan data untuk API Anomaly Detector, dan memvisualisasikan anomali statistik di seluruhnya.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Menggunakan Power BI Desktop untuk mengimpor dan mentransformasi himpunan data rangkaian waktu
  • Mengintegrasikan Power BI Desktop dengan API Anomaly Detector untuk mendeteksi anomali batch
  • Memvisualisasikan anomali yang ditemukan dalam data Anda, termasuk nilai yang diharapkan dan dilihat, dan batas deteksi anomali.

Prasyarat

  • Langganan Azure
  • Microsoft Power BI Desktop, tersedia secara gratis.
  • File excel (.xlsx) berisi poin data rangkaian waktu.
  • Setelah Anda memiliki langganan Azure, buat sumber daya Detektor Anomali di portal Azure untuk mendapatkan kunci dan titik akhir Anda.
    • Anda akan memerlukan kunci dan titik akhir dari sumber daya yang Anda buat untuk menghubungkan aplikasi Anda ke Anomaly Detector API. Anda akan melakukan ini nanti di panduan mulai cepat.

Catatan

Untuk hasil terbaik saat menggunakan API Detektor Anomali, data rangkaian waktu berformat JSON Anda harus mencakup:

  • titik data yang dipisahkan oleh interval yang sama, dengan tidak lebih dari 10% dari jumlah titik yang diduga hilang.
  • setidaknya 12 titik data jika data Anda tidak memiliki pola musiman yang jelas.
  • setidaknya 4 kemunculan pola jika data Anda memiliki pola musiman yang jelas.

Memuat dan memformat data rangkaian waktu

Untuk memulai, buka Power BI Desktop dan muat data rangkaian waktu yang Anda unduh dari prasyarat. File excel ini berisi serangkaian tanda waktu dan pasangan nilai Waktu Universal Terkoordinasi (UTC).

Catatan

Power BI dapat menggunakan data dari berbagai sumber, seperti file .csv, database SQL, penyimpanan blob Azure, dan lainnya.

Di jendela utama Power BI Desktop, klik pita Beranda. Di grup Data eksternal pita, buka menu drop-down Dapatkan Data dan pilih Excel.

Gambar tombol

Setelah dialog muncul, arahkan ke folder tempat Anda mengunduh contoh file .xlsx dan pilih file folder tersebut. Setelah dialog Navigator muncul, pilih Lembar1, lalu Edit.

Gambar layar

Power BI akan mengonversi tanda waktu di kolom pertama menjadi jenis data Date/Time. Tanda waktu ini harus dikonversi ke teks agar dapat dikirim ke API Anomaly Detector. Jika editor Power Query tidak terbuka secara otomatis, pilih Edit Kueri pada tab beranda.

Pilih pita Transformasi di Editor Power Query. Di grup Kolom Apa Pun, buka menu drop-down Jenis Data:, dan pilih Teks.

Gambar drop-down jenis data

Saat Anda mendapatkan pemberitahuan tentang mengubah jenis kolom, pilih Ganti Saat Ini. Setelah itu, pilih Tutup & Terapkan atau Terapkan di pita Beranda .

Membuat fungsi untuk mengirim data dan memformat respons

Untuk memformat dan mengirim file data ke API Anomaly Detector, Anda dapat memanggil kueri pada tabel yang dibuat di atas. Di Editor Power Query, dari pita Beranda, buka menu drop-down Sumber Baru dan pilih Kueri Kosong.

Pastikan kueri baru Anda dipilih, lalu pilih Editor Lanjutan.

Gambar layar

Di dalam Editor Lanjutan, gunakan cuplikan Power Query M berikut untuk mengekstrak kolom dari tabel dan mengirimkannya ke API. Setelah itu, kueri akan membuat tabel dari respons JSON, dan mengembalikannya. Ganti variabel apiKey dengan kunci API Anomaly Detector yang valid, dan endpoint dengan titik akhir Anda. Setelah Anda memasukkan kueri ke dalam Editor Lanjutan, pilih Selesai.

(table as table) => let

    apikey      = "[Placeholder: Your Anomaly Detector resource access key]",
    endpoint    = "[Placeholder: Your Anomaly Detector resource endpoint]/anomalydetector/v1.0/timeseries/entire/detect",
    inputTable = Table.TransformColumnTypes(table,{{"Timestamp", type text},{"Value", type number}}),
    jsontext    = Text.FromBinary(Json.FromValue(inputTable)),
    jsonbody    = "{ ""Granularity"": ""daily"", ""Sensitivity"": 95, ""Series"": "& jsontext &" }",
    bytesbody   = Text.ToBinary(jsonbody),
    headers     = [#"Content-Type" = "application/json", #"Ocp-Apim-Subscription-Key" = apikey],
    bytesresp   = Web.Contents(endpoint, [Headers=headers, Content=bytesbody, ManualStatusHandling={400}]),
    jsonresp    = Json.Document(bytesresp),

    respTable = Table.FromColumns({

                     Table.Column(inputTable, "Timestamp")
                     ,Table.Column(inputTable, "Value")
                     , Record.Field(jsonresp, "IsAnomaly") as list
                     , Record.Field(jsonresp, "ExpectedValues") as list
                     , Record.Field(jsonresp, "UpperMargins")as list
                     , Record.Field(jsonresp, "LowerMargins") as list
                     , Record.Field(jsonresp, "IsPositiveAnomaly") as list
                     , Record.Field(jsonresp, "IsNegativeAnomaly") as list

                  }, {"Timestamp", "Value", "IsAnomaly", "ExpectedValues", "UpperMargin", "LowerMargin", "IsPositiveAnomaly", "IsNegativeAnomaly"}
               ),

    respTable1 = Table.AddColumn(respTable , "UpperMargins", (row) => row[ExpectedValues] + row[UpperMargin]),
    respTable2 = Table.AddColumn(respTable1 , "LowerMargins", (row) => row[ExpectedValues] -  row[LowerMargin]),
    respTable3 = Table.RemoveColumns(respTable2, "UpperMargin"),
    respTable4 = Table.RemoveColumns(respTable3, "LowerMargin"),

    results = Table.TransformColumnTypes(

                respTable4,
                {{"Timestamp", type datetime}, {"Value", type number}, {"IsAnomaly", type logical}, {"IsPositiveAnomaly", type logical}, {"IsNegativeAnomaly", type logical},
                 {"ExpectedValues", type number}, {"UpperMargins", type number}, {"LowerMargins", type number}}
              )

 in results

Panggil kueri pada lembar data Anda dengan memilih Sheet1 di bawah Masukkan Parameter, dan pilih Panggil.

Gambar fungsi pemanggilan

Penting

Jangan lupa menghapus kunci dari kode setelah Anda selesai, dan jangan pernah mempostingnya secara publik. Untuk produksi, gunakan cara yang aman untuk menyimpan dan mengakses kredensial Anda seperti Azure Key Vault. Lihat artikel keamanan layanan Azure AI untuk informasi selengkapnya.

Privasi dan autentikasi sumber data

Catatan

Ketahui kebijakan organisasi Anda untuk privasi dan akses data. Lihat Tingkat privasi Power BI Desktop untuk informasi selengkapnya.

Anda mungkin mendapatkan pesan peringatan saat mencoba menjalankan kueri karena kueri tersebut menggunakan sumber data eksternal.

Gambar yang memperlihatkan peringatan yang dibuat oleh Power BI

Untuk memperbaikinya, pilih File, dan Opsi dan pengaturan. Lalu pilih Opsi. Di bawah File Saat Ini, pilih Privasi, dan Abaikan Tingkat Privasi dan tingkatkan performa secara potensial.

Selain itu, Anda mungkin mendapatkan pesan yang meminta Anda untuk menentukan bagaimana Anda ingin terhubung ke API.

Gambar yang memperlihatkan permintaan untuk menentukan kredensial akses

Untuk memperbaikinya, pilih Edit Kredensial dalam pesan. Setelah kotak dialog muncul, pilih Anonim untuk menyambungkan ke API secara anonim. Kemudian pilih Sambungkan.

Setelah itu, pilih Tutup & Terapkan di pita Beranda untuk menerapkan perubahan.

Memvisualisasikan respons API Anomaly Detector

Di layar utama Power BI, mulai gunakan kueri yang dibuat di atas untuk memvisualisasikan data. Pertama, pilih Bagan Garis dalam Visualisasi. Kemudian, tambahkan tanda waktu dari fungsi yang dipanggil ke Sumbu bagan garis. Klik kanan di atasnya, lalu pilih Tanda Waktu.

Mengklik kanan nilai Tanda Waktu

Tambahkan bidang berikut ini dari Fungsi yang Dipanggil ke bidang Nilai bagan. Gunakan cuplikan layar di bawah ini untuk membantu membuat bagan Anda.

  • Nilai
  • UpperMargins
  • LowerMargins
  • Nilai yang Diharapkan

Gambar pengaturan bagan

Setelah menambahkan bidang, pilih pada bagan dan mengubah ukurannya untuk memperlihatkan semua titik data. Bagan Anda akan terlihat mirip dengan cuplikan layar di bawah ini:

Gambar visualisasi bagan

Menampilkan poin data anomali

Di sisi kanan jendela Power BI, di bawah panel BIDANG, klik kanan Nilai di bawah kueri Fungsi yang Dipanggil, dan pilih Pengukuran cepat baru.

Gambar layar pengukuran cepat baru

Pada layar yang muncul, pilih Nilai yang difilter sebagai penghitungan. Atur Nilai dasar ke Sum of Value. Lalu, seret IsAnomaly dari bidang Fungsi yang Dipanggil ke Filter. Pilih True dari menu drop-down Filter.

Gambar kedua layar pengukuran cepat baru

Setelah memilih Ok, Anda akan memiliki Value for True bidang, di bagian bawah daftar bidang Anda. Klik kanan dan ganti namanya menjadi Anomali. Tambahkan ke Nilai diagram. Lalu ,pilih alat Format, dan atur jenis sumbu X ke Kategoris.

Gambar sumbu x format

Terapkan warna ke bagan Anda dengan memilih pada alat Format dan Warna data. Bagan Anda akan terlihat seperti berikut:

Gambar bagan akhir