

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

# Referensi fungsi SQL
<a name="aurora-analytics-sql-functions-reference"></a>

Fungsi-fungsi ini memungkinkan Anda memeriksa kinerja kueri analitik, penggunaan sumber daya, dan status cache, serta mengelola definisi tabel asing. Sebelum Anda menggunakannya, instal ekstensi. Jalankan `CREATE EXTENSION aurora_analytics` di setiap database tempat Anda ingin menggunakan analitik.

**Topics**
+ [aurora\_analytics\_stat\_statement ()](#aurora-analytics-func-stat-statements)
+ [aurora\_analytics\_stat\_resource\_usage ()](#aurora-analytics-func-stat-resource-usage)
+ [aurora\_analytics\_instance\_metrics ()](#aurora-analytics-func-instance-metrics)
+ [aurora\_analytics\_cache\_size ()](#aurora-analytics-func-cache-size)
+ [aurora\_analytics\_clear\_cache ()](#aurora-analytics-func-clear-cache)
+ [aurora\_analytics\_refresh\_foreign\_table ()](#aurora-analytics-func-refresh-foreign-table)
+ [aurora\_analytics\_available\_features ()](#aurora-analytics-func-available-features)
+ [aurora\_analytics\_stats\_duckdb\_memory ()](#aurora-analytics-func-stats-duckdb-memory)
+ [aurora\_analytics\_remote\_tables ()](#aurora-analytics-func-remote-tables)
+ [aurora\_analytics\_iceberg\_snapshots ()](#aurora-analytics-func-iceberg-snapshots)
+ [aurora\_analytics\_iceberg\_metadata ()](#aurora-analytics-func-iceberg-metadata)
+ [aurora\_analytics\_iceberg\_raw\_metadata ()](#aurora-analytics-func-iceberg-raw-metadata)

Tabel berikut merangkum fungsi analisis SQL.


**Fungsi SQL Analytics**  

| Fungsi | Lingkup | Apa yang dijawabnya | 
| --- | --- | --- | 
| aurora\_analytics\_stat\_statements() | Per kueri yang dinormalisasi, kumulatif | Kueri mana yang dibaca dari Amazon S3 versus cache, tumpah ke disk, atau menghabiskan CPU paling banyak. | 
| aurora\_analytics\_stat\_resource\_usage() | Per backend, langsung | Backend mana yang menghabiskan memori, utas pekerja, dan ruang tumpahan sekarang. | 
| aurora\_analytics\_instance\_metrics() | Seluruh contoh, kumulatif sejak mesin mulai | Berapa banyak permintaan Amazon S3 dan aktivitas cache yang telah dilakukan instance sejak mesin dinyalakan. | 
| aurora\_analytics\_cache\_size() | Seluruh contoh, saat ini | Ukuran cache baca on-disk saat ini. | 
| aurora\_analytics\_clear\_cache() | Seluruh contoh | Membersihkan cache baca pada disk untuk membebaskan penyimpanan lokal. | 
| aurora\_analytics\_refresh\_foreign\_table() | Per tabel asing | Re-infers skema tabel asing di tempat dari metadata sumber saat ini. | 
| aurora\_analytics\_available\_features() | Seluruh contoh, saat ini | Operator, fungsi, dan tipe mana yang memenuhi syarat untuk pushdown mesin analitik. | 
| aurora\_analytics\_stats\_duckdb\_memory() | Per backend, langsung | Bagaimana mesin analitik mengalokasikan memori di seluruh kategori internal untuk backend saat ini, dan apa yang tumpah ke disk. | 
| aurora\_analytics\_remote\_tables() | Per katalog dan skema jarak jauh | Tabel mana yang ada di ruang nama atau AWS Glue database Amazon S3 Tables jarak jauh, dan lokasi penyimpanannya. | 
| aurora\_analytics\_iceberg\_snapshots() | Per tabel asing | Cuplikan Gunung Es mana yang ada untuk tabel asing, untuk kueri perjalanan waktu. | 
| aurora\_analytics\_iceberg\_metadata() | Per tabel asing | Iceberg mana yang memanifestasikan dan file data kembali ke tabel asing. | 
| aurora\_analytics\_iceberg\_raw\_metadata() | Per tabel asing | Metadata.json Iceberg mentah untuk tabel asing, untuk bidang debugging atau non-standar. | 

**catatan**  
Fungsi diagnostik melaporkan semua kolom byte sebagai byte mentah. Bungkus kolom ini `pg_size_pretty()` untuk output yang dapat dibaca.

## aurora\_analytics\_stat\_statement ()
<a name="aurora-analytics-func-stat-statements"></a>

```
aurora_analytics_stat_statements()
```

Mengembalikan statistik kinerja analitik kumulatif untuk setiap kueri dinormalisasi. Gunakan fungsi ini untuk menemukan kueri mana yang dibaca dari Amazon S3 daripada dari cache, kueri mana yang tumpah ke disk, dan kueri mana yang menghabiskan waktu CPU paling banyak.

**catatan**  
Secara default, fungsi ini mengembalikan statistik hanya untuk kueri yang menjalankan peran Anda sendiri. Anggota `rds_superuser` peran melihat statistik untuk semua kueri.

Tabel berikut menjelaskan kolom kembali.


**Kembalikan kolom untuk aurora\_analytics\_stat\_statement ()**  

| Kolom | Jenis | Deskripsi | 
| --- | --- | --- | 
| calls | bigint | Berapa kali kueri dinormalisasi dijalankan. | 
| analytics\_cache\_hit\_bytes | bigint | Jumlah byte yang disajikan dari cache baca on-disk. | 
| analytics\_remote\_read\_bytes | bigint | Jumlah byte dibaca dari jarak jauh dari Amazon S3. | 
| analytics\_total\_disk\_spill | bigint | Jumlah byte tumpah ke penyimpanan disk lokal sementara. | 
| analytics\_total\_cpu\_time | double precision | Total waktu CPU, dalam milidetik, dihabiskan untuk menjalankan kueri. | 
| analytics\_total\_thread\_wait\_time | double precision | Total waktu, dalam milidetik, utas pekerja yang dihabiskan menunggu. | 

Fungsi ini juga mengembalikan teks query dinormalisasi untuk setiap baris.

Contoh berikut mencantumkan kueri yang membaca data, diurutkan berdasarkan pembacaan jarak jauh dari Amazon S3.

```
SELECT calls,
       pg_size_pretty(analytics_cache_hit_bytes) AS cache_hits,
       pg_size_pretty(analytics_remote_read_bytes) AS s3_reads,
       pg_size_pretty(analytics_total_disk_spill) AS spill,
       round(analytics_total_cpu_time::numeric, 2) AS cpu_ms
FROM aurora_analytics_stat_statements()
WHERE analytics_cache_hit_bytes > 0 OR analytics_remote_read_bytes > 0
ORDER BY analytics_remote_read_bytes DESC;
```

Menafsirkan hasilnya sebagai berikut.
+ `analytics_cache_hit_bytes`jauh lebih besar daripada `analytics_remote_read_bytes` berarti cache hangat dan sebagian besar bacaan bersifat lokal.
+ `analytics_remote_read_bytes`jauh lebih besar daripada `analytics_cache_hit_bytes` berarti cache dingin atau set kerja terlalu besar untuk dimasukkan ke dalam cache.
+ `analytics_total_disk_spill`lebih besar dari 0 berarti kueri tumpah ke disk karena tekanan memori.

Untuk panduan tentang menafsirkan statistik ini dan menyetel beban kerja Anda, lihat dan. [Pemantauan dan pemecahan masalah](aurora-analytics-monitoring-troubleshooting.md) [Manajemen sumber daya](aurora-analytics-resource-management.md)

## aurora\_analytics\_stat\_resource\_usage ()
<a name="aurora-analytics-func-stat-resource-usage"></a>

```
aurora_analytics_stat_resource_usage()
```

Mengembalikan snapshot langsung penggunaan sumber daya analitik untuk setiap backend. Gunakan fungsi ini untuk menemukan backend mana yang menghabiskan memori, thread pekerja, dan spill space sekarang.

Tabel berikut menjelaskan kolom kembali.


**Kembalikan kolom untuk aurora\_analytics\_stat\_resource\_usage ()**  

| Kolom | Jenis | Deskripsi | 
| --- | --- | --- | 
| pid | Integer | ID proses backend. | 
| current\_memory\_usage | bigint | Jumlah byte memori yang digunakan backend saat ini. | 
| active\_threads | integer | Jumlah thread pekerja yang sedang dijalankan backend. | 
| disk\_spill\_size | bigint | Jumlah byte yang saat ini tumpah backend ke penyimpanan disk lokal sementara. | 

**catatan**  
Bergabunglah `pid` `pg_stat_activity` untuk melihat kueri mana yang dijalankan setiap backend.

Contoh berikut mencantumkan backend yang menggunakan memori, diurutkan berdasarkan penggunaan memori.

```
SELECT pid,
       pg_size_pretty(current_memory_usage) AS mem_used,
       active_threads,
       pg_size_pretty(disk_spill_size) AS spill
FROM aurora_analytics_stat_resource_usage()
WHERE current_memory_usage > 0
ORDER BY current_memory_usage DESC;
```

## aurora\_analytics\_instance\_metrics ()
<a name="aurora-analytics-func-instance-metrics"></a>

```
aurora_analytics_instance_metrics()
```

Mengembalikan metrik analitik kumulatif untuk seluruh instance sejak mesin dihidupkan. Gunakan fungsi ini untuk melihat berapa banyak permintaan Amazon S3 dan aktivitas cache yang telah dilakukan instance. Penghitung diatur ulang jika mesin dinyalakan kembali.

Tabel berikut menjelaskan kolom kembali.


**Kembalikan kolom untuk aurora\_analytics\_instance\_metrics ()**  

| Kolom | Jenis | Deskripsi | 
| --- | --- | --- | 
| s3\_head\_request\_count | bigint | Jumlah permintaan HEAD yang dibuat instans ke Amazon S3. | 
| s3\_get\_request\_count | bigint | Jumlah permintaan GET yang dibuat instans ke Amazon S3. | 
| s3\_cache\_hit\_bytes | bigint | Jumlah byte yang disajikan dari cache baca on-disk. | 
| s3\_remote\_read\_bytes | bigint | Jumlah byte dibaca dari jarak jauh dari Amazon S3. | 

Contoh berikut mengembalikan permintaan instance-wide dan metrik cache.

```
SELECT s3_head_request_count,
       s3_get_request_count,
       pg_size_pretty(s3_cache_hit_bytes) AS cache_hit,
       pg_size_pretty(s3_remote_read_bytes) AS s3_read
FROM aurora_analytics_instance_metrics();
```

## aurora\_analytics\_cache\_size ()
<a name="aurora-analytics-func-cache-size"></a>

```
aurora_analytics_cache_size()
```

Mengembalikan `bigint` nilai tunggal yang mewakili ukuran saat ini, dalam byte, dari cache baca on-disk untuk seluruh contoh. Karena fungsi mengembalikan byte mentah, bungkus `pg_size_pretty()` untuk output yang dapat dibaca.

Contoh berikut mengembalikan ukuran cache saat ini.

```
SELECT pg_size_pretty(aurora_analytics_cache_size()) AS cache_size;
```

## aurora\_analytics\_clear\_cache ()
<a name="aurora-analytics-func-clear-cache"></a>

```
aurora_analytics_clear_cache()
```

Membersihkan cache baca on-disk untuk seluruh instance untuk membebaskan penyimpanan lokal. Setelah Anda menghapus cache, kueri berikutnya mengambil kembali data dari Amazon S3.

**catatan**  
Fungsi ini membutuhkan `rds_superuser` peran.

Contoh berikut membersihkan cache baca.

```
SELECT aurora_analytics_clear_cache();
```

## aurora\_analytics\_refresh\_foreign\_table ()
<a name="aurora-analytics-func-refresh-foreign-table"></a>

```
aurora_analytics_refresh_foreign_table(table_name regclass, apply_changes boolean)
```

Re-infers skema tabel asing di tempat dari metadata sumber saat ini, menjaga definisi tabel tetap sinkron dengan data Amazon S3 yang mendasarinya. Argumen pertama,`table_name`, adalah nama atau OID dari tabel asing. Argumen kedua,`apply_changes`, adalah boolean posisi wajib yang mengontrol apakah fungsi mempratinjau atau menerapkan perubahan. Fungsi mengembalikan `boolean` nilai yang `true` sukses.
+ `apply_changes = false`melakukan dry run dan melaporkan apa yang akan berubah tanpa memodifikasi tabel.
+ `apply_changes = true`menerapkan perubahan skema ke tabel.

Izin: pemilik meja asing atau`rds_superuser`.

Contoh berikut pertama-tama mempratinjau perubahan dan kemudian menerapkannya.

```
-- Preview the changes
SELECT aurora_analytics_refresh_foreign_table('ft_orders', false);

-- Apply the changes
SELECT aurora_analytics_refresh_foreign_table('ft_orders', true);
```

## aurora\_analytics\_available\_features ()
<a name="aurora-analytics-func-available-features"></a>

```
aurora_analytics_available_features()
```

Daftar operator PostgreSQL, fungsi, dan tipe yang didukung mesin analitik untuk pushdown eksekusi vektor. Gunakan fungsi ini untuk menentukan konstruksi SQL mana yang dapat didorong ke bawah dan dieksekusi secara native daripada kembali ke PostgreSQL.

Fungsi ini tidak membutuhkan argumen.

Tabel berikut menjelaskan kolom kembali.


**Kembalikan kolom untuk aurora\_analytics\_available\_features ()**  

| Kolom | Jenis | Deskripsi | 
| --- | --- | --- | 
| feature\_type | text | Jenis objek katalog: operator, fungsi, atau tipe. | 
| oid | oid | OID dari operator, fungsi, atau ketik dalam pg\_catalog tabel yang sesuai. | 
| description | text | Pembatasan pada dukungan pushdown konstruksi, atau NULL jika tidak dibatasi. | 

Izin: semua pengguna.

**catatan**  
Kueri memenuhi syarat untuk pushdown penuh hanya ketika setiap operator, fungsi, dan referensi jenisnya muncul di output fungsi ini tanpa deskripsi yang membatasi. Jika tidak, kueri akan kembali ke pushdown table-scan.

Contoh berikut mencantumkan tipe yang didukung yang memiliki batasan pushdown.

```
SELECT t.typname, f.description
FROM aurora_analytics_available_features() f
JOIN pg_type t ON f.oid = t.oid
WHERE f.feature_type = 'type' AND f.description IS NOT NULL
ORDER BY t.typname;
```

## aurora\_analytics\_stats\_duckdb\_memory ()
<a name="aurora-analytics-func-stats-duckdb-memory"></a>

```
aurora_analytics_stats_duckdb_memory()
```

Melaporkan penggunaan memori dan penggunaan penyimpanan sementara per kategori memori internal untuk backend saat ini. Gunakan fungsi ini untuk memahami bagaimana mesin analitik mengalokasikan memori di seluruh komponen internal selama eksekusi kueri.

Fungsi ini tidak membutuhkan argumen.

Tabel berikut menjelaskan kolom kembali.


**Kembalikan kolom untuk aurora\_analytics\_stats\_duckdb\_memory ()**  

| Kolom | Jenis | Deskripsi | 
| --- | --- | --- | 
| tag | text | Label kategori memori internal (misalnya, BASE\_TABLE, HASH\_TABLE). | 
| memory\_usage\_bytes | int8 | Jumlah memori yang saat ini dialokasikan untuk kategori ini, dalam byte. | 
| temporary\_storage\_bytes | int8 | Jumlah data untuk kategori ini tumpah ke penyimpanan on-disk sementara, dalam byte. | 

Izin: semua pengguna.

**catatan**  
Fungsi ini melaporkan penggunaan memori untuk sesi backend saat ini saja. `temporary_storage_bytes`Nilai bukan nol menunjukkan bahwa mesin analitik menumpahkan data ke disk untuk kategori tersebut, yang dapat memengaruhi kinerja kueri.

Contoh berikut mengembalikan penggunaan memori untuk backend saat ini.

```
SELECT * FROM aurora_analytics_stats_duckdb_memory();
```

## aurora\_analytics\_remote\_tables ()
<a name="aurora-analytics-func-remote-tables"></a>

```
aurora_analytics_remote_tables(catalog text, schema_name text)
```

Menemukan tabel yang tersedia dalam katalog jarak jauh ( AWS Glue database atau namespace Amazon S3 Tables) dan mengembalikan nama dan lokasi penyimpanannya.

Fungsi ini mengambil argumen berikut.
+ `catalog`: Bucket AWS Glue Data Catalog ARN atau Amazon S3 Tables ARN. Ini adalah nilai katalog yang sama dengan yang Anda gunakan`IMPORT FOREIGN SCHEMA`.
+ `schema_name`: Nama skema (AWS Glue database atau namespace Amazon S3 Tables) dalam katalog. Ini adalah nama skema yang sama yang Anda gunakan. `IMPORT FOREIGN SCHEMA`

Tabel berikut menjelaskan kolom kembali.


**Kembalikan kolom untuk aurora\_analytics\_remote\_tables ()**  

| Kolom | Jenis | Deskripsi | 
| --- | --- | --- | 
| table\_name | text | Nama tabel dalam skema jarak jauh. | 
| location | text |  AWS Glue Tabel ARN atau Amazon S3 Tabel tabel ARN. | 

Izin: `USAGE` hak istimewa di server asing.

Contoh berikut mencantumkan tabel dalam katalog dan skema jarak jauh.

```
SELECT * FROM aurora_analytics_remote_tables('arn:aws:glue:us-east-1:123456789012:catalog', 'my_database');
```

## aurora\_analytics\_iceberg\_snapshots ()
<a name="aurora-analytics-func-iceberg-snapshots"></a>

```
aurora_analytics_iceberg_snapshots(table_name regclass)
```

Daftar semua snapshot Iceberg yang tersedia untuk tabel asing. Gunakan fungsi ini untuk menemukan snapshot mana yang ada sebelum Anda menetapkan `snapshot` opsi untuk kueri perjalanan waktu.

Fungsi ini mengambil satu argumen`table_name`, yang merupakan nama atau OID dari tabel asing Iceberg.

Tabel berikut menjelaskan kolom kembali.


**Kembalikan kolom untuk aurora\_analytics\_iceberg\_snapshots ()**  

| Kolom | Jenis | Deskripsi | 
| --- | --- | --- | 
| sequence\_number | int8 | Nomor urutan Gunung Es untuk snapshot ini. | 
| snapshot\_id | int8 | ID snapshot. Gunakan nilai ini dengan opsi tabel snapshot asing. | 
| timestamp\_ms | timestamp | Stempel waktu saat snapshot dibuat. | 
| manifest\_list | text | Jalur ke file daftar manifes untuk snapshot ini. | 

Izin: pemilik meja asing atau`rds_superuser`. `SELECT`di atas meja saja tidak cukup.

Contoh berikut mencantumkan lima snapshot terbaru untuk tabel asing.

```
SELECT sequence_number, snapshot_id, timestamp_ms
FROM aurora_analytics_iceberg_snapshots('ft_transactions')
ORDER BY sequence_number DESC
LIMIT 5;
```

## aurora\_analytics\_iceberg\_metadata ()
<a name="aurora-analytics-func-iceberg-metadata"></a>

```
aurora_analytics_iceberg_metadata(table_name regclass)
```

Daftar entri manifes Iceberg dan file data untuk tabel asing. Gunakan fungsi ini untuk debugging, memahami tata letak tabel, atau memeriksa file data mana yang mendukung tabel.

Fungsi ini mengambil satu argumen`table_name`, yang merupakan nama atau OID dari tabel asing Iceberg.

Tabel berikut menjelaskan kolom kembali.


**Kembalikan kolom untuk aurora\_analytics\_iceberg\_metadata ()**  

| Kolom | Jenis | Deskripsi | 
| --- | --- | --- | 
| manifest\_path | text | Jalur ke file manifes. | 
| manifest\_sequence\_number | int8 | Nomor urut manifes. | 
| manifest\_content | text | Jenis konten manifes (data atau menghapus). | 
| status | text | Status entri (ada, ditambahkan, dihapus). | 
| content | text | Jenis konten (data atau equality-deletes). | 
| file\_path | text | Jalur Amazon S3 lengkap dari file data. | 
| file\_format | text | Format file (Parket, ORC, Avro). | 
| record\_count | int8 | Jumlah catatan dalam file data ini. | 

Izin: pemilik meja asing atau`rds_superuser`. `SELECT`di atas meja saja tidak cukup.

Contoh berikut mencantumkan lima file data terbesar yang ada untuk tabel asing.

```
SELECT file_path, file_format, record_count, status
FROM aurora_analytics_iceberg_metadata('ft_transactions')
WHERE status = 'EXISTING'
ORDER BY record_count DESC
LIMIT 5;
```

## aurora\_analytics\_iceberg\_raw\_metadata ()
<a name="aurora-analytics-func-iceberg-raw-metadata"></a>

```
aurora_analytics_iceberg_raw_metadata(table_name regclass)
```

Mengembalikan mentah `metadata.json` dari tabel asing Iceberg sebagai nilai JSON tunggal. Gunakan fungsi ini untuk men-debug atau membaca bidang metadata non-standar yang `aurora_analytics_iceberg_snapshots` dan `aurora_analytics_iceberg_metadata` tidak mengekspos, seperti properti tabel, spesifikasi partisi, atau urutan urutan.

Fungsi ini mengambil satu argumen`table_name`, yang merupakan nama atau OID dari tabel asing Iceberg.

Fungsi ini mengembalikan `json` nilai tunggal yang berisi konten Iceberg `metadata.json` lengkap.

Izin: pemilik meja asing atau`rds_superuser`. `SELECT`di atas meja saja tidak cukup.

**catatan**  
Gunakan operator PostgreSQL JSON untuk mengekstrak bidang tertentu dari hasilnya.

Contoh berikut mengembalikan metadata Iceberg mentah untuk tabel asing.

```
SELECT aurora_analytics_iceberg_raw_metadata('ft_transactions');
```