CREATE LIBRARY - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CREATE LIBRARY

安裝 Python 程式庫,該程式庫可供使用者在建立使用 CREATE FUNCTION命令的使用者定義函數 (UDF) 時加以整合。使用者安裝的程式庫的總和大小不得超過 100 MB。

CREATE LIBRARY 無法在交易區塊內執行 (BEGIN ... END)。如需交易的相關資訊,請參閱 可序列化隔離

Amazon Redshift 支援 Python 2.7 版。如需詳細資訊,請參閱 www.python.org

如需詳細資訊,請參閱範例:匯入自訂 Python 程式庫模組

所需權限

以下是 CREATE 的必要權限LIBRARY:

  • 超級使用者

  • 具有 CREATELIBRARY權限或 具有指定語言權限的使用者

語法

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

參數

或 REPLACE

指定已有相同名稱的程式庫存在時,取代現有程式庫。REPLACE 立即遞交。如果UDF依賴程式庫的 同時執行,即使 UDF 是在交易中執行, UDF也可能會失敗或傳回非預期的結果。您必須是擁有者或超級使用者才能取代程式庫。

library_name

要安裝的程式庫名稱。您建立的程式庫不可包含與 Python 標準程式庫模組或 Amazon Redshift 預先安裝 Python 模組同名的模組。如果現有的使用者安裝程式庫使用與所安裝程式庫相同的 Python 套件,則您必須先捨棄現有的程式庫,才能安裝新的程式庫。如需詳細資訊,請參閱的 Python 語言支援 UDFs

LANGUAGE 普皮索諾

要使用的語言。Python (plpythonu) 是唯一支援的語言。Amazon Redshift 支援 Python 2.7 版。如需詳細資訊,請參閱 www.python.org

FROM

程式庫檔案的位置。您可以指定 Amazon S3 儲存貯體和物件名稱,也可以指定 URL 從公有網站下載檔案。程式庫必須封裝為 .zip 檔案。如需詳細資訊,請參閱 Python 文件中的建構和安裝 Python 模組

https://file_url

從公有網站URL下載檔案的 。最多可URL包含三個重新導向。以下是檔案 的範例URL。

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

單一 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 區域。

authorization

此子句指出叢集在身分驗證和授權存取包含程式庫檔案的 Amazon S3 儲存貯體時使用的方法。您的叢集必須具有使用 LIST和 GET動作存取 Amazon S3 的許可。

授權的語法與 COPY命令授權相同。如需詳細資訊,請參閱授權參數

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

使用預設關鍵字讓 Amazon Redshift 在CREATELIBRARY命令執行時,使用設定為預設並與叢集相關聯的IAM角色。

針對叢集用於身分驗證和授權IAM的角色,使用 Amazon Resource Name (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 區域。REGION 當 Amazon S3 儲存貯體不在與 Amazon Redshift 叢集相同的 AWS 區域中時, 是必要的。aws_region 的值必須符合 COPY命令REGION參數描述中資料表中列出的 AWS 區域。

根據預設, 會CREATELIBRARY假設 Amazon S3 儲存貯體與 Amazon Redshift 叢集位於相同的 AWS 區域。

範例

以下兩個範例會安裝 urlparse Python 模組,它會封裝成名為 urlparse3-1.0.3.zip 的檔案。

下列命令會從已上傳至美國東部區域的 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';