Creare uno schema - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

Creare uno schema

Dopo aver creato un nuovo database, è possibile creare un nuovo schema nel database corrente. Uno schema è uno spazio dei nomi che contiene gli oggetti del database specificati, come le tabelle, le viste e le funzioni definite dall'utente (FDU). Un database può contenere uno o più schemi e ogni schema appartiene a un solo database. Due schemi possono avere oggetti diversi che condividono lo stesso nome.

È possibile creare più schemi nello stesso database per organizzare i dati nel modo desiderato o per raggruppare i dati in modo funzionale. Ad esempio, è possibile creare uno schema per memorizzare tutti i dati dell'area di gestione temporanea e un altro schema per memorizzare tutte le tabelle di reporting. È inoltre possibile creare schemi diversi per memorizzare i dati relativi a diversi business group che si trovano nello stesso database. Ogni schema può memorizzare oggetti di database diversi, come le tabelle, le viste e le funzioni definite dall'utente (FDU). Inoltre, è possibile creare schemi con la clausola AUTHORIZATION. Questa clausola conferisce la proprietà a un utente specificato o imposta una quota sulla quantità massima di spazio su disco che lo schema specificato può utilizzare.

Amazon Redshift crea automaticamente uno schema chiamato public per ogni nuovo database. Quando non si specifica il nome dello schema durante la creazione di oggetti di database, gli oggetti vanno nello schema public.

Per accedere a un oggetto in uno schema, qualificare l'oggetto utilizzando la notazione schema_name.table_name. Il nome qualificato dello schema è costituito dal nome dello schema e dal nome della tabella separati da un punto. Ad esempio, è possibile avere uno schema sales che ha una tabella price e uno schema inventory che ha una tabella price. Quando si fa riferimento alla tabella price, è necessario qualificarla come sales.price o inventory.price.

Nell'esempio seguente viene creato uno schema denominato SALES per l'utente GUEST.

CREATE SCHEMA SALES AUTHORIZATION GUEST;

Per informazioni sulle opzioni di altri comandi, consultare CREATE TABLE nella Guida per gli sviluppatori di database di Amazon Redshift.

Per visualizzare l'elenco degli schemi nel database, emettere il comando seguente.

select * from pg_namespace;

L'output visualizzato dovrebbe essere simile al seguente:

nspname | nspowner | nspacl ----------------------+----------+-------------------------- sales | 100 | pg_toast | 1 | pg_internal | 1 | catalog_history | 1 | pg_temp_1 | 1 | pg_catalog | 1 | {rdsdb=UC/rdsdb,=U/rdsdb} public | 1 | {rdsdb=UC/rdsdb,=U/rdsdb} information_schema | 1 | {rdsdb=UC/rdsdb,=U/rdsdb}

Per ulteriori informazioni su come eseguire query sulle tabelle di catalogo, consultare Query sulle tabelle di catalogo nella Guida per gli sviluppatori di database di Amazon Redshift.

Utilizzare l'istruzione GRANT per concedere autorizzazioni agli utenti per gli schemi.

Nell’esempio seguente viene concesso il privilegio all’utente GUEST per selezionare i dati da tutte le tabelle o viste nello schema SALES utilizzando un’istruzione SELECT.

GRANT SELECT ON ALL TABLES IN SCHEMA SALES TO GUEST;

Nell’esempio seguente vengono concessi tutti i privilegi disponibili all’utente GUEST in una sola volta.

GRANT ALL ON SCHEMA SALES TO GUEST;