

在仔細考慮之後，我們決定停止 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="sch-dis"></a>

**注意**  
2023 年 9 月 12 日之後，如果尚未使用 Kinesis Data Analytics for SQL，您將無法使用 Kinesis Data Firehose 做為建立新應用程式的來源。如需詳細資訊，請參閱[限制](https://docs.aws.amazon.com//kinesisanalytics/latest/dev/limits.html)。

如要提供輸入結構描述，以說明串流輸入中的記錄如何映射至應用程式內串流，可能會很麻煩且容易出錯。您可以使用 [DiscoverInputSchema](API_DiscoverInputSchema.md) API (稱為*探索 API*) 來推斷結構描述。使用串流來源上的隨機範例記錄，API 可以推斷結構描述 (也就是資料欄名稱、資料類型以及傳入資料中資料元素的位置)。

**注意**  
若要使用探索 API 在 Amazon S3 存放的檔案產生結構描述，請參閱 [在靜態資料上使用結構描述探索功能](sch-dis-ref.md)。

主控台使用探索 API 產生指定串流來源的結構描述。使用主控台，您也可以更新結構描述，包括新增或移除資料欄、變更資料欄名稱或資料類型等。但是，請仔細進行變更，以確保不會建立無效的結構描述。

完成應用程式內串流的結構描述之後，您可以使用一些函數來操作字串和日期時間值。在產生的應用程式內串流中使用資料列時，您可以在應用程式碼中使用這些函數。如需詳細資訊，請參閱[範例：轉換 DateTime 值](app-string-datetime-manipulation.md)。

## 探索結構描述期間的資料欄命名
<a name="sch-dis-column-names"></a>

在結構描述探索期間，Amazon Kinesis Data Analytics 會嘗試從串流輸入來源盡可能保留原始資料欄名稱，但下列情況除外：
+ 來源串流資料欄名稱是保留的 SQL 關鍵字，例如 `TIMESTAMP`、`USER`、`VALUES` 或 `YEAR`。
+ 來源串流資料欄名稱包含不支援的字元。僅允許使用字母、數字和底線 ( \$1 )。
+ 來源串流資料欄名稱以數字開頭。
+ 來源串流資料欄名稱長度超過 100 個字元。

如果重新命名資料欄，則重新命名的結構描述欄名稱會以 `COL_` 開頭。在某些情況下，無法保留原始資料欄名稱，例如整個名稱是不支援的字元。在這種情況下，資料欄被命名為 `COL_#`，\$1 是指示資料欄在順序中的位置數字。

探索完成後，您可以使用主控台更新結構描述，以新增或移除資料欄，或變更資料欄名稱、資料類型或資料大小。

### 探索建議的資料欄名稱範例
<a name="sch-dis-column-names-examples"></a>


****  

| 來源串流資料欄名稱 | 探索建議的資料欄名稱範例 | 
| --- | --- | 
|  USER  |  COL\$1USER  | 
|  USER@DOMAIN  |  COL\$1USERDOMAIN  | 
|  @@  |  COL\$10  | 

## 結構描述探索問題
<a name="sch-dis-when-fails"></a>

如果 Kinesis Data Analytics 未推斷指定串流來源的結構描述，會發生什麼情況？ 

Kinesis Data Analytics 會推斷您的結構描述使用常見的格式，例如 CSV 和 JSON，這些格式都是 UTF-8 編碼。Kinesis Data Analytics 使用自訂資料欄和列分隔符號支援任何 UTF-8 編碼記錄 (包括應用程式日誌和記錄等原始文字)。如果 Kinesis Data Analytics 未推斷結構描述，您可以使用主控台上的結構描述編輯器 (或使用 API) 手動定義結構描述。

 如果您的資料不遵循模式 (您可以使用結構描述編輯器表明)，您可以將結構描述定義為 VARCHAR (N) 類型的單一資料欄，其中 N 是您預期記錄包含的最多字元數。從那裡，您可以使用字串和日期時間操作，在資料傳入應用程式內串流之後建構資料。如需範例，請參閱 [範例：轉換 DateTime 值](app-string-datetime-manipulation.md)。