CREARE UN MODELLO - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog.

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

CREARE UN MODELLO

Crea modelli riutilizzabili per comandi Amazon Redshift come. COPY I modelli memorizzano i parametri di uso comune a cui è possibile fare riferimento in più esecuzioni di comandi, migliorando la coerenza e riducendo la specificazione manuale dei parametri.

I modelli eliminano la necessità di specificare ripetutamente gli stessi parametri di formattazione in più operazioni, mentre i percorsi di origine, le tabelle di destinazione e l'autorizzazione possono variare tra le operazioni.

Privilegi richiesti

Per creare un modello, è necessario disporre di uno dei seguenti elementi:

  • Privilegi di superutente

  • Autorizzazione CREATE sullo schema in cui si desidera creare il modello o autorizzazione CREATE con ambito sugli schemi del database in cui si desidera creare il modello

Sintassi

CREATE [ OR REPLACE ] TEMPLATE [database_name.][schema_name.]template_name FOR COPY [ AS ] [ [ FORMAT ] [ AS ] data_format ] [ parameter [ argument ] [ , ... ] ];

Parameters

O SOSTITUISCI

Se nel database e nello schema specificati esiste già un modello con lo stesso nome, il modello esistente viene sostituito. È possibile sostituire un modello solo con un nuovo modello che definisca lo stesso tipo di operazione, ad esempio COPY. È necessario disporre dei privilegi necessari per sostituire un modello.

database_name

(Facoltativo) Il nome del database in cui verrà creato il modello. Se non viene specificato, il modello viene creato nel database corrente.

Se il database o lo schema non esiste, il modello non viene creato e l'istruzione restituisce un errore. Non è possibile creare modelli nei database di sistema template0template1,padb_harvest, osys:internal.

schema_name

(Facoltativo) Il nome dello schema in cui verrà creato il modello. Se non viene specificato, il modello viene creato nello schema corrente.

Se viene fornito un nome di schema, il nuovo modello viene creato in quello schema (presupponendo che il creatore abbia accesso allo schema). Il nome del modello deve essere un nome univoco per quello schema.

nome_modello

Il nome del modello da creare. Facoltativamente, il nome del modello può essere qualificato con il nome del database e dello schema. Nell'esempio seguente, il nome del database èdemo_database, il nome dello schema è demo_schema e il nome del modello ètest. Per ulteriori informazioni sui nomi validi, consultare Nomi e identificatori.

CREATE TEMPLATE demo_database.demo_schema.test FOR COPY AS CSV;
COPY

Specifica il tipo di comando Redshift per il quale viene creato il modello. Attualmente è supportato solo il comando COPY.

[[FORMAT] [AS] data_format]

Si tratta di un parametro facoltativo. Questo specifica il formato dei dati per le operazioni COPY.

[parametro [argomento]]

Qualsiasi parametro valido per il comando redshift specificato.

Ad esempio, i modelli per il comando COPY possono includere:

Per un elenco completo dei parametri supportati, vedere COPY command.

Note per l’utilizzo

  • Per impostazione predefinita, tutti gli utenti hanno i privilegi CREATE e USAGE nello schema PUBLIC. Per impedire agli utenti di creare oggetti nello schema PUBLIC di un database, utilizza il comando REVOKE per rimuovere tale privilegio.

  • Quando un parametro esiste sia nel modello che nel comando, il parametro del comando ha la precedenza.

  • I modelli sono oggetti di database e seguono le regole standard di denominazione e autorizzazione degli oggetti Redshift. Per ulteriori informazioni sui nomi validi, consultare Nomi e identificatori.

  • I modelli non possono contenere le specifiche del file manifesto per COPY il comando.

Limitazioni

  • È necessario specificare almeno un parametro durante la creazione di un modello.

  • Parametri esclusi: i parametri specifici del comando come i percorsi di origine, le tabelle di destinazione, le credenziali di autorizzazione e le specifiche dei file manifesto non possono essere inclusi nei modelli. Questi parametri devono essere specificati nel comando effettivo.

  • Numero massimo di modelli per cluster: è possibile creare un massimo di 1.000 modelli per cluster. Questo limite si applica al numero totale di modelli in tutti i database e gli schemi del cluster.

  • Riferimenti tra database: non è possibile fare riferimento ai modelli tra database.

  • Condivisione dei dati: i modelli non possono essere inclusi nelle condivisioni di dati. I modelli devono essere creati separatamente in ogni cluster in cui sono necessari.

Esempi

L'esempio seguente crea un modello per il comando COPY

CREATE TEMPLATE test_schema.demo_template FOR COPY AS FORMAT JSON 'auto' NULL AS '' MAXERROR 100;

Usa MOSTRA MODELLO per ottenere la definizione del modello:

SHOW TEMPLATE test_schema.demo_template; CREATE OR REPLACE TEMPLATE dev.test_schema.demo_template FOR COPY AS FORMAT AS JSON 'auto' NULL '' MAXERROR 100;

Interroga la vista SYS_REDSHIFT_TEMPLATE del sistema per ottenere maggiori dettagli su un modello.

SELECT * FROM SYS_REDSHIFT_TEMPLATE; database_name | schema_name | template_name | template_type | create_time | last_modified_time | owner_id | last_modified_by | template_parameters ---------------+-------------+---------------+---------------+----------------------------+----------------------------+----------+------------------+--------------------- dev | test_schema | demo_template | 1 | 2025-12-17 20:06:01.944171 | 2025-12-17 20:06:01.944171 | 1 | 1 | { "JSON": "auto", "MAXERROR": 100, "NULL": "" }