View a markdown version of this page

Perintah meta RSQL Amazon Redshift - Amazon Redshift

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 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.

Perintah meta RSQL Amazon Redshift

Perintah meta Amazon Redshift RSQL mengembalikan catatan informasi tentang database atau objek database tertentu. Hasil dapat mencakup berbagai kolom dan metadata. Perintah lain melakukan tindakan tertentu. Perintah ini didahului dengan garis miring terbalik.

\ d [S+]

Mencantumkan tabel yang dibuat pengguna lokal, tampilan reguler, tampilan yang mengikat terlambat, dan tampilan yang terwujud. \dS juga mencantumkan tabel dan tampilan, seperti\d, tetapi objek sistem disertakan dalam catatan yang dikembalikan. +Hasil dalam kolom metadata tambahan description untuk semua objek yang terdaftar. Berikut ini menunjukkan rekaman sampel yang dikembalikan sebagai hasil dari perintah.

List of relations schema | name | type | owner --------+-----------+-------+--------- public | category | table | awsuser public | date | table | awsuser public | event | table | awsuser public | listing | table | awsuser public | sales | table | awsuser public | users | table | awsuser public | venue | table | awsuser (7 rows)

\ d [S+] NAMA

Menjelaskan tabel, tampilan, atau indeks. Termasuk nama kolom dan tipe. Ini juga menyediakan diststyle, konfigurasi cadangan, tanggal pembuatan (tabel dibuat setelah Oktober 2018), dan batasan. Misalnya, \dS+ sample mengembalikan properti objek. Menambahkan S+ hasil dalam kolom tambahan termasuk dalam catatan yang dikembalikan.

Table "public.sample" Column | Type | Collation | Nullable | Default Value | Encoding | DistKey | SortKey --------+-----------------------------+----------------+----------+---------------+-----------+---------+--------- col1 | smallint | | NO | | none | t | 1 col2 | character(100) | case_sensitive | YES | | none | f | 2 col3 | character varying(100) | case_sensitive | YES | | text32k | f | 3 col4 | timestamp without time zone | | YES | | runlength | f | 0 col5 | super | | YES | | zstd | f | 0 col6 | bigint | | YES | | az64 | f | 0 Diststyle: KEY Backup: YES Created: 2021-07-20 19:47:27.997045 Unique Constraints: "sample_pkey" PRIMARY KEY (col1) "sample_col2_key" UNIQUE (col2) Foreign-key constraints: "sample_col2_fkey" FOREIGN KEY (col2) REFERENCES lineitem(l_orderkey)

Gaya distribusi, atau Diststyle, dari tabel dapat berupa KEY, AUTO, EVEN atau ALL.

Cad angan menunjukkan apakah tabel dicadangkan saat snapshot diambil. Nilai-nilai yang valid adalah YES atau NO.

Dibuat adalah stempel waktu untuk saat tabel dibuat. Tanggal pembuatan tidak tersedia untuk tabel Amazon Redshift yang dibuat sebelum November 2018. Tabel yang dibuat sebelum tanggal ini ditampilkan n/a (Tidak Tersedia).

Unique Con straints mencantumkan batasan kunci unik dan primer pada tabel.

Foreign-key kendala mencantumkan batasan kunci asing pada tabel.

\ dC [+] [POLA]

Daftar pemeran. Termasuk jenis sumber, tipe target, dan apakah pemeran itu implisit.

Berikut ini menunjukkan subset hasil dari\dC+.

List of casts source type | target type | function | implicit? | description -----------------------------+-----------------------------+---------------------+---------------+------------- "char" | character | bpchar | in assignment | "char" | character varying | text | in assignment | "char" | integer | int4 | no | "char" | text | text | yes | "path" | point | point | no | "path" | polygon | polygon | in assignment | abstime | date | date | in assignment | abstime | integer | (binary coercible) | no | abstime | time without time zone | time | in assignment | abstime | timestamp with time zone | timestamptz | yes | abstime | timestamp without time zone | timestamp | yes | bigint | bit | bit | no | bigint | boolean | bool | yes | bigint | character | bpchar | in assignment | bigint | character varying | text | in assignment | bigint | double precision | float8 | yes | bigint | integer | int4 | in assignment | bigint | numeric | numeric | yes | bigint | oid | oid | yes | bigint | real | float4 | yes | bigint | regclass | oid | yes | bigint | regoper | oid | yes | bigint | regoperator | oid | yes | bigint | regproc | oid | yes | bigint | regprocedure | oid | yes | bigint | regtype | oid | yes | bigint | smallint | int2 | in assignment | bigint | super | int8_partiql | in assignment |

