CREATE LIBRARY - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

CREATE LIBRARY

Installe une bibliothèque Python que les utilisateurs peuvent intégrer lors de la création d'une fonction définie par l'utilisateur (UDF) avec la CREATE FUNCTION commande. La taille totale des bibliothèques installées par l’utilisateur ne peut pas dépasser 100 Mo.

CREATELIBRARYne peut pas être exécuté dans un bloc de transactions (BEGIN...END). Pour plus d’informations sur les transactions, consultez Isolement sérialisable.

Amazon Redshift prend en charge Python version 2.7. Pour plus d’informations, consultez la page www.python.org.

Pour de plus amples informations, veuillez consulter Exemple : importation de modules de bibliothèque Python personnalisés.

Privilèges requis

Les privilèges suivants sont requis pour CREATE LIBRARY :

  • Superuser

  • Utilisateurs ayant le CREATE LIBRARY privilège ou le privilège de la langue spécifiée

Syntaxe

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::<Compte AWS-id>:role/<role-name>’ } }

Paramètres

OU REPLACE

Spécifie que si une bibliothèque portant le même nom que celui-ci existe déjà, la bibliothèque existante est remplacée. REPLACEs'engage immédiatement. Si un fichier UDF qui dépend de la bibliothèque s'exécute simultanément, il UDF peut échouer ou renvoyer des résultats inattendus, même s'il UDF est exécuté dans le cadre d'une transaction. Vous devez être le propriétaire ou un super-utilisateur pour remplacer une bibliothèque.

nom_bibliothèque

Nom de la bibliothèque à installer. Vous ne pouvez pas créer une bibliothèque qui contient un module avec le même nom qu’un module de la bibliothèque standard Python ou qu’un module Amazon Redshift préinstallé. Si une bibliothèque existante installée par l’utilisateur emploie le même package Python que la bibliothèque à installer, vous devez supprimer la bibliothèque existante avant d’installer la nouvelle bibliothèque. Pour de plus amples informations, veuillez consulter Support du langage Python pour UDFs.

LANGUAGEplpythonu

Langage à utiliser. Python (plpythonu) est le seul langage pris en charge. Amazon Redshift prend en charge Python version 2.7. Pour plus d’informations, consultez la page www.python.org.

FROM

Emplacement du fichier bibliothèque. Vous pouvez spécifier un compartiment Amazon S3 et un nom d'objet, ou vous pouvez spécifier un URL pour télécharger le fichier depuis un site Web public. La bibliothèque doit être empaquetée sous la forme d’un fichier .zip. Pour plus d’informations, consultez Création et installation des modules Python dans la documentation Python.

https://url_fichier

URLpour télécharger le fichier depuis un site Web public. Ils URL peuvent contenir jusqu'à trois redirections. Voici un exemple de fichierURL.

'https://www.example.com/pylib.zip'
s3://nom_compartiment/nom_fichier

Chemin d’accès vers un objet Amazon S3 qui contient le fichier bibliothèque. Voici un exemple de chemin d’objet Amazon S3.

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

Si vous spécifiez un compartiment Amazon S3, vous devez également fournir les informations d’identification pour un utilisateur AWS qui est autorisé à télécharger le fichier.

Important

Si le compartiment Amazon S3 ne réside pas dans la même AWS région que votre cluster Amazon Redshift, vous devez utiliser l'REGIONoption pour spécifier la AWS région dans laquelle se trouvent les données. La valeur de aws_region doit correspondre à une AWS région répertoriée dans le tableau de la description des REGION paramètres de la COPY commande.

authorization

Clause indiquant la méthode que votre cluster utilise pour l’authentification et l’autorisation afin d’accéder au compartiment Amazon S3 qui contient le fichier bibliothèque. Votre cluster doit être autorisé à accéder à Amazon S3 avec les GET actions LIST et.

La syntaxe de l'autorisation est la même que celle de l'autorisation de COPY commande. Pour de plus amples informations, veuillez consulter Paramètres d’autorisation.

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

Utilisez le mot clé par défaut pour qu'Amazon Redshift utilise le IAM rôle défini par défaut et associé au cluster lors de l'exécution de la CREATE LIBRARY commande.

Utilisez le nom de ressource Amazon (ARN) pour un IAM rôle utilisé par votre cluster pour l'authentification et l'autorisation. Si vous spécifiez IAM _ROLE, vous ne pouvez pas utiliser ACCESS _ KEY _ID et SECRET _ ACCESS _ KEYTOKEN, SESSION _ ouCREDENTIALS.

Le cas échéant, si le compartiment Amazon S3 utilise le chiffrement côté serveur, fournissez la clé de chiffrement dans la chaîne credentials-args. Si vous utilisez des informations d’identification de sécurité temporaires, fournissez le jeton temporaire dans la chaîne credentials-args.

Pour de plus amples informations, veuillez consulter informations d’identification de sécurité temporaires.

REGION[AS] aws_region

AWS Région dans laquelle se trouve le compartiment Amazon S3. REGIONest obligatoire lorsque le compartiment Amazon S3 ne se trouve pas dans la même AWS région que le cluster Amazon Redshift. La valeur de aws_region doit correspondre à une AWS région répertoriée dans le tableau de la description des REGION paramètres de la COPY commande.

Par défaut, CREATE LIBRARY suppose que le compartiment Amazon S3 est situé dans la même AWS région que le cluster Amazon Redshift.

Exemples

Les deux exemples suivants installent le module Python urlparse, qui est empaqueté dans un fichier nommé urlparse3-1.0.3.zip.

La commande suivante installe une UDF bibliothèque nommée f_urlparse à partir d'un package qui a été chargé dans un compartiment Amazon S3 situé dans la région de l'est des États-Unis.

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’exemple suivant installe une bibliothèque nommée f_urlparse à partir d’un fichier bibliothèque sur un site web.

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