

在仔細考慮之後，我們決定停止 Amazon Kinesis Data Analytics for SQL 應用程式：

1. 從 **2025 年 9 月 1 日起，**我們不會為 Amazon Kinesis Data Analytics for SQL 應用程式提供任何錯誤修正，因為考慮到即將終止，我們將對其提供有限的支援。

2. 從 **2025 年 10 月 15 日起，**您將無法建立新的 Kinesis Data Analytics for SQL 應用程式。

3. 我們將自 **2026 年 1 月 27** 日起刪除您的應用程式。您將無法啟動或操作 Amazon Kinesis Data Analytics for SQL 應用程式。從那時起，Amazon Kinesis Data Analytics for SQL 將不再提供支援。如需詳細資訊，請參閱[Amazon Kinesis Data Analytics for SQL 應用程式終止](discontinuation.md)。

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

# 範例：轉換字串值
<a name="examples-transforming-strings"></a>

Amazon Kinesis Data Analytics 支援 JSON 和 CSV 等格式，用於串流來源上的記錄。如需詳細資訊，請參閱[RecordFormat](API_RecordFormat.md)。然後，這些記錄會根據輸入組態映射到應用程式內串流的列。如需詳細資訊，請參閱[設定應用程式輸入](how-it-works-input.md)。輸入組態會指定串流來源中的記錄欄位的映射方式，將其對應至應用程式內串流中的資料欄。

當串流來源上的記錄遵循支援的格式時，此映射就會運作，產出內含標準化資料的應用程式內串流。但如果串流來源上的資料不符合支援的標準，該怎麼辦？ 舉例來說，如果您的串流來源包含點擊流資料、IoT 感應器和應用程式日誌等資料，該怎麼辦？ 

請考量以下範例：
+ 串流來源包含應用程式日誌：應用程式日誌會遵循標準 Apache 日誌格式，並使用 JSON 格式寫入串流。

  ```
  {
     "Log":"192.168.254.30 - John [24/May/2004:22:01:02 -0700] "GET /icons/apache_pb.gif HTTP/1.1" 304 0"
  }
  ```

  如需有關標準 Apache 日誌格式的詳細資訊，請參閱 Apache 網站上的[日誌檔案](https://httpd.apache.org/docs/2.4/logs.html)。

   
+ 串流來源包含半結構化資料：下列範例顯示兩筆記錄。`Col_E_Unstructured` 欄位值是一系列逗號分隔值。共有五個資料欄：前四個資料行具有字串類型值，最後一欄包含逗號分隔值。

  ```
  { "Col_A" : "string",
    "Col_B" : "string",
    "Col_C" : "string",
    "Col_D" : "string",
    "Col_E_Unstructured" : "value,value,value,value"}
  
  { "Col_A" : "string",
    "Col_B" : "string",
    "Col_C" : "string",
    "Col_D" : "string",
    "Col_E_Unstructured" : "value,value,value,value"}
  ```
+ 串流來源上的記錄包含 URL，而您需要部分 URL 網域名稱以進行分析。

  ```
  { "referrer" : "http://www.amazon.com"}
  { "referrer" : "http://www.stackoverflow.com" }
  ```

在這種情況下，下列兩步驟程序通常適用於建立內含標準化資料的應用程式內串流：

1. 設定應用程式輸入，將非結構化欄位映射至所建立的應用程式內輸入串流中 `VARCHAR(N)` 類型的資料欄。

1. 在應用程式碼中，使用字串函數將此單一欄分割成多個資料欄，然後將資料列儲存在另一個應用程式內串流中。您的應用程式碼建立的應用程式內串流將有標準化資料。接著您可以分析應用程式內串流。

Amazon Kinesis Data Analytics 提供下列字串操作、標準 SQL 函數，以及 SQL 標準的擴充功能，以便使用字串欄：
+ **字串運算子**：運算子 (例如 `LIKE` 和 `SIMILAR` ) 在比較字串時很有用。如需詳細資訊，請參閱 *Amazon Managed Service for Apache Flink SQL 參考資料*中的[字串運算子](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-string-operators.html)。
+ **SQL 函數**：下列函數在操作個別字串時非常有用。如需詳細資訊，請參閱* Amazon Managed Service for Apache Flink SQL 參考資料*中的[字串與搜尋函數](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-string-and-search-functions.html)。
  + `CHAR_LENGTH` - 提供字串的長度。
  + `INITCAP` - 傳回輸入字串的轉換版本，使得每個空格分隔文字的第一個字元都是大寫字母，而其他所有字元都是小寫字母。
  + `LOWER/UPPER` - 將字串轉換為小寫或大寫。
  + `OVERLAY` - 以第二個字串引數 (取代字串) 取代第一個字串引數 (原始字串) 的一部分。
  + `POSITION` - 搜尋另一個字串中的字串。
  + `REGEX_REPLACE` - 以替代子字串取代子字串。
  + `SUBSTRING` - 從特定位置開始擷取來源字串的一部分。
  + `TRIM` - 從來源字串的開頭或結尾移除指定字元的執行個體。
+ **SQL 擴充功能**:這些對於使用非結構化字串 (例如日誌和 URI) 非常有用。如需詳細資訊，請參閱* Amazon Managed Service for Apache Flink SQL 參考資料*中的[日誌剖析函數](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-pattern-matching-functions.html)。
  + `FAST_REGEX_LOG_PARSER` - 工作方式類似於 regex 剖析器，但需要幾個快捷方式來確保更快的結果。舉例來說，快速 regex 剖析器找到第一個匹配 (稱為*懶惰語義*) 後就會停止。
  + `FIXED_COLUMN_LOG_PARSE` - 剖析固定寬度欄位，並自動將其轉換為指定的 SQL 類型。
  + `REGEX_LOG_PARSE` - 根據預設 Java 規則表達式模式剖析字串。
  + `SYS_LOG_PARSE` - 剖析 UNIX/Linux 系統日誌中常見的項目。
  + `VARIABLE_COLUMN_LOG_PARSE` - 將輸入字串分割為以分隔符號字元或字串分隔的欄位。
  + `W3C_LOG_PARSE` - 可用於快速格式化 Apache 日誌。

如需使用這些函式的範例，請參閱主題：

**Topics**
+ [範例：擷取字串的一部分 (子字串函數)](examples-transforming-strings-substring.md)
+ [範例：使用 Regex (REGEX\_REPLACE 函數) 替換子字串](examples-transforming-strings-regexreplace.md)
+ [範例：根據規則表達式剖析日誌字串 (REGEX\_LOG\_PARSE 函數)](examples-transforming-strings-regexlogparse.md)
+ [範例：剖析網頁日誌 (W3C\_LOG\_PARSE 函式)](examples-transforming-strings-w3clogparse.md)
+ [範例：將字串拆分為多個字段 (VARIABLE\_COLUMN\_LOG\_PARSE 函數)](examples-transforming-strings-variablecolumnlogparse.md)