\ dd [S] [POLA]

Menampilkan deskripsi objek yang tidak ditampilkan di tempat lain.

\ dari

Daftar tabel eksternal. Ini termasuk tabel di tabel AWS Glue Data Catalog, Hive Metastore dan tabel federasi dari Amazon RDS/Aurora MySQL, Amazon RDS/Aurora PostgreSQL dan Amazon Redshift datashare tabel.

\ de NAME

Menjelaskan tabel eksternal.

Contoh berikut menunjukkan tabel AWS Glue eksternal.

# \de spectrum.lineitem Glue External table "spectrum.lineitem" Column | External Type | Redshift Type | Position | Partition Key | Nullable -----------------+---------------+---------------+----------+---------------+---------- l_orderkey | bigint | bigint | 1 | 0 | l_partkey | bigint | bigint | 2 | 0 | l_suppkey | int | int | 3 | 0 | l_linenumber | int | int | 4 | 0 | l_quantity | decimal(12,2) | decimal(12,2) | 5 | 0 | l_extendedprice | decimal(12,2) | decimal(12,2) | 6 | 0 | l_discount | decimal(12,2) | decimal(12,2) | 7 | 0 | l_tax | decimal(12,2) | decimal(12,2) | 8 | 0 | l_returnflag | char(1) | char(1) | 9 | 0 | l_linestatus | char(1) | char(1) | 10 | 0 | l_shipdate | date | date | 11 | 0 | l_commitdate | date | date | 12 | 0 | l_receiptdate | date | date | 13 | 0 | l_shipinstruct | char(25) | char(25) | 14 | 0 | l_shipmode | char(10) | char(10) | 15 | 0 | l_comment | varchar(44) | varchar(44) | 16 | 0 | Location: s3://redshiftbucket/kfhose2019/12/31 Input_format: org.apache.hadoop.mapred.TextInputFormat Output_format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat Serialization_lib: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe Serde_parameters: {"field.delim":"|","serialization.format":"|"} Parameters: {"EXTERNAL":"TRUE","numRows":"178196721475","transient_lastDdlTime":"1577771873"}

Meja Hive Metastore.

# \de emr.lineitem Hive Metastore External Table "emr.lineitem" Column | External Type | Redshift Type | Position | Partition Key | Nullable -----------------+---------------+---------------+----------+---------------+---------- l_orderkey | bigint | bigint | 1 | 0 | l_partkey | bigint | bigint | 2 | 0 | l_suppkey | int | int | 3 | 0 | l_linenumber | int | int | 4 | 0 | l_quantity | decimal(12,2) | decimal(12,2) | 5 | 0 | l_extendedprice | decimal(12,2) | decimal(12,2) | 6 | 0 | l_discount | decimal(12,2) | decimal(12,2) | 7 | 0 | l_tax | decimal(12,2) | decimal(12,2) | 8 | 0 | l_returnflag | char(1) | char(1) | 9 | 0 | l_linestatus | char(1) | char(1) | 10 | 0 | l_commitdate | date | date | 11 | 0 | l_receiptdate | date | date | 12 | 0 | l_shipinstruct | char(25) | char(25) | 13 | 0 | l_shipmode | char(10) | char(10) | 14 | 0 | l_comment | varchar(44) | varchar(44) | 15 | 0 | l_shipdate | date | date | 16 | 1 | Location: s3://redshiftbucket/cetas Input_format: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat Output_format: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat Serialization_lib: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe Serde_parameters: {"serialization.format":"1"} Parameters: {"EXTERNAL":"TRUE", "numRows":"4307207", "transient_lastDdlTime":"1626990007"}

Tabel eksternal PostgreSQL.

