CREATE LIBRARY - Amazon Redshift

CREATE LIBRARY

사용자가 CREATE FUNCTION 명령으로 UDF(사용자 정의 함수)를 만들 때 사용자가 포함할 수 있도록 제공되는 Python 라이브러리를 설치합니다. 사용자가 설치한 라이브러리의 총 크기는 100MB를 초과할 수 없습니다.

CREATE LIBRARY를 트랜잭션 블록(BEGIN … END) 내에서 실행할 수 없습니다. 버전 관리에 대한 자세한 내용은 직렬화 가능 격리 단원을 참조하십시오.

Amazon Redshift는 Python 버전 2.7을 지원합니다. 자세한 내용은 www.python.org를 참조하세요.

자세한 내용은 예제: 사용자 지정 Python 라이브러리 모듈 가져오기 단원을 참조하십시오.

필수 권한

CREATE LIBRARY에 필요한 권한은 다음과 같습니다.

  • 수퍼유저

  • CREATE LIBRARY 권한이 있거나 지정된 언어의 권한이 있는 사용자

구문

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 계정-id>:role/<role-name>’ } }

파라미터

OR REPLACE

이름이 같은 라이브러리인 경우 이런 라이브러리가 이미 하나 존재하므로 기존 라이브러리가 대체됨을 지정합니다. REPLACE는 즉시 커밋합니다. 라이브러리에 종속된 UDF가 동시에 실행 중인 경우 UDF는 트랜잭션 내에서 실행 중이더라도 실패하거나 예기치 않은 결과를 반환할 수 있습니다. 소유자 또는 수퍼유저만이 라이브러리를 바꿀 수 있습니다.

library_name

설치할 라이브러리의 이름입니다. Python Standard Library 모듈 또는 Amazon Redshift에 사전 설치되어 있는 Python 모듈과 동일한 이름의 모듈이 포함되어 있는 라이브러리는 생성할 수 없습니다. 기존의 사용자 설치 라이브러리가 설치할 라이브러리와 같은 Python 패키지를 사용하는 경우 기존 라이브러리를 삭제한 후 새 라이브러리를 설치해야 합니다. 자세한 내용은 UDF에 대한 Python 언어 지원 단원을 참조하십시오.

LANGUAGE plpythonu

사용할 언어입니다. Python(plpythonu)이 유일하게 지원되는 언어입니다. Amazon Redshift는 Python 버전 2.7을 지원합니다. 자세한 내용은 www.python.org를 참조하세요.

FROM

라이브러리 파일의 위치. Amazon S3 버킷과 객체 이름을 지정하거나 공용 웹사이트에서 파일을 다운로드하기 위한 URL을 지정할 수 있습니다. 라이브러리는 .zip 파일의 형식으로 압축해야 합니다. 자세한 내용은 Python 설명서의 Building and Installing Python Modules 섹션을 참조하세요.

https://file_url

공용 웹사이트에서 파일을 다운로드하기 위한 URL입니다. 이 URL은 최대 3개의 리디렉션을 포함할 수 있습니다. 다음은 파일 URL의 예입니다.

'https://www.example.com/pylib.zip'
s3://버킷 이름/파일 이름

라이브러리 파일이 들어 있는 단일 Amazon S3 객체의 경로입니다. 다음은 Amazon S3 객체 경로의 예입니다.

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

Amazon S3 버킷을 지정하는 경우 파일 다운로드 권한을 가진 AWS 사용자를 위한 자격 증명도 제공해야 합니다.

중요

Amazon S3 버킷이 Amazon Redshift 클러스터와 동일한 AWS 리전에 없는 경우에는 REGION 옵션을 사용하여 데이터가 위치한 AWS 리전을 지정해야 합니다. aws_region의 값은 COPY 명령에 대한 REGION 파라미터 설명에서 표에 나와 있는 AWS 리전과 일치해야 합니다.

권한 부여

클러스터가 라이브러리 파일이 있는 Amazon S3 버킷에 액세스하기 위한 인증 및 권한 부여에 사용할 방법을 나타내는 절입니다. 클러스터에 LIST 및 GET 작업으로 Amazon S3에 액세스할 권한이 있어야 합니다.

권한 부여를 위한 구문은 COPY 명령 권한 부여에 대한 것과 동일합니다. 자세한 내용은 권한 부여 파라미터 단원을 참조하십시오.

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

기본 키워드를 사용하여 CREATE LIBRARY 명령이 실행될 때 Amazon Redshift에서 기본값으로 설정되고 클러스터와 연결된 IAM 역할을 사용하도록 합니다.

클러스터가 인증 및 권한 부여에 사용하는 IAM 역할의 Amazon 리소스 이름(ARN)을 사용합니다. IAM_ROLE을 지정하면 ACCESS_KEY_ID 및 SECRET_ACCESS_KEY, SESSION_TOKEN 또는 CREDENTIALS는 사용할 수 없습니다.

선택적으로, Amazon S3 버킷이 서버 측 암호화를 사용하는 경우 credentials-args 문자열에 암호화 키를 제공합니다. 임시 보안 자격 증명을 사용하는 경우 credentials-args 문자열에 임시 토큰을 제공합니다.

자세한 내용은 임시 보안 자격 증명 단원을 참조하십시오.

REGION [AS] aws_region

Amazon S3 버킷이 위치한 AWS 리전입니다. Amazon S3 버킷이 Amazon Redshift 클러스터와 같은 AWS 리전에 있지 않을 때는 REGION이 필요합니다. aws_region의 값은 COPY 명령에 대한 REGION 파라미터 설명에서 표에 나와 있는 AWS 리전과 일치해야 합니다.

기본적으로, CREATE LIBRARY에서는 Amazon S3 버킷이 Amazon Redshift 클러스터와 같은 AWS 리전에 위치한 것으로 가정합니다.

예시

다음 두 예에서는 urlparse3-1.0.3.zip이라는 파일에 패키지된urlparse Python 모듈을 설치합니다.

다음 명령으로 미국 동부 리전에 위치한 Amazon S3 버킷으로 업로드된 패키지에서 f_urlparse로 명명된 UDF 라이브러리를 설치합니다.

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

다음 예에서는 라이브러리 파일에서 f_urlparse로 명명된 라이브러리를 웹사이트에 설치합니다.

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