CREATE LIBRARY - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

CREATE LIBRARY

Installiert eine Python-Bibliothek, die Benutzern beim Erstellen einer benutzerdefinierten Funktion (UDF) mit dem CREATE FUNCTION Befehl zur Verfügung steht. Die Gesamtgröße von Bibliotheken, die von Benutzern installiert werden, darf 100 MB nicht überschreiten.

CREATELIBRARYkann nicht innerhalb eines Transaktionsblocks (BEGIN...END) ausgeführt werden. Weitere Informationen Transaktionen finden Sie unter Serialisierbare Isolierung.

Amazon Redshift unterstützt Python Version 2.7. Weitere Informationen erhalten Sie unter www.python.org.

Weitere Informationen finden Sie unter Beispiel: Importieren von benutzerdefinierten Python-Bibliotheksmodulen.

Erforderliche Berechtigungen

Folgende Rechte sind erforderlich für CREATELIBRARY:

  • Superuser

  • Benutzer mit der CREATE LIBRARY Berechtigung oder mit der Berechtigung der angegebenen Sprache

Syntax

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

Parameter

ODER REPLACE

Gibt an, dass die vorhandene Bibliothek ersetzt wird, wenn bereits eine Bibliothek mit dem gleichen Namen vorhanden ist. REPLACEbegeht sofort. Wenn eineUDF, die von der Bibliothek abhängt, gleichzeitig ausgeführt wird, schlägt sie UDF möglicherweise fehl oder gibt unerwartete Ergebnisse zurück, selbst wenn die innerhalb einer Transaktion ausgeführt UDF wird. Sie müssen der Besitzer oder ein Superuser sein, um eine Bibliothek zu ersetzen.

library_name

Das Name der Bibliothek, die installiert werden soll. Die erstellten Bibliotheken dürfen jedoch nicht genauso heißen wie die integrierten Python-Standardbibliotheksmodule oder die vorinstallierten Amazon-Redshift-Python-Module. Wenn eine vorhandene, benutzerinstallierte Bibliothek dasselbe Python-Paket wie die Bibliothek verwendet, die installiert werden soll, müssen Sie die vorhandene Bibliothek entfernen, bevor Sie die neue Bibliothek installieren. Weitere Informationen finden Sie unter Python-Sprachunterstützung für UDFs.

LANGUAGEplpythonu

Die Sprache, die verwendet werden soll. Python (plpythonu) ist die einzige unterstützte Sprache. Amazon Redshift unterstützt Python Version 2.7. Weitere Informationen erhalten Sie unter www.python.org.

FROM

Der Speicherort der Bibliotheksdatei. Sie können einen Amazon S3 S3-Bucket und einen Objektnamen angeben, oder Sie können a angeben, URL um die Datei von einer öffentlichen Website herunterzuladen. Die Bibliothek muss als .zip-Datei gepackt sein. Weitere Informationen finden Sie unter Erstellen und Installieren von Python-Modulen in der Python-Dokumentation.

https://file_url

DerURL, um die Datei von einer öffentlichen Website herunterzuladen. Die URL kann bis zu drei Weiterleitungen enthalten. Das Folgende ist ein Beispiel für eine DateiURL.

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

Der Pfad zu einem einzelnen Amazon-S3-Objekt, das die Bibliotheksdatei enthält. Im Folgenden wird ein Beispiel für einen Amazon-S3-Objektpfad gezeigt.

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

Wenn Sie einen Amazon-S3-Bucket angeben, müssen Sie auch die Anmeldeinformationen für einen AWS -Benutzer angeben, der zum Herunterladen der Datei berechtigt ist.

Wichtig

Wenn sich der Amazon S3 S3-Bucket nicht in derselben AWS Region wie Ihr Amazon Redshift Redshift-Cluster befindet, müssen Sie die REGION Option verwenden, um die AWS Region anzugeben, in der sich die Daten befinden. Der Wert für aws_region muss mit einer AWS Region übereinstimmen, die in der Tabelle in der REGION Parameterbeschreibung für den Befehl aufgeführt ist. COPY

Autorisierung

Eine Klausel, die die Methode angibt, die der Cluster für die Authentifizierung und Autorisierung verwendet, um auf den Amazon-S3-Bucket zuzugreifen, der die Bibliotheksdatei enthält. Ihr Cluster muss über die Berechtigung verfügen, mit den GET Aktionen LIST und auf Amazon S3 zuzugreifen.

Die Syntax für die Autorisierung ist dieselbe wie für den COPY Befehl Authorization. Weitere Informationen finden Sie unter Autorisierungsparameter.

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

Verwenden Sie das Schlüsselwort default, damit Amazon Redshift die IAM Rolle verwendet, die als Standard festgelegt und dem Cluster zugeordnet ist, wenn der CREATE LIBRARY Befehl ausgeführt wird.

Verwenden Sie den Amazon-Ressourcennamen (ARN) für eine IAM Rolle, die Ihr Cluster für die Authentifizierung und Autorisierung verwendet. Wenn Sie IAM _ angebenROLE, können Sie ACCESS _ KEY _ID und _ SECRET _ KEYTOKEN, ACCESS SESSION _ oder CREDENTIALS nicht verwenden.

Wenn der Amazon-S3-Bucket serverseitige Verschlüsselung verwendet, können Sie optional den Verschlüsselungsschlüssel in der Zeichenfolge credentials-args angeben. Wenn Sie temporäre Sicherheitsanmeldeinformationen verwenden, geben Sie das temporäre Token in die credentials-args-Zeichenfolge ein.

Weitere Informationen finden Sie unter Temporäre Sicherheitsanmeldeinformationen.

REGION[AS] aws_region

Die AWS Region, in der sich der Amazon S3 S3-Bucket befindet. REGIONist erforderlich, wenn sich der Amazon S3 S3-Bucket nicht in derselben AWS Region wie der Amazon Redshift Redshift-Cluster befindet. Der Wert für aws_region muss mit einer AWS Region übereinstimmen, die in der Tabelle in der REGION Parameterbeschreibung für den Befehl aufgeführt ist. COPY

Geht standardmäßig CREATE LIBRARY davon aus, dass sich der Amazon S3 S3-Bucket in derselben AWS Region wie der Amazon Redshift Redshift-Cluster befindet.

Beispiele

In den folgenden beiden Beispielen wird das Python-Modul urlparse installiert, das in einer Datei namens urlparse3-1.0.3.zip gepackt ist.

Der folgende Befehl installiert eine UDF Bibliothek, die f_urlparse nach einem Paket benannt ist, das in einen Amazon S3 S3-Bucket in der Region USA Ost hochgeladen wurde.

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

Im folgenden Beispiel wird eine Bibliothek namens f_urlparse aus einer Bibliotheksdatei auf einer Website installiert.

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