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