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, qui est disponible pour que les utilisateurs l’intègrent lors de la création d’une fonction définie par l’utilisateur (UDF) avec la commande CREATE FUNCTION. La taille totale des bibliothèques installées par l’utilisateur ne peut pas dépasser 100 Mo.

CREATE LIBRARY ne peut pas être exécutée à l’intérieur d’un bloc de transaction (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 disposant du privilège CREATE LIBRARY ou du privilège du langage spécifié

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

OR 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. REPLACE valide immédiatement. Si une fonction UDF qui dépend de la bibliothèque s’exécute simultanément, la fonction UDF peut échouer ou renvoyer des résultats inattendus, même si la fonction UDF est en cours d’exécution au sein 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 plus d'informations, consultez Support du langage Python pour UDFs.

LANGUAGE plpythonu

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 le nom d’objet ou vous pouvez spécifier une 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

URL pour télécharger le fichier depuis un site web public. L’URL peut contenir jusqu’à trois redirections. Voici un exemple d’URL de fichier.

'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'option REGION 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 commande COPY.

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 avoir l’autorisation d’accéder au compartiment Amazon S3 avec les actions LIST et GET.

La syntaxe de l’autorisation est identique à celle de la commande COPY. Pour plus d'informations, consultez 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 rôle IAM défini comme rôle par défaut et associé au cluster lorsque la commande CREATE LIBRARY s’exécute.

Utilisez l’Amazon Resource Name (ARN) d’un rôle IAM que votre cluster utilise pour l’authentification et l’autorisation. Si vous spécifiez IAM_ROLE, vous ne pouvez pas utiliser ACCESS_KEY_ID et SECRET_ACCESS_KEY, SESSION_TOKEN ni CREDENTIALS.

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 plus d'informations, consultez informations d’identification de sécurité temporaires.

REGION [AS] région_aws

AWS Région dans laquelle se trouve le compartiment Amazon S3. REGION est 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 commande COPY.

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 bibliothèque UDF nommée f_urlparse à partir d’un package qui a été téléchargé sur un compartiment Amazon S3 situé dans la région USA Est.

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';