在 Amazon Redshift 中查詢複寫的資料 - Amazon Redshift

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

在 Amazon Redshift 中查詢複寫的資料

在將資料新增到來源後,資料會近乎即時地複寫到 Amazon Redshift 資料倉儲,並且可供查詢。如需有關整合指標和表格統計資訊的資訊,請參閱零ETL整合的指標

注意

由於資料庫與我的結構描述相同SQL,因此我的SQL資料庫層級會對應至 Amazon Redshift 架構層級。當您查詢從 Aurora My SQL 或 RDS My 複製的資料時,請注意此對應差異SQL。

若要查詢複製的資料
  1. 導覽至 Amazon Redshift 主控台,然後選擇查詢編輯器 v2

  2. 連線至您的 Amazon Redshift Serverless 工作群組或 Amazon Redshift 佈建叢集,然後從下拉式清單中選擇您的資料庫。

  3. 使用SELECT敘述句,從您在來源中建立的綱要和表格中選取所有複製的資料。如需區分大小寫,請針對結構描述、資料表和資料欄名稱使用雙引號 (" ")。例如:

    SELECT * FROM "schema_name"."table_name";

    您也可以使用 Amazon Redshift CLI 查詢數據。

查詢具體化視觀表的複製資料

您可以在本機 Amazon Redshift 資料庫中建立具體化視圖,以轉換透過零ETL整合複寫的資料。請連線至本機資料庫,並使用跨資料庫查詢來存取目的地資料庫。您可以使用具有三部分符號 (destination-database-name.schema-name.table name) 的完整物件名稱,或建立參考目的地資料庫-結構描述配對的外部結構描述,並使用兩部分符號 (.table name)。external-schema-name如需跨資料庫查詢的相關資訊,請參閱跨資料庫查詢資料

使用下列範例建立範例資料並將其插入 sales_zetl 以及 event_zetl 來自來源的表格 tickit_zetl。 這些資料表會複寫到 Amazon Redshift 資料庫 zetl_int_db.

CREATE TABLE sales_zetl ( salesid integer NOT NULL primary key, eventid integer NOT NULL, pricepaid decimal(8, 2) ); CREATE TABLE event_zetl ( eventid integer NOT NULL PRIMARY KEY, eventname varchar(200) ); INSERT INTO sales_zetl VALUES(1, 1, 3.33); INSERT INTO sales_zetl VALUES(2, 2, 4.44); INSERT INTO sales_zetl VALUES(3, 2, 5.55); INSERT INTO event_zetl VALUES(1, "Event 1"); INSERT INTO event_zetl VALUES(2, "Event 2");

您可以使用由三個部分組成的標記法建立具體化視觀表,以取得每個活動的總銷售額:

--three part notation zetl-database-name.schema-name.table-name CREATE MATERIALIZED VIEW mv_transformed_sales_per_event_3p as (SELECT eventname, sum(pricepaid) as total_price FROM zetl_int_db.tickit_zetl.sales_zetl S, zetl_int_db.tickit_zetl.event_zetl E WHERE S.eventid = E.eventid GROUP BY 1);

您可以使用由兩個部分組成的標記法建立具體化視觀表,以取得每個活動的總銷售額:

--two part notation external-schema-name.table-name notation CREATE EXTERNAL schema ext_tickit_zetl FROM REDSHIFT DATABASE zetl_int_db SCHEMA tickit_zetl; CREATE MATERIALIZED VIEW mv_transformed_sales_per_event_2p AS ( SELECT eventname, sum(pricepaid) as total_price FROM ext_tickit_zetl.sales_zetl S, ext_tickit_zetl.event_zetl E WHERE S.eventid = E.eventid GROUP BY 1 );

若要檢視您建立的具體化視觀表,請使用下列範例。

SELECT * FROM mv_transformed_sales_per_event_3p; +-----------+-------------+ | eventname | total_price | +-----------+-------------+ | Event 1 | 3.33 | | Event 2 | 9.99 | +-----------+-------------+ SELECT * FROM mv_transformed_sales_per_event_2p; +-----------+-------------+ | eventname | total_price | +-----------+-------------+ | Event 1 | 3.33 | | Event 2 | 9.99 | +-----------+-------------+