

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
<a name="index-aggregate"></a>

AWS IoT menyediakan empat APIs (`GetStatistics`,`GetCardinality`,`GetPercentiles`, dan`GetBucketsAggregation`) yang memungkinkan Anda mencari data agregat armada perangkat Anda. 

**catatan**  
 Untuk masalah dengan nilai agregasi yang hilang atau tidak terduga APIs, baca panduan [pemecahan masalah pengindeksan Armada](fleet-indexing-troubleshooting.md). 

## GetStatistics
<a name="get-statistics"></a>

[GetStatistics](https://docs.aws.amazon.com/iot/latest/apireference/API_GetStatistics.html)API 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 menelepon**update-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
<a name="string-aggregation"></a>

Jika Anda menggabungkan pada bidang string, pemanggilan akan `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 bernama`stringAttribute`:

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

### GetStatistics dengan nilai Boolean
<a name="boolean-aggregation"></a>

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` dan`true`, 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` dan`true`, MAXIMUM adalah 1.
+ SUM adalah jumlah dari ekuivalen integer dari nilai Boolean.
+ COUNT adalah jumlah hal-hal yang cocok dengan kriteria string kueri dan berisi nilai bidang agregasi yang valid.

### GetStatistics dengan nilai numerik
<a name="numerical-aggregation"></a>

Ketika Anda memanggil `GetStatistics` dan menentukan bidang agregasi jenis`Number`, `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.

sumOfSquares  
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
<a name="get-cardinality"></a>

[GetCardinality](https://docs.aws.amazon.com/iot/latest/apireference/API_GetCardinality.html)API 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. 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
<a name="get-percentiles"></a>

[GetPercentiles](https://docs.aws.amazon.com/iot/latest/apireference/API_GetPercentiles.html)API 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.

## GetBucketsAggregation
<a name="get-buckets"></a>

[GetBucketsAggregation](https://docs.aws.amazon.com/iot/latest/apireference/API_GetBucketsAggregation.html)API 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
<a name="index-aggregate-authorization"></a>

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` atau`arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 