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

CREATE LIBRARY

Installa una libreria Python, che gli utenti possono incorporare quando creano una funzione definita dall'utente UDF () con il comando. CREATE FUNCTION La dimensione totale delle librerie installate dall'utente non può superare i 100 MB.

CREATELIBRARYnon può essere eseguito all'interno di un blocco di transazione (BEGIN...). END Per ulteriori informazioni sulle transazioni, consultare Isolamento serializzabile.

Amazon Redshift supporta Python versione 2.7. Per ulteriori informazioni, consultare www.python.org.

Per ulteriori informazioni, consulta Esempio: importazione di moduli di libreria Python personalizzati.

Privilegi richiesti

Di seguito sono riportati i privilegi richiesti per CREATELIBRARY:

  • Superuser

  • Utenti con il CREATE LIBRARY privilegio o con il privilegio della lingua specificata

Sintassi

CREATE [ OR REPLACE ] LIBRARY library_name LANGUAGE plpythonu FROM { 'https://file_url' | 's3://bucketname/file_name' authorization [ REGION [AS] 'aws_region'] IAM_ROLE { default | ‘arn:aws:iam::<Account AWS-id>:role/<role-name>’ } }

Parametri

OPPURE REPLACE

Specifica che se una libreria con lo stesso nome è già esistente, la libreria esistente viene sostituita. REPLACEsi impegna immediatamente. Se un UDF file che dipende dalla libreria viene eseguito contemporaneamente, UDF potrebbe fallire o restituire risultati imprevisti, anche se UDF è in esecuzione all'interno di una transazione. Devi essere il proprietario o un utente con privilegi avanzati per sostituire una libreria.

library_name

Il nome della libreria da installare. Non è possibile creare una libreria che contiene un modulo con lo stesso nome di un modulo della libreria standard Python o un modulo Python preinstallato in Amazon Redshift. Se una libreria esistente installata dall'utente utilizza lo stesso pacchetto Python della libreria da installare, è necessario eliminare la libreria esistente prima di installare la nuova libreria. Per ulteriori informazioni, consulta Supporto del linguaggio Python per UDFs.

LANGUAGEplpythonu

Il linguaggio da usare. Python (plpythonu) è l'unico linguaggio supportato. Amazon Redshift supporta Python versione 2.7. Per ulteriori informazioni, consultare www.python.org.

FROM

La posizione del file della libreria. Puoi specificare un bucket Amazon S3 e il nome dell'oggetto oppure puoi specificare un URL per scaricare il file da un sito Web pubblico. La libreria deve essere compressa sotto forma di file .zip. Per ulteriori informazioni, consultare Creazione e installazione di moduli Python nella documentazione Python.

https://file_url

Il URL per scaricare il file da un sito Web pubblico. URLPuò contenere fino a tre reindirizzamenti. Di seguito è riportato un esempio di file. URL

'https://www.example.com/pylib.zip'
s3://bucket_name/file_name

Il percorso per un singolo oggetto Amazon S3 che contiene il file della libreria. Di seguito è illustrato un esempio del percorso di un oggetto Amazon S3.

's3://amzn-s3-demo-bucket/my-pylib.zip'

Se si specifica un bucket Amazon S3, è necessario anche fornire le credenziali per un utente AWS che dispone dell'autorizzazione per scaricare il file.

Importante

Se il bucket Amazon S3 non si trova nella stessa AWS regione del cluster Amazon Redshift, devi utilizzare l'REGIONopzione per specificare la AWS regione in cui si trovano i dati. Il valore per aws_region deve corrispondere a una AWS regione elencata nella tabella nella descrizione del parametro per il comando. REGION COPY

authorization

Una clausola che indica il metodo che il cluster utilizza per l'autenticazione e l'autorizzazione ad accedere al bucket Amazon S3 contenente il file della libreria. Il cluster deve disporre dell'autorizzazione per accedere ad Amazon S3 con le azioni LIST andGET.

La sintassi per l'autorizzazione è la stessa dell'autorizzazione del COPY comando. Per ulteriori informazioni, consulta Parametri di autorizzazione.

IAM_ROLE { default | ‘arn:aws:iam::<Account AWS-id>:role/<role-name>

Utilizza la parola chiave predefinita per fare in modo che Amazon Redshift utilizzi il IAM ruolo impostato come predefinito e associato al cluster durante l'esecuzione del CREATE LIBRARY comando.

Usa Amazon Resource Name (ARN) per un IAM ruolo utilizzato dal tuo cluster per l'autenticazione e l'autorizzazione. Se specifichi IAM _ROLE, non puoi utilizzare ACCESS _ KEY _ID e SECRET _ ACCESS _ KEYTOKEN, SESSION _ oCREDENTIALS.

Facoltativamente, se il bucket Amazon S3 utilizza la crittografia lato server, fornisci la chiave di crittografia nella stringa credentials-args. Se usi credenziali di sicurezza temporanee, fornisci il token temporaneo nella stringa credentials-args.

Per ulteriori informazioni, consulta Credenziali di sicurezza temporanee.

REGION[AS] aws_region

La AWS regione in cui si trova il bucket Amazon S3. REGIONè obbligatorio quando il bucket Amazon S3 non si trova nella stessa AWS regione del cluster Amazon Redshift. Il valore per aws_region deve corrispondere a una AWS regione elencata nella tabella nella descrizione del parametro per il REGION comando. COPY

Per impostazione predefinita, CREATE LIBRARY si presuppone che il bucket Amazon S3 si trovi nella AWS stessa regione del cluster Amazon Redshift.

Esempi

I seguenti due esempi installano il modulo Python urlparse che è compresso in un file denominato urlparse3-1.0.3.zip.

Il comando seguente installa una UDF libreria denominata f_urlparse da un pacchetto che è stato caricato in un bucket Amazon S3 situato nella regione degli Stati Uniti orientali.

create library f_urlparse language plpythonu from 's3://amzn-s3-demo-bucket/urlparse3-1.0.3.zip' credentials 'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>' region as 'us-east-1';

L'esempio seguente installa una libreria denominata f_urlparse da un file di libreria su un sito Web.

create library f_urlparse language plpythonu from 'https://example.com/packages/urlparse3-1.0.3.zip';