

Untuk kemampuan serupa dengan Amazon Timestream LiveAnalytics, pertimbangkan Amazon Timestream untuk InfluxDB. Ini menawarkan konsumsi data yang disederhanakan dan waktu respons kueri milidetik satu digit untuk analitik waktu nyata. Pelajari lebih lanjut [di sini](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html).

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

# Mengoptimalkan kueri menggunakan respons wawasan kueri
<a name="optimize-query-using-query-insights"></a>

Katakanlah Anda menggunakan Amazon Timestream LiveAnalytics untuk memantau konsumsi energi di berbagai lokasi. Bayangkan bahwa Anda memiliki dua tabel dalam database Anda bernama `raw-metrics` dan`aggregate-metrics`.

`raw-metrics`Tabel menyimpan data energi terperinci di tingkat perangkat dan berisi kolom berikut:
+ Stempel waktu
+ Negara, misalnya, Washington
+ ID Perangkat
+ Konsumsi energi

Data untuk tabel ini dikumpulkan dan disimpan pada minute-by-minute perincian. Tabel menggunakan `State` sebagai CDPK.

`aggregate-metrics`Tabel menyimpan hasil kueri terjadwal untuk mengumpulkan data konsumsi energi di semua perangkat setiap jam. Tabel ini berisi kolom berikut:
+ Stempel waktu
+ Negara, misalnya, Washington
+ Konsumsi energi total

`aggregate-metrics`Tabel menyimpan data ini pada perincian per jam. Tabel menggunakan `State` sebagai CDPK.

