針對新專案,我們建議您優先選擇新的 Managed Service for Apache Flink Studio,而非 Kinesis Data Analytics for SQL 應用程式。Managed Service for Apache Flink Studio 易於使用且具備進階分析功能,可讓您在幾分鐘內建置複雜的串流處理應用程式。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
應用程式碼
應用程式碼是處理輸入並產生輸出的一系列 SQL 陳述式。這些 SQL 陳述式會在應用程式內串流和參考資料表上運作。如需更多詳細資訊,請參閱 Amazon Kinesis Data Analytics for SQL 應用程式:運作方式。
如需 Kinesis Data Analytics 支援之 SQL 語言元素的相關資訊,請參閱 Amazon Kinesis Data Analytics SQL 參考資料。
在關聯式資料庫中,您可以使用資料表,以 INSERT 陳述式來新增記錄,並使用 SELECT 陳述式來查詢資料。在 Amazon Kinesis Data Analytics 中,您可以使用串流。您可以撰寫 SQL 陳述式來查詢這些串流。查詢一個應用程式內串流的結果,一律會傳送到另一個應用程式內串流。執行複雜的分析時,您可以建立數個應用程式內串流來保存中繼分析的結果。最後設定應用程式輸出,將最終分析的結果 (從一或多個應用程式內串流) 保存到外部目的地。總而言之,以下是編寫應用程式碼的典型模式:
-
SELECT 陳述式一律會在 INSERT 陳述式的環境中使用。也就是說,當您選取資料列時,會將結果插入另一個應用程式內串流。
-
SELECT 陳述式一律會在幫浦的環境中使用。也就是說,您可以使用幫浦來寫入應用程式內串流。
下列範例應用程式碼會從一個應用程式內 (SOURCE_SQL_STREAM_001) 串流讀取記錄,然後將其寫入另一個應用程式內串流 (DESTINATION_SQL_STREAM)。您可以使用幫浦將記錄插入應用程式內串流,如下所示:
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (ticker_symbol VARCHAR(4), change DOUBLE, price DOUBLE); -- Create a pump and insert into output stream. CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM" SELECT STREAM ticker_symbol, change,price FROM "SOURCE_SQL_STREAM_001";
注意
您為串流和資料欄名稱指定的識別符遵循標準 SQL 慣例。舉例來說,如果您在識別符周圍加上引號,即代表標識符區分大小寫。如果不這麼做,識別符預設為大寫。如需識別符的詳細資訊,請參閱《Amazon Managed Service for Apache Flink SQL 參考資料》中的識別符。
您的應用程式碼可以由許多 SQL 陳述式組成。例如:
-
您可以依照順序來撰寫 SQL 查詢,即一個 SQL 陳述式的結果會饋送到下一個 SQL 陳述式。
-
您也可以撰寫獨立執行的 SQL 查詢。例如,您可以撰寫兩個 SQL 陳述式來查詢相同的應用程式內串流,但會將輸出傳送至不同的應用程式內串流。然後,您可以獨立查詢新建立的應用程式內串流。
您可以建立應用程式內串流以儲存中繼結果。您可以使用幫浦將資料列插入應用程式內串流。如需更多詳細資訊,請參閱 應用程式內串流與幫浦。
如果您新增了應用程式內參考資料表,可以撰寫 SQL 來聯結應用程式內串流和參考資料表中的資料。如需更多詳細資訊,請參閱 範例:將參考資料新增至 Kinesis Data Analytics 應用程式。
根據應用程式的輸出組態,Amazon Kinesis Data Analytics 會根據應用程式的輸出組態,將資料從特定應用程式內串流寫入外部目的地。請確定您的應用程式碼已寫入輸出組態中指定的應用程式內串流。
如需詳細資訊,請參閱下列主題: