本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 區域。
範例
以下兩個範例會安裝 urlparseurlparse3-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';