# \de pgrsql.alltypes Postgres Federated Table "pgrsql.alltypes" Column | External Type | Redshift Type | Position | Partition Key | Nullable --------+-----------------------------+-----------------------------+----------+---------------+---------- col1 | bigint | bigint | 1 | 0 | col2 | bigint | bigint | 2 | 0 | col5 | boolean | boolean | 3 | 0 | col6 | box | varchar(65535) | 4 | 0 | col7 | bytea | varchar(65535) | 5 | 0 | col8 | character(10) | character(10) | 6 | 0 | col9 | character varying(10) | character varying(10) | 7 | 0 | col10 | cidr | varchar(65535) | 8 | 0 | col11 | circle | varchar(65535) | 9 | 0 | col12 | date | date | 10 | 0 | col13 | double precision | double precision | 11 | 0 | col14 | inet | varchar(65535) | 12 | 0 | col15 | integer | integer | 13 | 0 | col16 | interval | varchar(65535) | 14 | 0 | col17 | json | varchar(65535) | 15 | 0 | col18 | jsonb | varchar(65535) | 16 | 0 | col19 | line | varchar(65535) | 17 | 0 | col20 | lseg | varchar(65535) | 18 | 0 | col21 | macaddr | varchar(65535) | 19 | 0 | col22 | macaddr8 | varchar(65535) | 20 | 0 | col23 | money | varchar(65535) | 21 | 0 | col24 | numeric | numeric(38,20) | 22 | 0 | col25 | path | varchar(65535) | 23 | 0 | col26 | pg_lsn | varchar(65535) | 24 | 0 | col28 | point | varchar(65535) | 25 | 0 | col29 | polygon | varchar(65535) | 26 | 0 | col30 | real | real | 27 | 0 | col31 | smallint | smallint | 28 | 0 | col32 | smallint | smallint | 29 | 0 | col33 | integer | integer | 30 | 0 | col34 | text | varchar(65535) | 31 | 0 | col35 | time without time zone | varchar(65535) | 32 | 0 | col36 | time with time zone | varchar(65535) | 33 | 0 | col37 | timestamp without time zone | timestamp without time zone | 34 | 0 | col38 | timestamp with time zone | timestamp with time zone | 35 | 0 | col39 | tsquery | varchar(65535) | 36 | 0 | col40 | tsvector | varchar(65535) | 37 | 0 | col41 | txid_snapshot | varchar(65535) | 38 | 0 | col42 | uuid | varchar(65535) | 39 | 0 | col43 | xml | varchar(65535) | 40 | 0 |

\ df [anptw] [S+] [POLA]

Daftar fungsi dari berbagai jenis. Perintah\df, misalnya, mengembalikan daftar fungsi. Hasilnya termasuk properti seperti nama, tipe data yang dikembalikan, hak akses, dan metadata tambahan. Jenis fungsi dapat mencakup pemicu, prosedur tersimpan, fungsi jendela dan jenis lainnya. Ketika Anda menambahkan S+ ke perintah, misalnya\dfantS+, kolom metadata tambahan disertakan, sepertiowner,security, danaccess privileges.

\ dL [S+] [POLA]

Daftar data tentang bahasa prosedural yang terkait dengan database. Informasi termasuk nama, seperti plpgsql, dan metadata tambahan, yang mencakup apakah itu tepercaya, hak akses, dan deskripsi. Contoh panggilan adalah, misalnya\dLS+, yang mencantumkan bahasa dan propertinya. Saat Anda menambahkan S+ ke perintah, kolom metadata tambahan disertakan, seperti call handler danaccess privileges.

Hasil sampel:

List of languages name | trusted | internal language | call handler | validator | access privileges | description -----------+---------+-------------------+-------------------------+------------------------------------------------------------+-------------------+-------------------------------- c | f | t | - | fmgr_c_validator(oid) | | Dynamically-loaded C functions exfunc | f | f | exfunc_call_handler() | - | rdsdb=U/rdsdb | internal | f | t | - | fmgr_internal_validator(oid) | | Built-in functions mlfunc | f | f | mlfunc_call_handler() | - | rdsdb=U/rdsdb | plpgsql | t | f | plpgsql_call_handler() | plpgsql_validator(oid) | | plpythonu | f | f | plpython_call_handler() | plpython_compiler(cstring,cstring,cstring,cstring,cstring) | rdsdb=U/rdsdb | sql | t | t | - | fmgr_sql_validator(oid) | =U/rdsdb | SQL-language functions

\ dm [S+] [POLA]

Daftar tampilan yang terwujud. Misalnya, mencant \dmS+ umkan tampilan yang terwujud dan propertinya. Saat Anda menambahkan S+ ke perintah, kolom metadata tambahan disertakan.

\ dn [S+] [POLA]

Daftar skema. Ketika Anda menambahkan S+ ke perintah, misalnya\dnS+, kolom metadata tambahan disertakan, seperti description danaccess privileges.

\ dp [POLA]

Mencantumkan hak akses tabel, tampilan, dan urutan.

\ dt [S+] [POLA]

Daftar tabel. Ketika Anda menambahkan S+ ke perintah, misalnya\dtS+, kolom metadata tambahan disertakan, seperti description dalam kasus ini.

\ du

Daftar pengguna untuk database. Termasuk nama dan peran mereka, seperti Superuser, dan atribut.

