Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章
以生產者身份使用 AWS Data Exchange 資料共用
透過 Amazon Redshift,您可以藉由建立和管理資料共用,以生產者身分與 AWS Data Exchange 共用即時資料產品。
如果您是生產者管理員,請按照下列步驟在 Amazon Redshift 主控台上管理 AWS Data Exchange 資料共用:
-
在叢集中建立資料共用以在 AWS Data Exchange 上共用資料並授予 AWS Data Exchange 資料存取權。
叢集超級使用者和資料庫擁有者可以建立資料共用。每個資料共用都會在建立期間與資料庫相關聯。只有來自該資料庫的物件才能在該資料共用中共用。可以在具有相同或不同物件細微程度的相同資料庫上建立多個資料共用。可以在叢集中建立的資料共用數量不限。
您也可以使用 Amazon Redshift 主控台建立資料共用。如需更多詳細資訊,請參閱 建立資料共用。
使用 MANAGEDBY ADX 選項,在執行 CREATE DATASHARE 陳述式時,隱含地對 AWS Data Exchange 授與資料共用存取權。這表示 AWS Data Exchange 會管理此資料共用。您只能在建立新資料共用時使用 MANAGEDBY ADX 選項。您不能使用 ALTER DATASHARE 陳述式來修改現有的資料共用,以新增 MANAGEDBY ADX 選項。使用 MANAGEDBY ADX 選項建立資料共用後,只有 AWS Data Exchange 能存取和管理資料共用。
CREATE DATASHARE salesshare [[SET] MANAGEDBY [=] {ADX} ]; -
將物件新增到資料共用。生產者管理員會繼續管理 AWS Data Exchange 資料共用中可用的資料共用物件。
若要將物件新增至資料共用,請在新增物件之前先新增結構描述。當您新增結構描述時,Amazon Redshift 不會在其下方新增所有物件。您必須明確地新增這些物件。如需更多詳細資訊,請參閱 ALTER DATASHARE。
ALTER DATASHARE salesshare ADD SCHEMA PUBLIC; ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift; ALTER DATASHARE salesshare ADD ALL TABLES IN SCHEMA PUBLIC;您也可將檢視新增到資料共用。
CREATE VIEW public.sales_data_summary_view AS SELECT * FROM public.tickit_sales_redshift; ALTER DATASHARE salesshare ADD TABLE public.sales_data_summary_view;使用 ALTER DATASHARE 來共用結構描述及指定結構描述中的資料表、檢視和函數。超級使用者、資料共用擁有者或在資料共用上擁有 ALTER 或 ALL 許可的使用者可以修改資料共用,以在其中新增或移除物件。使用者應具有在資料共用中新增或移除物件的許可。使用者也必須是物件的擁有者,或具有物件的 SELECT、USAGE 或 ALL 許可。
使用 INCLUDENEW 子句將指定結構描述中建立的任何新資料表、檢視或 SQL 使用者定義函數 (UDF) 新增至資料共用。只有超級使用者可以為每個「資料共用-結構描述」配對修改此屬性。
ALTER DATASHARE salesshare ADD SCHEMA PUBLIC; ALTER DATASHARE salesshare SET INCLUDENEW = TRUE FOR SCHEMA PUBLIC;您也可以使用 Amazon Redshift 主控台在資料共用中新增或移除物件。如需詳細資訊,請參閱將資料共用物件新增到資料共用、從資料共用中移除資料共用物件及編輯 AWS Data Exchange 資料共用。
-
若要對 AWS Data Exchange 授權存取資料共用,請執行下列其中一項動作:
-
透過在
aws redshift authorize-data-shareAPI 中使用ADX關鍵字,明確地對 AWS Data Exchange 授權資料共用存取權。這可允許 AWS Data Exchange 識別服務帳戶中的資料共用,並管理將取用者與資料共用的關聯。aws redshift authorize-data-share --data-share-arn arn:aws:redshift:us-east-1:{PRODUCER_ACCOUNT}:datashare:{PRODUCER_CLUSTER_NAMESPACE}/salesshare --consumer-identifier ADX您可以針對
AuthorizeDataShare和DeauthorizeDataShareAPI 使用條件金鑰ConsumerIdentifier,明確允許或拒絕 AWS Data Exchange 呼叫 IAM 政策中的兩個 API。 -
使用 Amazon Redshift 主控台來給予或移除 AWS Data Exchange 資料共用的授權。如需更多詳細資訊,請參閱 授予或移除資料共用的授權。
-
或者,您可以在將資料共用匯入 AWS Data Exchange 資料集時,隱含地授予 AWS Data Exchange 資料共用存取權。
若要移除存取 AWS Data Exchange 資料共用的授權,請在
aws redshift deauthorize-data-shareAPI 作業中使用ADX關鍵字。透過這樣做,您可以讓 AWS Data Exchange 識別服務帳戶中的資料共用,並管理從資料共用中刪除關聯的操作。aws redshift deauthorize-data-share --data-share-arn arn:aws:redshift:us-east-1:{PRODUCER_ACCOUNT}:datashare:{PRODUCER_CLUSTER_NAMESPACE}/salesshare --consumer-identifier ADX -
-
列出在叢集中建立的資料共用,並查看資料共用的內容。
下列範例會顯示名為 salesshare 之資料共用的資訊。如需詳細資訊,請參閱DESC DATASHARE及 SHOW DATASHARES。
DESC DATASHARE salesshare; producer_account | producer_namespace | share_type | share_name | object_type | object_name | include_new -------------------+--------------------------------------+------------+------------+-------------+--------------------------------+------------------- 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_users_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_venue_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_category_redshift| 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_date_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_event_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_listing_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | table | public.tickit_sales_redshift | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | schema | public | t 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d | OUTBOUND | salesshare | view | public.sales_data_summary_view |下列範例顯示生產者叢集上的輸出資料共用。
SHOW DATASHARES LIKE 'sales%';輸出結果類似如下。
share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account | producer_namespace -----------+--------------+-----------------+-------------------+------------+---------------------+----------------------+-----------+------------------+--------------------------------------- salesshare | 100 | dev | | OUTBOUND | 2020-12-09 02:27:08 | True | | 123456789012 | 13b8833d-17c6-4f16-8fe4-1a018f5ed00d如需詳細資訊,請參閱DESC DATASHARE及 SHOW DATASHARES。
您也可以使用 SVV_DATASHARES、SVV_DATASHARE_CONSUMERS 和 SVV_DATASHARE_OBJECTS 來檢視資料共用、資料共用中的物件,以及資料共用取用者。
-
捨棄資料共用。我們建議您不要使用 DROP DATASHARE 陳述式刪除與其他 AWS 帳戶 共用的 AWS Data Exchange 資料共用。這些帳戶將會失去資料共用的存取權。此動作不可復原。這可能會違反 AWS Data Exchange 中的資料產品供應條款。如果您要刪除 AWS Data Exchange 資料共用,請參閱 DROP DATASHARE 使用須知。
以下範例會捨棄名為 salesshare 的資料共用。
DROP DATASHARE salesshare; ERROR: Drop of ADX-managed datashare salesshare requires session variable datashare_break_glass_session_var to be set to value '620c871f890c49'若要允許捨棄 AWS Data Exchange 資料共用,請設定 datashare_break_glass_session_var 變數,然後再次執行 DROP DATASHARE 陳述式。如果您要刪除 AWS Data Exchange 資料共用,請參閱 DROP DATASHARE 使用須知。
您也可以使用 Amazon Redshift 主控台刪除資料共用。如需更多詳細資訊,請參閱 刪除在您帳戶中建立的 AWS Data Exchange 資料共用。
-
使用 ALTER DATASHARE 隨時從資料共用中點移除物件。使用 REVOKE USAGE ON 來撤銷特定取用者在資料共用上的許可。它會撤銷資料共用中物件的 USAGE 許可,並立即停止對所有取用者叢集的存取。存取權被撤銷後,列出資料共用和中繼資料查詢 (例如列出資料庫和資料表) 不會傳回共用物件。
ALTER DATASHARE salesshare REMOVE TABLE public.tickit_sales_redshift;您也可以使用 Amazon Redshift 主控台編輯資料共用。如需更多詳細資訊,請參閱 編輯 AWS Data Exchange 資料共用。
-
授予或撤銷來自 AWS Data Exchange 資料共用的 GRANT USAGE。您不能授予或撤銷 AWS Data Exchange 資料共用的 GRANT USAGE。下列範例顯示將 AWS Data Exchange 管理的資料共用的 GRANT USAGE 許可授予 AWS 帳戶 時,會顯示錯誤。
CREATE DATASHARE salesshare MANAGEDBY ADX;GRANT USAGE ON DATASHARE salesshare TO ACCOUNT '012345678910'; ERROR: Permission denied to add/remove consumer to/from datashare salesshare. Datashare consumers are managed by ADX.
如果您是生產者管理員,請按照下列步驟在 AWS Data Exchange 主控台上建立及發佈資料共用產品:
-
建立 AWS Data Exchange 資料共用後,生產者會建立新的資料集、匯入資產、建立修訂版本,以及建立和發佈新產品。
使用 Amazon Redshift 主控台建立資料集。如需更多詳細資訊,請參閱 在 AWS Data Exchange 上建立資料集。
如需詳細資訊,請參閱在 AWS Data Exchange 上佈建產品。