CREATE LIBRARY - Amazon Redshift

CREATE LIBRARY

Instala una biblioteca de Python, que esta disponible para que los usuarios la incorporen cuando crean una función definida por el usuario (UDF) con el comando CREATE FUNCTION. El tamaño total de las bibliotecas instaladas por el usuario no puede superar los 100 MB.

CREATE LIBRARY no puede ejecutarse dentro de un bloque de transacción (BEGIN … END). Para obtener más información acerca de las transacciones, consulte Aislamiento serializable.

Amazon Redshift es compatible con la versión 2.7 de Python. Para obtener más información, consulte www.python.org.

Para obtener más información, consulte Ejemplo: Importación de módulos personalizados desde la biblioteca de Python.

Privilegios necesarios

Los siguientes privilegios son necesarios para CREATE LIBRARY:

  • Superusuario

  • Usuarios con el privilegio CREATE LIBRARY o con el privilegio del lenguaje especificado

Sintaxis

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

Parámetros

OR REPLACE

Especifica que se reemplaza la biblioteca existente si ya existe una biblioteca con el mismo nombre. REPLACE se confirma inmediatamente. Si una UDF que depende de la biblioteca se ejecuta simultáneamente, es posible que la UDF falle o devuelva resultados inesperados, incluso si la UDF se ejecuta dentro de una transacción. Debe ser el propietario o un superusuario para reemplazar una biblioteca.

library_name

El nombre de la biblioteca que se instalará. No se puede crear una biblioteca que contenga un módulo con el mismo nombre que un módulo de la Biblioteca estándar de Python o un módulo de Python preinstalado en Amazon Redshift. Si una biblioteca existente instalada por el usuario utiliza el mismo paquete de Python que la biblioteca que se instalará, debe eliminar la biblioteca existente antes de instalar la biblioteca nueva. Para obtener más información, consulte Compatibilidad del lenguaje Python con las UDF.

LANGUAGE plpythonu

El lenguaje que se utilizará. Python (plpythonu) es el único lenguaje compatible. Amazon Redshift es compatible con la versión 2.7 de Python. Para obtener más información, consulte www.python.org.

FROM

La ubicación del archivo de biblioteca. Puede especificar un nombre de objeto y bucket de Amazon S3, o bien, puede especificar una dirección URL para descargar el archivo desde un sitio web público. La biblioteca debe comprimirse en la forma de un archivo .zip. Para obtener más información, consulte Building and Installing Python Modules en la documentación de Python.

https://file_url

El URL para descargar el archivo desde un sitio web público. El URL puede contener hasta tres redireccionamientos. A continuación se muestra un ejemplo del URL de un archivo.

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

Se trata de la ruta a un objeto único de Amazon S3 que contiene el archivo de la biblioteca. En el siguiente ejemplo, se muestra una ruta de objeto de Amazon S3.

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

Si especifica un bucket de Amazon S3, también debe proporcionar credenciales para un usuario de AWS que tenga permiso para descargar el archivo.

importante

Si el bucket de Amazon S3 no se encuentra en la misma región de AWS que el clúster de Amazon Redshift, debe utilizar la opción REGION para especificar la región de AWS en la que se encuentran los datos. El valor de aws_region debe coincidir con una región de AWS enumerada en la tabla en la descripción del parámetro REGION para el comando COPY.

authorization

Se trata de una cláusula que inicia el método que el clúster utiliza para la autenticación y la autorización con objeto de acceder al bucket de Amazon S3 que contiene el archivo de biblioteca. El clúster debe tener permisos para obtener acceso a Amazon S3 con las acciones LIST y GET.

La sintaxis de la autorización es la misma que para la autorización del comando COPY. Para obtener más información, consulte Parámetros de autorización.

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

Utilice la palabra clave predeterminada para que Amazon Redshift utilice el rol de IAM configurado como predeterminado y asociado al clúster cuando se ejecuta el comando CREATE LIBRARY.

Utilice el nombre de recurso de Amazon (ARN), de un rol de IAM que el clúster utiliza para la autenticación y la autorización. Si especifica IAM_ROLE, no puede utilizar ACCESS_KEY_ID, SECRET_ACCESS_KEY, SESSION_TOKEN ni CREDENTIALS.

De manera opcional, si el bucket de Amazon S3 utiliza cifrado de servidor, proporcione la clave de cifrado en la cadena credentials-args. Si utiliza credenciales de seguridad temporales, proporcione el token temporal en la cadena credentials-args.

Para obtener más información, consulte Credenciales de seguridad temporales.

REGION [AS] aws_region

Se trata de la región de AWS donde está ubicado el bucket de Amazon S3. REGION es necesario cuando el bucket de Amazon S3 no está en la misma región de AWS que el clúster de Amazon Redshift. El valor de aws_region debe coincidir con una región de AWS enumerada en la tabla en la descripción del parámetro REGION para el comando COPY.

De manera predeterminada, CREATE LIBRARY asume que el bucket de Amazon S3 está ubicado en la misma región de AWS que el clúster de Amazon Redshift.

Ejemplos

Los siguientes dos ejemplos instalan el módulo de Python urlparse, que está comprimido en un archivo llamado urlparse3-1.0.3.zip.

El siguiente comando instala una biblioteca de UDF denominada f_urlparse desde un paquete que se ha cargado en un bucket de Amazon S3 ubicado en la región EE. UU. Este.

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

En el siguiente ejemplo, se instala una biblioteca denominada f_urlparse desde un archivo de biblioteca en un sitio web.

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