

 Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, 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/) yang diterbitkan pada 30 Juni 2025. 

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

# SYS\_UDF\_LOG
<a name="SYS_UDF_LOG"></a>

Merekam pesan kesalahan dan peringatan yang ditentukan sistem yang dihasilkan selama eksekusi fungsi yang ditentukan pengguna (UDF). 

SYS\_UDF\_LOG hanya terlihat oleh pengguna super. Untuk informasi selengkapnya, lihat [Visibilitas data dalam tabel dan tampilan sistem](cm_chap_system-tables.md#c_visibility-of-data).

## Kolom tabel
<a name="SYS_UDF_LOG-table-rows"></a>


| Nama kolom | Jenis data | Deskripsi | 
| --- | --- | --- | 
| Query\_id | bigint | Pengidentifikasi kueri. | 
| function\_name | text | Nama fungsi yang ditentukan pengguna. | 
| waktu\_rekor | timestamp | Waktu ketika rekaman itu dibuat. | 
| urutan | integer | Urutan pesan log tunggal. | 
| pesan | text | Teks pesan log. | 
| Query\_uuid | karakter (36) | Pengidentifikasi unik global (UUID) dari kueri. | 

## Kueri Sampel
<a name="SYS_UDF_LOG-sample-queries"></a>

Contoh berikut menunjukkan bagaimana UDF menangani kesalahan yang ditentukan sistem. Blok pertama menunjukkan definisi untuk fungsi UDF yang mengembalikan kebalikan dari argumen. Ketika Anda menjalankan fungsi dan memberikan 0 sebagai argumen Anda, fungsi mengembalikan kesalahan. Pernyataan terakhir mengembalikan pesan kesalahan yang dicatat di SYS\_UDF\_LOG.

```
-- Create a function to find the inverse of a number.
CREATE OR REPLACE FUNCTION f_udf_inv(a int) 

RETURNS float 

IMMUTABLE AS $$return 1/a 

$$ LANGUAGE plpythonu; 

-- Run the function with 0 to create an error.
Select f_udf_inv(0); 

-- Query SYS_UDF_LOG to view the message.
Select query_id, record_time, message::varchar from sys_udf_log; 


query_id    |    record_time              |                 message
----------+----------------------------+-------------------------------------------------------
2211        | 2023-08-23 15:53:11.360538 |  ZeroDivisionError: integer division or modulo by zero line 2, in f_udf_inv\n return 1/a\n
```

Contoh berikut menambahkan logging dan pesan peringatan ke UDF sehingga operasi dibagi dengan nol menghasilkan pesan peringatan alih-alih berhenti dengan pesan kesalahan.

```
-- Create a function to find the inverse of a number and log a warning if you input 0.
CREATE OR REPLACE FUNCTION f_udf_inv_log(a int)
  RETURNS float IMMUTABLE
 AS $$ 
  import logging
  logger = logging.getLogger() #get root logger
  if a==0:
    logger.warning('You attempted to divide by zero.\nReturning zero instead of error.\n') 
    return 0
  else:
     return 1/a
$$ LANGUAGE plpythonu;

-- Run the function with 0 to trigger the warning.
Select f_udf_inv_log(0);

-- Query SYS_UDF_LOG to view the message.
Select query_id, record_time, message::varchar from sys_udf_log;

 query_id |        record_time         |                                    message
----------+----------------------------+-------------------------------------------------------------------------------
     0   | 2023-08-23 16:10:48.833503 | WARNING: You attempted to divide by zero.\nReturning zero instead of error.\n
```