本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon Redshift 中查詢複寫的資料
在將資料新增到來源後,資料會近乎即時地複寫到 Amazon Redshift 資料倉儲,並且可供查詢。如需有關整合指標和表格統計資訊的資訊,請參閱零ETL整合的指標。
注意
由於資料庫與 My 中的結構描述相同SQL,因此我的SQL資料庫層級會對應至 Amazon Redshift 結構描述層級。當您查詢從 Aurora MySQL 或 RDS for My 複寫的資料時,請注意此映射差異SQL。
查詢複寫的資料
-
導覽至 Amazon Redshift 主控台,然後選擇查詢編輯器 v2。
-
連線至您的 Amazon Redshift Serverless 工作群組或 Amazon Redshift 佈建叢集,然後從下拉式清單中選擇您的資料庫。
-
使用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 | +-----------+-------------+