**Topics**
+ [Meminta konsumsi energi selama 24 jam terakhir](#query-energy-consumption-data)
+ [Mengoptimalkan kueri untuk rentang temporal](#optimize-query-temporal-range)
+ [Mengoptimalkan kueri untuk cakupan spasial](#optimize-query-spatial-coverage)
+ [Peningkatan kinerja kueri](#improved-query-performance)

## Meminta konsumsi energi selama 24 jam terakhir
<a name="query-energy-consumption-data"></a>

Katakanlah Anda ingin mengekstrak total energi yang dikonsumsi di Washington selama 24 jam terakhir. Untuk menemukan data ini, Anda dapat memanfaatkan kekuatan kedua tabel: `raw-metrics` dan`aggregate-metrics`. `aggregate-metrics`Tabel menyediakan data konsumsi energi per jam selama 23 jam terakhir, sedangkan `raw-metrics` tabel menawarkan data menit-granular selama satu jam terakhir. Dengan menanyakan di kedua tabel, Anda bisa mendapatkan gambaran konsumsi energi yang lengkap dan akurat di Washington selama 24 jam terakhir.

```
SELECT am.time, am.state, am.total_energy_consumption, 
rm.time, rm.state, rm.device_id, rm.energy_consumption
FROM 
 "metrics"."aggregate-metrics" am
 LEFT JOIN "metrics"."raw-metrics" rm ON am.state = rm.state
WHERE rm.time >= ago(1h) and rm.time < now()
```

Contoh kueri ini disediakan untuk tujuan ilustrasi saja dan mungkin tidak berfungsi apa adanya. Ini dimaksudkan untuk mendemonstrasikan konsep, tetapi Anda mungkin perlu memodifikasinya agar sesuai dengan kasus penggunaan atau lingkungan khusus Anda.

Setelah menjalankan kueri ini, Anda mungkin memperhatikan bahwa waktu respons kueri lebih lambat dari yang diharapkan. Untuk mengidentifikasi akar penyebab masalah kinerja ini, Anda dapat menggunakan fitur wawasan kueri untuk menganalisis kinerja kueri dan mengoptimalkan pelaksanaannya.

Contoh berikut menunjukkan respons wawasan kueri.

```
queryInsightsResponse={
                QuerySpatialCoverage: {
                    Max: {
                        Value: 1.0,
                        TableArn: arn:aws:timestream:us-east-1:123456789012:database/metrics/table/raw-metrics,
                        PartitionKey: [State]
                    }
                },
                QueryTemporalRange: {
                    Max: {
                        Value:31540000000000000 //365 days,
                        TableArn: arn:aws:timestream:us-east-1:123456789012:database/metrics/table/aggregate-metrics
                    }
                },
                QueryTableCount: 2,
                OutputRows: 83,
                OutputBytes: 590
```

Respons wawasan kueri memberikan informasi berikut:
+ **Rentang temporal**: Kueri memindai rentang temporal 365 hari yang berlebihan untuk tabel. `aggregate-metrics` Ini menunjukkan penggunaan penyaringan temporal yang tidak efisien.
+ **Cakupan spasial**: Kueri memindai seluruh rentang spasial (100%) `raw-metrics` tabel. Ini menunjukkan bahwa penyaringan spasial tidak digunakan secara efektif.

Jika kueri Anda mengakses lebih dari satu tabel, wawasan kueri menyediakan metrik untuk tabel dengan pola akses paling sub-optimal.

## Mengoptimalkan kueri untuk rentang temporal
<a name="optimize-query-temporal-range"></a>

Berdasarkan respons wawasan kueri, Anda dapat mengoptimalkan kueri untuk rentang temporal seperti yang ditunjukkan pada contoh berikut.

```
SELECT am.time, am.state, am.total_energy_consumption, 
rm.time, rm.state, rm.device_id, rm.energy_consumption
FROM 
  "metrics"."aggregate-metrics" am
  LEFT JOIN "metrics"."raw-metrics" rm ON am.state = rm.state
WHERE 
  am.time >=  ago(23h) and am.time < now()
  AND rm.time >=  ago(1h) and rm.time < now()
  AND rm.state = 'Washington'
```

Jika Anda menjalankan `QueryInsights` perintah lagi, ia mengembalikan respons berikut.

```
queryInsightsResponse={
                QuerySpatialCoverage: {
                    Max: {
                        Value: 1.0,
                        TableArn: arn:aws:timestream:us-east-1:123456789012:database/metrics/table/aggregate-metrics,
                        PartitionKey: [State]
                    }
                },
                QueryTemporalRange: {
                    Max: {
                        Value: 82800000000000 //23 hours,
                        TableArn: arn:aws:timestream:us-east-1:123456789012:database/metrics/table/aggregate-metrics
                    }
                },
                QueryTableCount: 2,
                OutputRows: 83,
                OutputBytes: 590
```

Tanggapan ini menunjukkan bahwa cakupan spasial untuk `aggregate-metrics` tabel masih 100%, yang tidak efisien. Bagian berikut menunjukkan cara mengoptimalkan kueri untuk cakupan spasial.

## Mengoptimalkan kueri untuk cakupan spasial
<a name="optimize-query-spatial-coverage"></a>

Berdasarkan respons wawasan kueri, Anda dapat mengoptimalkan kueri untuk cakupan spasial seperti yang ditunjukkan pada contoh berikut.

```
SELECT am.time, am.state, am.total_energy_consumption, 
rm.time, rm.state, rm.device_id, rm.energy_consumption
FROM 
  "metrics"."aggregate-metrics" am
  LEFT JOIN "metrics"."raw-metrics" rm ON am.state = rm.state
WHERE 
  am.time >=  ago(23h) and am.time < now()
  AND am.state ='Washington'
  AND rm.time >=  ago(1h) and rm.time < now()
  AND rm.state = 'Washington'
```

Jika Anda menjalankan `QueryInsights` perintah lagi, ia mengembalikan respons berikut.

```
queryInsightsResponse={
                QuerySpatialCoverage: {
                    Max: {
                        Value: 0.02,
                        TableArn: arn:aws:timestream:us-east-1:123456789012:database/metrics/table/aggregate-metrics,
                        PartitionKey: [State]
                    }
                },
                QueryTemporalRange: {
                    Max: {
                        Value: 82800000000000 //23 hours,
                        TableArn: arn:aws:timestream:us-east-1:123456789012:database/metrics/table/aggregate-metrics
                    }
                },
                QueryTableCount: 2,
                OutputRows: 83,
                OutputBytes: 590
```

## Peningkatan kinerja kueri
<a name="improved-query-performance"></a>

Setelah mengoptimalkan kueri, wawasan kueri memberikan informasi berikut:
+ Pemangkasan temporal untuk `aggregate-metrics` meja adalah 23 jam. Ini menunjukkan bahwa hanya 23 jam rentang temporal yang dipindai.
+ Pemangkasan spasial untuk `aggregate-metrics` tabel adalah 0,02. Ini menunjukkan bahwa hanya 2% dari data rentang spasial tabel yang dipindai. Kueri memindai sebagian kecil tabel yang mengarah ke kinerja yang cepat dan pemanfaatan sumber daya yang berkurang. Efisiensi pemangkasan yang ditingkatkan menunjukkan bahwa kueri sekarang dioptimalkan untuk kinerja.