

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# CREATE LIBRARY
<a name="r_CREATE_LIBRARY"></a>

Instala uma biblioteca Python, que fica disponível para os usuários incorporarem ao criar uma função definida pelo usuário (UDF) com o comando [CREATE FUNCTION](r_CREATE_FUNCTION.md). O tamanho total das bibliotecas instaladas pelo usuário não pode exceder 100 MB. 

CREATE LIBRARY não pode ser executado em um bloco de transação (BEGIN … END). Para obter mais informações sobre transações, consulte [Níveis de isolamento no Amazon Redshift](c_serial_isolation.md). 

O Amazon Redshift é compatível com Python versão 2.7. Para obter mais informações, acesse [www.python.org](https://www.python.org/).

Para obter mais informações, consulte [Exemplo: importar módulos personalizados da biblioteca Python](udf-importing-custom-python-library-modules.md). 

## Privilégios obrigatórios
<a name="r_CREATE_LIBRARY-privileges"></a>

A seguir estão os privilégios obrigatórios para CREATE LIBRARY:
+ Superusuário
+ Usuários com o privilégio CREATE LIBRARY ou com o privilégio da linguagem especificada

## Sintaxe
<a name="r_CREATE_LIBRARY-synopsis"></a>

```
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::{{<Conta da AWS-id>}}:role/{{<role-name>}}’ }
}
```

## Parâmetros
<a name="r_CREATE_LIBRARY-parameters"></a>

OR REPLACE  
Especifica que, se uma biblioteca com o mesmo nome que a atual já existe, a biblioteca existente será substituída. REPLACE é confirmado imediatamente. Se uma UDF que depende da biblioteca estiver em execução simultaneamente, a UDF poderá falhar ou retornar resultados inesperados, mesmo se a UDF estiver sendo executada em uma transação. É necessário ser o proprietário ou um superusuário para substituir uma biblioteca.

 *nome\_biblioteca*   
Nome da biblioteca a ser instalada. Você não pode criar uma biblioteca que contenha um módulo com o mesmo nome que um módulo da biblioteca padrão Python ou de um módulo do Python pré-instalado pelo Amazon Redshift. Se uma biblioteca instalada pelo usuário existente usa o mesmo pacote Python que a biblioteca a ser instalada, é necessário remover a biblioteca existente antes de instalar a nova biblioteca. Para obter mais informações, consulte [Suporte da linguagem Python para UDFs](udf-python-language-support.md).

LANGUAGE plpythonu  
A linguagem a ser usada. O Python (plpythonu) é a única linguagem compatível. O Amazon Redshift é compatível com Python versão 2.7. Para obter mais informações, acesse [www.python.org](https://www.python.org/).

FROM  
Localização do arquivo da biblioteca. É possível especificar um nome de bucket e de objeto do Amazon S3, ou um URL para baixar o arquivo de um site público. A biblioteca deve ser compactada na forma de um arquivo `.zip`. Para obter mais informações, acesse [Criar e instalar módulos Python](https://docs.python.org/2/library/distutils.html?highlight=distutils#module-distutils) na documentação do Python.

 https://*file\_url*   
URL para baixar o arquivo de um site público. O URL pode conter até três redirecionamentos. Veja a seguir um exemplo de URL de arquivo.  

```
'https://www.example.com/pylib.zip'
```

 s3://*bucket\_name/file\_name*   
O caminho para um único objeto do Amazon S3 que contém o arquivo de biblioteca. Veja a seguir um exemplo de um caminho de objeto do Amazon S3.  

```
's3://amzn-s3-demo-bucket/my-pylib.zip'
```
Se você especificar um bucket do Amazon S3, também deve fornecer credenciais de um usuário da AWS com permissão para baixar o arquivo.   
 Se o bucket do Amazon S3 não residir na mesma região da AWS que seu cluster do Amazon Redshift, use a opção REGION para especificar a região da AWS na qual os dados estão localizados. O valor da *aws\_region* deve corresponder a uma região da AWS listada na tabela na descrição do parâmetro [REGION](copy-parameters-data-source-s3.md#copy-region) para o comando COPY.

*authorization*   
Cláusula que indica o método que o cluster usa na autenticação e autorização para acessar o bucket do Amazon S3 que contém o arquivo da biblioteca. Seu cluster deve ter permissão para acessar o Amazon S3 com as ações LIST e GET.  
A sintaxe para autorização é a mesma para a autorização do comando COPY. Para obter mais informações, consulte [Parâmetros de autorização](copy-parameters-authorization.md).  

```
IAM_ROLE { default | ‘arn:aws:iam::{{<Conta da AWS-id>}}:role/{{<role-name>}}’
```
 Use a palavra-chave padrão para que o Amazon Redshift use a função do IAM definida como padrão e associada ao cluster quando o comando CREATE LIBRARY for executado.  
Use o nome do recurso da Amazon (ARN) de uma função do IAM que seu cluster usa para autenticação e autorização. Se especificar IAM\_ROLE, você não poderá usar ACCESS\_KEY\_ID e SECRET\_ACCESS\_KEY, SESSION\_TOKEN ou CREDENTIALS.  
Como opção, se o bucket do Amazon S3 usar criptografia no lado do servidor, forneça a chave de criptografia na string credentials-args. Se você usar credenciais de segurança temporárias, forneça o token temporário na string *credentials-args*.  
Para obter mais informações, consulte [Credenciais de segurança temporárias](copy-usage_notes-access-permissions.md#r_copy-temporary-security-credentials).

 REGION [AS] *aws\_region*   
A região da AWS em que o bucket do Amazon S3 está localizado. REGION é necessário quando o bucket do Amazon S3 não está na mesma região da AWS que o cluster do Amazon Redshift. O valor da *aws\_region* deve corresponder a uma região da AWS listada na tabela na descrição do parâmetro [REGION](copy-parameters-data-source-s3.md#copy-region) para o comando COPY.  
Por padrão, CREATE LIBRARY pressupõe que o bucket do Amazon S3 esteja localizado na mesma região da AWSque o cluster do Amazon Redshift.

## Exemplos
<a name="r_CREATE_LIBRARY-examples"></a>

Os dois exemplos a seguir instalam o módulo Python [urlparse](https://docs.python.org/2/library/urlparse.html#module-urlparse), que é compactado em um arquivo chamado `urlparse3-1.0.3.zip`. 

O comando a seguir instala uma biblioteca de UDF chamada `f_urlparse` a partir de um arquivo compactado carregado no bucket do Amazon S3 localizado na região leste dos EUA.

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

O exemplo a seguir instala uma biblioteca chamada `f_urlparse` a partir de um arquivo de biblioteca em um site.



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