

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# Kueri tabel dan tampilan sistem
<a name="t_querying_redshift_system_tables"></a>

Selain tabel yang Anda buat, gudang data Anda berisi sejumlah tabel dan tampilan sistem. Tabel dan tampilan ini berisi informasi tentang instalasi Anda dan berbagai kueri dan proses yang berjalan pada sistem. Anda dapat menanyakan tabel dan tampilan sistem ini untuk mengumpulkan informasi tentang database Anda. Untuk informasi selengkapnya, lihat [Referensi tabel dan tampilan sistem](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_system-tables.html) di Panduan *Pengembang Database Amazon Redshift*. Deskripsi untuk setiap tabel atau tampilan menunjukkan apakah tabel terlihat oleh semua pengguna atau hanya untuk pengguna super. Masuk sebagai pengguna super untuk menanyakan tabel yang hanya terlihat oleh pengguna super. 

## Melihat daftar nama tabel
<a name="t_querying_redshift_system_tables-view-a-list-of-table-names"></a>

Untuk melihat daftar semua tabel dalam skema, Anda dapat menanyakan tabel katalog sistem PG\$1TABLE\$1DEF. Anda dapat terlebih dahulu memeriksa pengaturan untuk`search_path`.

```
SHOW search_path;
```

Hasilnya akan terlihat mirip dengan yang berikut ini,

```
  search_path
---------------
 $user, public
```

Contoh berikut menambahkan `SALES` skema ke jalur pencarian dan menunjukkan semua tabel dalam `SALES` skema.

```
set search_path to '$user', 'public', 'sales';
                
SHOW search_path;

      search_path       
------------------------
 "$user", public, sales


select * from pg_table_def where schemaname = 'sales';

 schemaname | tablename |  column  |          type          | encoding | distkey | sortkey | notnull 
------------+-----------+----------+------------------------+----------+---------+---------+---------
 sales      | demo      | personid | integer                | az64     | f       |       0 | f
 sales      | demo      | city     | character varying(255) | lzo      | f       |       0 | f
```

Contoh berikut menunjukkan daftar semua tabel yang disebut `DEMO` dalam semua skema pada database saat ini.

```
set search_path to '$user', 'public', 'sales';
select * from pg_table_def where tablename = 'demo';

 schemaname | tablename |  column  |          type          | encoding | distkey | sortkey | notnull 
------------+-----------+----------+------------------------+----------+---------+---------+---------
 public     | demo      | personid | integer                | az64     | f       |       0 | f
 public     | demo      | city     | character varying(255) | lzo      | f       |       0 | f
 sales      | demo      | personid | integer                | az64     | f       |       0 | f
 sales      | demo      | city     | character varying(255) | lzo      | f       |       0 | f
```

Untuk informasi selengkapnya, lihat [PG\$1TABLE\$1DEF](https://docs.aws.amazon.com/redshift/latest/dg/r_PG_TABLE_DEF.html).

Anda juga dapat menggunakan editor kueri Amazon Redshift v2 untuk melihat semua tabel dalam skema tertentu dengan terlebih dahulu memilih database yang ingin Anda sambungkan.

## Lihat pengguna
<a name="t_querying_redshift_system_tables-view-database-users"></a>

Anda dapat menanyakan katalog PG\$1USER untuk melihat daftar semua pengguna, bersama dengan ID pengguna (USESYSID) dan hak istimewa pengguna. 

```
SELECT * FROM pg_user;

  usename   | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil | useconfig
------------+----------+-------------+----------+-----------+----------+----------+-----------
 rdsdb      |        1 | true        | true     | true      | ******** | infinity |
 awsuser    |      100 | true        | true     | false     | ******** |          |
 guest      |      104 | true        | false    | false     | ******** |          |
```

Nama pengguna digunakan `rdsdb` secara internal oleh Amazon Redshift untuk melakukan tugas administrasi dan pemeliharaan rutin. Anda dapat memfilter kueri untuk hanya menampilkan nama pengguna yang ditentukan pengguna dengan menambahkan `where usesysid > 1` ke pernyataan SELECT Anda.

```
SELECT * FROM pg_user WHERE usesysid > 1;

  usename   | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil | useconfig
------------+----------+-------------+----------+-----------+----------+----------+-----------
 awsuser    |      100 | true        | true     | false     | ******** |          |
 guest      |      104 | true        | false    | false     | ******** |          |
```

## Lihat pertanyaan terbaru
<a name="t_querying_redshift_system_tables-view-recent-queries"></a>

Pada contoh sebelumnya, ID pengguna (user\$1id) untuk `adminuser` adalah 100. Untuk mencantumkan empat kueri terbaru yang dijalankan oleh`adminuser`, Anda dapat menanyakan tampilan SYS\$1QUERY\$1HISTORY. 

Anda dapat menggunakan tampilan ini untuk menemukan ID kueri (query\$1id) atau ID proses (session\$1id) untuk kueri yang baru saja dijalankan. Anda juga dapat menggunakan tampilan ini untuk memeriksa berapa lama waktu yang dibutuhkan kueri untuk diselesaikan. SYS\$1QUERY\$1HISTORY menyertakan 4.000 karakter pertama dari string kueri (query\$1text) untuk membantu Anda menemukan kueri tertentu. Gunakan klausa LIMIT dengan pernyataan SELECT Anda untuk membatasi hasil. 

```
SELECT query_id, session_id, elapsed_time, query_text 
FROM sys_query_history
WHERE user_id = 100
ORDER BY start_time desc
LIMIT 4;
```

Hasilnya terlihat seperti berikut ini. 

```
 query_id |  session_id  |  elapsed_time |   query_text
----------+--------------+---------------+----------------------------------------------------------------
 892      |    21046     |       55868   | SELECT query, pid, elapsed, substring from ...
 620      |    17635     |     1296265   | SELECT query, pid, elapsed, substring from ...
 610      |    17607     |       82555   | SELECT * from DEMO; 
 596      |    16762     |      226372   | INSERT INTO DEMO VALUES (100);
```

## Tentukan ID sesi dari kueri yang sedang berjalan
<a name="determine_pid"></a>

Untuk mengambil informasi tabel sistem tentang kueri, Anda mungkin perlu menentukan ID sesi (ID proses) yang terkait dengan kueri tersebut. Atau, Anda mungkin perlu menemukan ID sesi untuk kueri yang masih berjalan. Misalnya, Anda memerlukan ID sesi jika Anda perlu membatalkan kueri yang terlalu lama untuk dijalankan di klaster yang disediakan. Anda dapat menanyakan tabel sistem STV\$1RECENTS untuk mendapatkan daftar sesi IDs untuk menjalankan kueri, bersama dengan string kueri yang sesuai. Jika kueri Anda mengembalikan beberapa sesi, Anda dapat melihat teks kueri untuk menentukan ID sesi mana yang Anda butuhkan.

Untuk menentukan ID sesi dari kueri yang sedang berjalan, jalankan pernyataan SELECT berikut.

```
SELECT session_id, user_id, start_time, query_text
FROM sys_query_history
WHERE status='running';
```