Query sulle tabelle di catalogo - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Query sulle tabelle di catalogo

In generale, è possibile unire viste e tabelle di catalogo (relazioni i cui nomi iniziano con PG_) a viste e tabelle di Amazon Redshift.

Le tabelle di catalogo usano un numero di tipi di dati non supportati da Amazon Redshift. I tipi di dati seguenti sono supportati quando le query uniscono tabelle di catalogo alle tabelle di Amazon Redshift:

  • bool

  • "char"

  • float4

  • int2

  • int4

  • int8

  • name

  • oid

  • text

  • varchar

Se pertanto scrivi una query di unione che fa riferimento in modo esplicito o implicito a una colonna contenente un tipo di dati non supportato, la query restituisce un errore. Anche le funzioni SQL usate in alcune tabelle di catalogo non sono supportate, ad eccezione di quelle usate dalle tabelle PG_SETTINGS e PG_LOCKS.

Ad esempio, non è possibile eseguire query su PG_STATS in una istruzione join con una tabella di Amazon Redshift a causa di funzioni non supportate.

Le viste e le tabelle di catalogo seguenti forniscono informazioni utili che possono essere unite alle informazioni nelle tabelle di Amazon Redshift. Alcune tabelle permettono solo l'accesso parziale a causa di restrizioni relative ai tipi di dati e alle funzioni. Quando si esegue una query su tabelle accessibili parzialmente, fare riferimento alle colonne o selezionarle con attenzione.

Le tabelle seguenti sono completamente accessibili e non contengono funzioni o tipi non supportati:

Le tabelle seguenti sono parzialmente accessibili e contengono alcuni tipi e funzioni non supportati e colonne di testo troncate. I valori nelle colonne di testo sono troncati a valori varchar(256).

Le tabelle di catalogo non elencate non sono accessibili oppure è improbabile che siano utili per gli amministratori di Amazon Redshift. È possibile tuttavia eseguire una query su qualsiasi vista o tabella di catalogo se la query non richiede l'unione con una tabella di Amazon Redshift.

Puoi usare le colonne OID nelle tabelle di catalogo Postgres come colonne di unione. La condizione di unione pg_database.oid = stv_tbl_perm.db_id, ad esempio, corrisponde all'ID oggetto di database interno per ogni riga di PG_DATABASE con la colonna DB_ID visibile nella tabella STV_TBL_PERM. Le colonne OID sono chiavi primarie interne non visibili quando effettui la selezione nella tabella. Le viste di catalogo non hanno colonne OID.

Alcune funzioni di Amazon Redshift devono essere eseguite solo sui nodi di calcolo. Se una query fa riferimento a una tabella creata dall'utente, l'esecuzione di SQL avviene nei nodi di calcolo.

Una query che fa riferimento solo a tabelle di catalogo (tabelle con un prefisso PG, ad esempio PG_TABLE_DEF) o che non fa riferimento ad alcuna tabella viene eseguita esclusivamente sul nodo principale.

Se una query che usa una funzione di un nodo di calcolo non fa riferimento a una tabella definita dall'utente o a una tabella di sistema di Amazon Redshift, viene restituito il seguente errore.

[Amazon](500310) Invalid operation: One or more of the used functions must be applied on at least one user created table.