\ dv [S+] [POLA]

Daftar tampilan. Termasuk skema, tipe, dan data pemilik. Ketika Anda menambahkan S+ ke perintah, misalnya\dvS+, kolom metadata tambahan disertakan.

\ H

Menghidupkan keluaran HTML. Ini berguna untuk mengembalikan hasil yang diformat dengan cepat. Misalnya, select * from sales; \H mengembalikan hasil dari tabel penjualan, dalam HTML. Untuk beralih kembali ke hasil tablular, gunakan\q, atau diam.

\ i

Menjalankan perintah dari file. Misalnya, dengan asumsi Anda memiliki rsql_steps.sql di direktori kerja Anda, berikut ini menjalankan perintah dalam file:\i rsql_steps.sql.

\ l [+] [POLA]

Daftar database. Termasuk pemilik, pengkodean, dan informasi tambahan.

\ q

Quit, atau \q perintah, keluar dari sesi database dan keluar dari RSQL.

\ sv [+] NAMA TAMPILAN

Menampilkan definisi tampilan.

\ waktu

Menunjukkan waktu berjalan, untuk kueri, misalnya.

\ z [POLA]

Output yang sama dengan\ dp.

\?

Menunjukkan informasi bantuan. Parameter opsional menentukan item yang akan dijelaskan.

\ KELUAR

Melepaskan semua sesi database dan keluar dari Amazon Redshift RSQL. Selain itu, Anda dapat menentukan kode keluar opsional. Misalnya, \EXIT 15 akan keluar dari terminal Amazon Redshift RSQL dan mengembalikan kode keluar 15.

Contoh berikut menunjukkan output dari koneksi dan keluar dari RSQL.

% rsql -D testuser DSN Connected DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.34.1000 Rsql Version: 1.0.1 Redshift Version: 1.0.29306 Type "help" for help. (testcluster) user1@dev=# \exit 15 % echo $? 15

\ EKSPOR

Menentukan nama file ekspor yang digunakan RSQL untuk menyimpan informasi database yang dikembalikan oleh pernyataan SQL SELECT berikutnya.

export_01.sql

\export report file='E:\\accounts.out' \rset rformat off \rset width 1500 \rset heading "General Title" \rset titledashes on select * from td_dwh.accounts; \export reset

Keluaran konsol

Rformat is off. Target width is 1500. Heading is set to: General Title Titledashes is on. (exported 40 rows)

\ MASUK

Menghubungkan ke database. Anda dapat menentukan parameter koneksi menggunakan sintaks posisi atau sebagai string koneksi.

Sintaks perintah adalah sebagai berikut: \logon {[DBNAME|- USERNAME|- HOST|- PORT|- [PASSWORD]] | conninfo}

DBNAMEIni adalah nama database untuk terhubung. Ini USERNAME adalah nama pengguna untuk terhubung sebagai. Default HOST nya adalahlocalhost. Default PORT nya adalah5439.

Ketika nama host ditentukan dalam \LOGON perintah, itu menjadi nama host default untuk \LOGON perintah tambahan. Untuk mengubah nama host default, tentukan yang baru HOST di \LOGON perintah tambahan.

Contoh keluaran dari \LOGON perintah user1 berikut.

(testcluster) user1@redshiftdb=# \logon dev DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.27.1000 Rsql Version: 1.0.1 You are now connected to database "dev" as user "user1". (testcluster) user1@dev=#

Contoh keluaran untuk pengguna2.

(testcluster) user1@dev=# \logon dev user2 testcluster2.example.com Password for user user2: DBMS Name: Amazon Redshift Driver Name: Amazon Redshift ODBC Driver Driver Version: 1.4.27.1000 Rsql Version: 1.0.1 You are now connected to database "dev" as user "user2" on host "testcluster2.example.com" at port "5439". (testcluster2) user2@dev=#

\ KOMENTAR

Perpanjangan dari \echo perintah. \REMARKmencetak string yang ditentukan ke aliran keluaran. \REMARK diper \echo luas dengan menambahkan kemampuan untuk memutus output melalui baris terpisah.

Contoh berikut menunjukkan output dari perintah.

(testcluster) user1@dev=# \remark 'hello//world' hello world

\ RSET

Perintah \rset menetapkan parameter perintah dan variabel. \rsetmemiliki mode interaktif dan batch. <arg>Itu tidak mendukung opsi sebagai opsi bash, seperti -x, atau argumen, misalnya --.

