Unit Kueri di Azure Digital Twins

Artikel ini membahas Unit Kueri, cara penggunaannya oleh Azure Digital Twins, dan cara menemukan konsumsi Unit Kueri di Azure Digital Twins.

Unit Kueri (QU) di Azure Digital Twins adalah unit komputasi sesuai permintaan yang digunakan untuk menjalankan kueri Azure Digital Twins menggunakan Query API.

Ini mengabstraksi sumber daya sistem seperti CPU, IOPS, dan memori yang diperlukan untuk melakukan operasi kueri yang didukung oleh Azure Digital Twins, memungkinkan Anda melacak penggunaan di Unit Kueri sebagai gantinya.

Jumlah Unit Kueri yang digunakan untuk menjalankan kueri dipengaruhi oleh:

  • Kompleksitas kueri
  • Ukuran kumpulan hasil (sehingga kueri yang mengembalikan 10 hasil akan menggunakan lebih banyak QUs daripada kueri kompleksitas serupa yang hanya mengembalikan satu hasil)

Artikel ini menjelaskan cara memahami Unit Kueri dan melacak penggunaan Unit Kueri.

Menemukan penggunaan Unit Kueri di Azure Digital Twins

Saat Anda menjalankan kueri menggunakan Azure Digital Twins Query API, Anda dapat memeriksa header respons untuk melacak jumlah QUs yang digunakan kueri. Cari "biaya kueri" dalam respons yang dikirim kembali dari Azure Digital Twins.

SDK Azure Digital Twins memungkinkan Anda mengekstrak header biaya-kueri dari respons yang dapat dipaginasi. Bagian ini memperlihatkan cara mengkueri untuk kembaran digital dan cara melakukan pengulangan respons yang dapat dipaginasi untuk mengekstrak header biaya-kueri.

Cuplikan kode berikut menunjukkan bagaimana Anda dapat mengekstrak biaya kueri yang dikeluarkan saat memanggil API Kueri. Ini mengulang halaman respons terlebih dahulu untuk mengakses header biaya-kueri, dan kemudian mengulang hasil kembaran digital di setiap halaman.

using Azure;
using Azure.DigitalTwins.Core;
using System;

namespace DigitalTwins_Samples
{
    public class GetQueryChargesSample
    {
        async public void Run(DigitalTwinsClient client)
        {
            AsyncPageable<BasicDigitalTwin> asyncPageableResponseWithCharge = client.QueryAsync<BasicDigitalTwin>("SELECT * FROM digitaltwins");
            int pageNum = 0;

            // The "await" keyword here is required, as a call is made when fetching a new page.

            await foreach (Page<BasicDigitalTwin> page in asyncPageableResponseWithCharge.AsPages())
            {
                Console.WriteLine($"Page {++pageNum} results:");

                // Extract the query-charge header from the page

                if (QueryChargeHelper.TryGetQueryCharge(page, out float queryCharge))
                {
                    Console.WriteLine($"Query charge was: {queryCharge}");
                }

                // Iterate over the twin instances.

                // The "await" keyword is not required here, as the paged response is local.

                foreach (BasicDigitalTwin twin in page.Values)
                {
                    Console.WriteLine($"Found digital twin '{twin.Id}'");
                }
            }
        }
    }
}

Langkah berikutnya

Untuk mempelajari lebih lanjut cara mengkueri Azure Digital Twins, buka:

Anda dapat menemukan batas terkait kueri Azure Digital Twins di batas layanan Azure Digital Twins.