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

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

在 Amazon Redshift 中查詢複寫的資料

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

注意

由於資料庫與 My 中的結構描述相同SQL,因此我的SQL資料庫層級會對應至 Amazon Redshift 結構描述層級。當您查詢從 Aurora MySQL 或 RDS for 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) 使用完全合格的物件名稱,或建立參考目的地資料庫結構描述對的外部結構描述,並使用兩部分表示法 (external-schema-name.table-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 | +-----------+-------------+