Kueri untuk data agregat - AWS IoT Core

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kueri untuk data agregat

AWS IoT menyediakan empat API (GetStatistics,GetCardinality,GetPercentiles, danGetBucketsAggregation) yang memungkinkan Anda mencari data agregat armada perangkat.

catatan

Untuk masalah dengan nilai yang hilang atau tidak terduga untuk API agregasi, baca panduan pemecahan masalah pengindeksan Armada.

GetStatistics

GetStatisticsAPI dan perintah get-statistics CLI mengembalikan hitungan, rata-rata, jumlah, minimum, maksimum, jumlah kuadrat, varians, dan standar deviasi untuk bidang agregat yang ditentukan.

Perintah get-statistics CLI mengambil parameter berikut:

index-name

Nama indeks yang akan dicari. Nilai default-nya adalah AWS_Things.

query-string

Query yang digunakan untuk mencari indeks. Anda dapat menentukan "*" untuk mendapatkan hitungan semua hal yang diindeks di Anda. Akun AWS

aggregationField

(Opsional) Bidang untuk agregat. Bidang ini harus berupa bidang terkelola atau kustom yang ditentukan saat Anda meneleponupdate-indexing-configuration. Jika Anda tidak menentukan bidang agregasi, registry.version digunakan sebagai bidang agregasi.

query-version

Versi kueri yang akan digunakan. Nilai default-nya adalah 2017-09-30.

Jenis bidang agregasi dapat mempengaruhi statistik yang dikembalikan.

GetStatistics dengan nilai string

Jika Anda menggabungkan pada bidang string, pemanggilan akan GetStatistics mengembalikan jumlah perangkat yang memiliki atribut yang cocok dengan kueri. Sebagai contoh:

aws iot get-statistics --aggregation-field 'attributes.stringAttribute' --query-string '*'

Perintah ini mengembalikan jumlah perangkat yang berisi atribut bernamastringAttribute:

{ "statistics": { "count": 3 } }

GetStatistics dengan nilai Boolean

Saat Anda memanggil GetStatistics dengan bidang agregasi Boolean:

  • AVERAGE adalah persentase perangkat yang cocok dengan kueri.

  • MINIMUM adalah 0 atau 1 sesuai dengan aturan berikut:

    • Jika semua nilai untuk bidang agregasi adalahfalse, MINIMUM adalah 0.

    • Jika semua nilai untuk bidang agregasi adalahtrue, MINIMUM adalah 1.

    • Jika nilai untuk bidang agregasi adalah campuran dari false dantrue, MINIMUM adalah 0.

  • MAKSIMUM adalah 0 atau 1 sesuai dengan aturan berikut:

    • Jika semua nilai untuk bidang agregasi adalahfalse, MAXIMUM adalah 0.

    • Jika semua nilai untuk bidang agregasi adalahtrue, MAXIMUM adalah 1.

    • Jika nilai untuk bidang agregasi adalah campuran dari false dantrue, MAKSIMUM adalah 1.

  • SUM adalah jumlah dari bilangan bulat yang setara dengan nilai Boolean.

  • COUNT adalah jumlah hal-hal yang cocok dengan kriteria string kueri dan berisi nilai bidang agregasi yang valid.

GetStatistics dengan nilai numerik

Ketika Anda memanggil GetStatistics dan menentukan bidang agregasi jenisNumber, GetStatistics mengembalikan nilai-nilai berikut:

count

Hitungan hal-hal yang cocok dengan kriteria string kueri dan berisi nilai bidang agregasi yang valid.

rata-rata

Rata-rata nilai numerik yang cocok dengan query.

sum

Jumlah nilai numerik yang cocok dengan query.

minimum

Nilai numerik terkecil yang cocok dengan kueri.

maksimum

Nilai numerik terbesar yang cocok dengan kueri.

jumlah OfSquares

Jumlah kuadrat dari nilai numerik yang cocok dengan query.

perbedaan

Varians dari nilai numerik yang cocok dengan query. Varians dari satu set nilai adalah rata-rata kuadrat dari perbedaan setiap nilai dari nilai rata-rata himpunan.

stdDeviation

Standar deviasi dari nilai numerik yang cocok dengan query. Standar deviasi dari satu set nilai adalah ukuran seberapa tersebar nilai-nilai tersebut.

Contoh berikut menunjukkan cara memanggil get-statistics dengan bidang kustom numerik.

aws iot get-statistics --aggregation-field 'attributes.numericAttribute2' --query-string '*'
{ "statistics": { "count": 3, "average": 33.333333333333336, "sum": 100.0, "minimum": -125.0, "maximum": 150.0, "sumOfSquares": 43750.0, "variance": 13472.22222222222, "stdDeviation": 116.06990230986766 } }

Untuk bidang agregasi numerik, jika nilai bidang melebihi nilai ganda maksimum, nilai statistik kosong.

GetCardinality

GetCardinalityAPI dan perintah get-cardinality CLI mengembalikan perkiraan jumlah nilai unik yang cocok dengan kueri. Misalnya, Anda mungkin ingin menemukan jumlah perangkat dengan tingkat baterai kurang dari 50 persen:

