Perintah meta Amazon Redshift RSQL - Amazon Redshift

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

Perintah meta Amazon Redshift RSQL

Perintah RSQL meta Amazon Redshift 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 +]

Daftar tabel buatan pengguna lokal, tampilan reguler, tampilan yang mengikat akhir, dan tampilan terwujud. \dS juga mencantumkan tabel dan tampilan\d, seperti, tetapi objek sistem disertakan dalam catatan yang dikembalikan. +Hasil di kolom metadata tambahan description untuk semua objek yang terdaftar. Berikut ini menunjukkan catatan sampel 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 +] NAME

Menjelaskan tabel, tampilan, atau indeks. Termasuk nama kolom dan jenis. Ini juga menyediakan diststyle, konfigurasi cadangan, membuat tanggal (tabel dibuat setelah Oktober 2018), dan kendala. Misalnya, \dS+ sample mengembalikan properti objek. Menambahkan S+ hasil di 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 berupaKEY,AUTO, EVEN atauALL.

Backup 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 menampilkan n/a (Tidak Tersedia).

Kendala Unik mencantumkan kendala kunci unik dan primer di atas meja.

Kendala kunci asing mencantumkan kendala kunci asing di atas meja.

\ dC [+] [PATTERN]

Daftar gips. 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] [PATTERN]

Menampilkan deskripsi objek yang tidak ditampilkan di tempat lain.

\ de

Daftar tabel eksternal. Ini termasuk tabel dalam katalog AWS Glue data, Hive Metastore dan tabel federasi dari Amazon RDS /Aurora My, RDS Amazon/Aurora SQL Postgre dan Amazon SQL Redshift tabel datashare.

\ 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 SQL eksternal Postgre.

# \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+] [] PATTERN

Daftar fungsi dari berbagai jenis. Perintah\df, misalnya, mengembalikan daftar fungsi. Hasil mencakup 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,, dan. security access privileges

\ dL [S+] [] PATTERN

Daftar data tentang bahasa prosedural yang terkait dengan database. Informasi mencakup nama, seperti plpgsql, dan metadata tambahan, yang mencakup apakah itu tepercaya, hak akses, dan deskripsi. Contoh panggilan, misalnya\dLS+, yang mencantumkan bahasa dan propertinya. Ketika Anda menambahkan S+ ke perintah, kolom metadata tambahan disertakan, seperti dan. call handler access 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+] [] PATTERN

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

\ dn [S+] [] PATTERN

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

\ dp [] PATTERN

Daftar hak akses tabel, tampilan, dan urutan.

\ dt [S+] [PATTERN]

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+] [] PATTERN

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

\ H

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

\ saya

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 [+] [PATTERN]

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

\ q

Keluar, atau \q perintah, log off sesi database dan keluarRSQL.

\ sv [+] VIEWNAME

Menunjukkan definisi tampilan.

\ waktu

Menunjukkan waktu berjalan, untuk kueri, misalnya.

\ z [PATTERN]

Output yang sama dengan\ dp.

\?

Menampilkan informasi bantuan. Parameter opsional menentukan item untuk menjelaskan.

\EXIT

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

Contoh berikut menunjukkan output dari koneksi dan keluar dariRSQL.

% 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

\EXPORT

Menentukan nama file ekspor yang RSQL menggunakan untuk menyimpan informasi database dikembalikan oleh SQL SELECT pernyataan 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)

\LOGON

Terhubung 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 ke. USERNAMEItu adalah nama pengguna untuk terhubung sebagai. HOSTDefaultnya adalahlocalhost. PORTDefaultnya 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 dalam \LOGON perintah tambahan.

Contoh output dari \LOGON perintah untuk 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=#

Output sampel 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=#

\REMARK

Perpanjangan \echo perintah. \REMARKmencetak string yang ditentukan ke aliran output. \REMARK meluas \echo dengan menambahkan kemampuan untuk memecah output melalui jalur 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:

  • ERRORLEVEL

  • HEADINGdan RTITLE

  • RFORMAT

  • MAXERROR

  • TITLEDASHES

  • WIDTH

Contoh berikut menentukan judul.

\rset heading "Winter Sales Report"

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

\RUN

Menjalankan RSQL skrip Amazon Redshift 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. DiUNIX, nama file peka huruf besar/kecil. 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

Sebuah 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 RSQL terminal:\os date.

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

\GOTO

Perintah baru untuk Amazon RedshiftRSQL. \GOTOmelewatkan semua perintah intervensi dan melanjutkan pemrosesan pada yang ditentukan. \LABEL \LABELHarus 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 RedshiftRSQL. \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

\ JIKA (\ELSEIF,\ELSE,\ENDIF)

\IFdan perintah terkait menjalankan bagian dari skrip input secara kondisional. 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 dalam \IF blok untuk mengontrol bagaimana kode dijalankan.