View a markdown version of this page

Membuat 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.

Membuat kueri untuk data agregat

AWS IoT menyediakan empat API (GetStatistics,, GetCardinalityGetPercentiles, danGetBucketsAggregation) yang memungkinkan Anda menelusuri armada perangkat Anda untuk data agregat.

catatan

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

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.

Per get-statistics intah CLI mengambil parameter berikut:

index-name

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

query-string

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

aggregationField

(Opsional) Bidang yang akan digabungkan. Bidang ini harus berupa bidang terkelola atau kustom yang ditentukan saat Anda memanggilupdate-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, panggilan GetStatistics mengembalikan jumlah perangkat yang memiliki atribut yang cocok dengan kueri. 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:

  • RATA-RATA 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, MAXIMUM adalah 1.

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

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

GetStatistics dengan nilai numerik

Saat Anda memang GetStatistics gil 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 kueri.

sum

Jumlah nilai numerik yang cocok dengan query.

minimum

Nilai numerik terkecil yang cocok dengan query.

maksimum

Nilai numerik terbesar yang cocok dengan query.

jumlah OfSquares

Jumlah kuadrat dari nilai numerik yang cocok dengan kueri.

perbedaan

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

Deviasi STD

Standar deviasi dari nilai numerik yang cocok dengan kueri. 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 oleh get-cardinality meskipun tidak ada bidang yang cocok. Contoh:

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

Per get-cardinality intah CLI mengambil parameter berikut:

index-name

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

query-string

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

aggregationField

Bidang untuk digabungkan.

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 ketika tidak ada dokumen yang cocok.

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

Per get-percentile intah CLI mengambil parameter berikut:

index-name

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

query-string

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

aggregationField

Bidang yang akan digabungkan, yang harus berupa Number tipe.

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.

GetBucketsAggregation

GetBucketsAggregationAPI 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

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

aggregation-field

Bidang untuk digabungkan.

buckets-aggregation-type

Kontrol dasar bentuk respons dan jenis agregasi bucket untuk dilakukan.

Otorisasi

Anda dapat menentukan indeks kelompok hal 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).