CREATE LIBRARY - Amazon Redshift

CREATE LIBRARY

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. 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 Isolamento serializável.

O Amazon Redshift é compatível com Python versão 2.7. Para obter mais informações, acesse www.python.org.

Para obter mais informações, consulte Exemplo: importar módulos personalizados da biblioteca Python.

Privilégios obrigatórios

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

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

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.

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.

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 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.

Importante

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 para o comando COPY.

autorização

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.

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.

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

Os dois exemplos a seguir instalam o módulo Python 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';