Ini menetapkan variabel, seperti berikut ini:

  • TINGKAT KESALAHAN

  • HEADING dan RTITLE

  • RFORMAT

  • MAXERROR

  • BERJUDUL

  • LEBAR

Contoh berikut menentukan judul.

\rset heading "Winter Sales Report"

Untuk contoh lebih lanjut tentang cara menggunakan\rset, Anda dapat menemukan beberapa di Variabel RSQL Amazon Redshift topik.

\ JALANKAN

Menjalankan skrip Amazon Redshift RSQL yang terdapat dalam file yang ditentukan. \RUNmemperluas \i perintah dengan menambahkan opsi untuk melewati baris header dalam file.

Jika nama file menyertakan koma, titik koma, atau spasi, lampirkan dalam tanda kutip tunggal. Selain itu, jika teks mengikuti nama file, lampirkan dalam tanda kutip. Di UNIX, nama file peka huruf besar. Di Windows, nama file tidak peka huruf besar/kecil.

Contoh berikut menunjukkan output dari perintah.

(testcluster) user1@dev=# \! cat test.sql select count(*) as lineitem_cnt from lineitem; select count(*) as customer_cnt from customer; select count(*) as orders_cnt from orders; (testcluster) user1@dev=# \run file=test.sql lineitem_cnt -------------- 4307207 (1 row) customer_cnt -------------- 37796166 (1 row) orders_cnt ------------ 0 (1 row) (testcluster) user1@dev=# \run file=test.sql skip=2 2 records skipped in RUN file. orders_cnt ------------ 0 (1 row)

\ OS

Alias untuk \! perintah. \OSmenjalankan perintah sistem operasi yang diteruskan sebagai parameter. Kontrol kembali ke Amazon Redshift RSQL setelah perintah dijalankan. Misalnya, Anda dapat menjalankan perintah berikut untuk mencetak waktu tanggal sistem saat ini dan kembali ke terminal RSQL:\os date.

(testcluster) user1@dev=# \os date Tue Sep 7 20:47:54 UTC 2021

\ GO

Perintah baru untuk Amazon Redshift RSQL. \GOTOmelewatkan semua perintah intervensi dan melanjutkan pemrosesan pada yang ditentukan. \LABEL Itu \LABEL harus menjadi referensi ke depan. Anda tidak dapat melompat ke \LABEL yang secara leksikal mendahului. \GOTO

Berikut menampilkan contoh output.

(testcluster) user1@dev=# \! cat test.sql select count(*) as cnt from lineitem \gset select :cnt as cnt; \if :cnt > 100 \goto LABELB \endif \label LABELA \remark 'this is label LABELA' \label LABELB \remark 'this is label LABELB' (testcluster) user1@dev=# \i test.sql cnt --------- 4307207 (1 row) \label LABELA ignored \label LABELB processed this is label LABELB

\ LABEL

Perintah baru untuk Amazon Redshift RSQL. \LABELmenetapkan titik masuk untuk menjalankan program, sebagai target untuk \GOTO perintah.

Berikut ini menunjukkan contoh output dari perintah.

(testcluster) user1@dev=# \! cat test.sql select count(*) from lineitem limit 5; \goto LABELB \remark "this step was skipped by goto label"; \label LABELA \remark 'this is label LABELA' \label LABELB \remark 'this is label LABELB' (testcluster) user1@dev=# \i testgoto.sql count 4307193 (1 row) \label LABELA ignored \label LABELB processed this is label LABELB

\ IF (\ ELSEIF,\ ELSE,\ ENDIF)

\IFdan perintah terkait secara kondisional menjalankan bagian dari skrip input. Perpanjangan dari perintah PSQL \if (\elif,\else,\endif). \IFdan \ELSEIF mendukung ekspresi boolean termasukAND, OR dan NOT kondisi.

Berikut ini menunjukkan contoh output dari perintah.

(testcluster) user1@dev=# \! cat test.sql SELECT query FROM stv_inflight LIMIT 1 \gset select :query as query; \if :query > 1000000 \remark 'Query id is greater than 1000000' \elseif :query = 1000000 \remark 'Query id is equal than 1000000' \else \remark 'Query id is less than 1000000' \endif (testcluster) user1@dev=# \i test.sql query -------- 994803 (1 row) Query id is less than 1000000

Gunakan ERRORCODE dalam logika percabangan Anda.

\if :'ERRORCODE' = '00000' \remark 'The statement was executed without error' \else \remark :LAST_ERROR_MESSAGE \endif

Gunakan \GOTO di dalam \IF blok untuk mengontrol bagaimana kode dijalankan.