SQLfungsi yang didukung pada node pemimpin - Amazon Redshift

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

SQLfungsi yang didukung pada node pemimpin

Beberapa kueri Amazon Redshift didistribusikan dan dijalankan di node komputasi, dan kueri lainnya dijalankan secara eksklusif di node pemimpin.

Node pemimpin mendistribusikan SQL ke node komputasi setiap kali kueri mereferensikan tabel atau tabel sistem yang dibuat pengguna (tabel dengan STV awalan STL atau tampilan sistem dengan awalan atau). SVL SVV Kueri yang hanya mereferensikan tabel katalog (tabel dengan awalan PG, seperti PG_ TABLE _DEF, yang berada di simpul pemimpin) atau yang tidak mereferensikan tabel apa pun, berjalan secara eksklusif pada node pemimpin.

Beberapa SQL fungsi Amazon Redshift hanya didukung pada node pemimpin dan tidak didukung pada node komputasi. Kueri yang menggunakan fungsi leader-node harus dijalankan secara eksklusif pada node pemimpin, bukan pada node komputasi, atau akan mengembalikan kesalahan.

Dokumentasi untuk setiap fungsi yang harus dijalankan secara eksklusif pada node pemimpin menyertakan catatan yang menyatakan bahwa fungsi tersebut akan mengembalikan kesalahan jika mereferensikan tabel yang ditentukan pengguna atau tabel sistem Amazon Redshift. Lihat Fungsi simpul pemimpin—hanya daftar fungsi yang berjalan secara eksklusif pada node pemimpin.

Contoh

Contoh berikut menggunakan TICKIT database sampel. Untuk informasi lebih lanjut tentang database sampel, bukaDatabase sampel.

CURRENT_SCHEMA

Fungsi CURRENT _ adalah SCHEMA fungsi leader-node saja. Dalam contoh ini, kueri tidak mereferensikan tabel, sehingga berjalan secara eksklusif pada node pemimpin.

select current_schema(); current_schema --------------- public

Dalam contoh berikutnya, query referensi tabel katalog sistem, sehingga berjalan secara eksklusif pada node pemimpin.

select * from pg_table_def where schemaname = current_schema() limit 1; schemaname | tablename | column | type | encoding | distkey | sortkey | notnull ------------+-----------+--------+----------+----------+---------+---------+--------- public | category | catid | smallint | none | t | 1 | t

Dalam contoh berikutnya, kueri mereferensikan tabel sistem Amazon Redshift yang berada di node komputasi, sehingga mengembalikan kesalahan.

select current_schema(), userid from users; INFO: Function "current_schema()" not supported. ERROR: Specified types or functions (one per INFO message) not supported on Amazon Redshift tables.

SUBSTR

SUBSTRjuga merupakan fungsi leader-node saja. Dalam contoh berikut, kueri berjalan eksklusif pada node pemimpin karena tidak mereferensikan tabel.

SELECT SUBSTR('amazon', 5); +--------+ | substr | +--------+ | on | +--------+

Dalam contoh berikut, query referensi tabel yang berada pada node komputasi. Ini menghasilkan kesalahan.

SELECT SUBSTR(catdesc, 1) FROM category LIMIT 1; ERROR: SUBSTR() function is not supported (Hint: use SUBSTRING instead)

Untuk berhasil menjalankan kueri sebelumnya, gunakan SUBSTRING.

SELECT SUBSTRING(catdesc, 1) FROM category LIMIT 1; +---------------------------------+ | substring | +---------------------------------+ | National Basketball Association | +---------------------------------+

FACTORIAL()

FACTORIAL() adalah fungsi leader-node saja. Dalam contoh berikut, kueri berjalan eksklusif pada node pemimpin karena tidak mereferensikan tabel.

SELECT FACTORIAL(5); factorial ------------- 120

Dalam contoh berikut, query referensi tabel yang berada pada node komputasi. Ini menghasilkan kesalahan saat dijalankan menggunakan editor kueri v2.

create table t(a int); insert into t values (5); select factorial(a) from t; ERROR: Specified types or functions (one per INFO message) not supported on Redshift tables. Info: Function "factorial(bigint)" not supported.