aws iot get-cardinality --index-name AWS_Things --query-string "batterylevel > 50" --aggregation-field "shadow.reported.batterylevel"

Perintah ini mengembalikan jumlah hal dengan tingkat baterai lebih dari 50 persen:

{ "cardinality": 100 }

cardinalityselalu dikembalikan get-cardinality bahkan jika tidak ada bidang yang cocok. Sebagai contoh:

aws iot get-cardinality --query-string "thingName:Non-existent*" --aggregation-field "attributes.customField_STR"
{ "cardinality": 0 }

Perintah get-cardinality CLI mengambil parameter berikut:

index-name

Nama indeks yang akan dicari. Nilai default-nya adalah AWS_Things.

query-string

Query yang digunakan untuk mencari indeks. Anda dapat menentukan "*" untuk mendapatkan hitungan semua hal yang diindeks di Anda. Akun AWS

aggregationField

Bidang untuk agregat.

query-version

Versi kueri yang akan digunakan. Nilai default-nya adalah 2017-09-30.

GetPercentiles

GetPercentilesAPI dan perintah get-percentiles CLI mengelompokkan nilai agregat yang cocok dengan kueri ke dalam pengelompokan persentil. Pengelompokan persentil default adalah: 1,5,25,50,75,95,99, meskipun Anda dapat menentukan sendiri saat menelepon. GetPercentiles Fungsi ini mengembalikan nilai untuk setiap kelompok persentil yang ditentukan (atau pengelompokan persentil default). Grup persentil “1" berisi nilai bidang agregat yang terjadi di sekitar satu persen dari nilai yang cocok dengan kueri. Grup persentil “5" berisi nilai bidang agregat yang terjadi di sekitar lima persen dari nilai yang cocok dengan kueri, dan seterusnya. Hasilnya adalah perkiraan, semakin banyak nilai yang cocok dengan kueri, semakin akurat nilai persentil.

Contoh berikut menunjukkan cara memanggil perintah get-percentiles CLI.

aws iot get-percentiles --query-string "thingName:*" --aggregation-field "attributes.customField_NUM" --percents 10 20 30 40 50 60 70 80 90 99
{ "percentiles": [ { "value": 3.0, "percent": 80.0 }, { "value": 2.5999999999999996, "percent": 70.0 }, { "value": 3.0, "percent": 90.0 }, { "value": 2.0, "percent": 50.0 }, { "value": 2.0, "percent": 60.0 }, { "value": 1.0, "percent": 10.0 }, { "value": 2.0, "percent": 40.0 }, { "value": 1.0, "percent": 20.0 }, { "value": 1.4, "percent": 30.0 }, { "value": 3.0, "percent": 99.0 } ] }

Perintah berikut menunjukkan output yang dikembalikan dari get-percentiles saat tidak ada dokumen yang cocok.

aws iot get-percentiles --query-string "thingName:Non-existent*" --aggregation-field "attributes.customField_NUM"
{ "percentiles": [] }

Perintah get-percentile CLI mengambil parameter berikut:

index-name

Nama indeks yang akan dicari. Nilai default-nya adalah AWS_Things.

query-string

Query yang digunakan untuk mencari indeks. Anda dapat menentukan "*" untuk mendapatkan hitungan semua hal yang diindeks di Anda. Akun AWS

aggregationField

Bidang agregat, yang harus Number bertipe.

query-version

Versi kueri yang akan digunakan. Nilai default-nya adalah 2017-09-30.

percents

(Opsional) Anda dapat menggunakan parameter ini untuk menentukan pengelompokan persentil kustom.

GetBucketsAgregasi

API GetBucketsAgregasi dan perintah get-buckets-aggregation CLI mengembalikan daftar bucket dan jumlah total hal yang sesuai dengan kriteria string kueri.

Contoh berikut menunjukkan cara memanggil perintah get-buckets-aggregation CLI.

aws iot get-buckets-aggregation --query-string '*' --index-name AWS_Things --aggregation-field 'shadow.reported.batterylevelpercent' --buckets-aggregation-type 'termsAggregation={maxBuckets=5}'

Perintah ini mengembalikan yang berikut:

{ "totalCount": 20, "buckets": [ { "keyValue": "100", "count": 12 }, { "keyValue": "90", "count": 5 }, { "keyValue": "75", "count": 3 } ] }

Perintah get-buckets-aggregation CLI mengambil parameter berikut:

index-name

Nama indeks yang akan dicari. Nilai default-nya adalah AWS_Things.

query-string

Query yang digunakan untuk mencari indeks. Anda dapat menentukan "*" untuk mendapatkan hitungan semua hal yang diindeks di Anda. Akun AWS

aggregation-field

Bidang untuk agregat.

buckets-aggregation-type

Kontrol dasar bentuk respons dan jenis agregasi bucket yang akan dilakukan.

Otorisasi

Anda dapat menentukan indeks grup benda sebagai ARN sumber daya dalam tindakan AWS IoT kebijakan, sebagai berikut.

Tindakan Sumber Daya

iot:GetStatistics

Indeks ARN (misalnya, arn:aws:iot:your-aws-region:index/AWS_Things atauarn:aws:iot:your-aws-region:index/AWS_ThingGroups).