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 adalah
false
, MINIMUM adalah 0. -
Jika semua nilai untuk bidang agregasi adalah
true
, 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 adalah
false
, MAXIMUM adalah 0. -
Jika semua nilai untuk bidang agregasi adalah
true
, 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 }
cardinality
selalu 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 |
---|---|
|
Indeks ARN (misalnya, |