

慎重に検討した結果、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)」を参照してください。

コンソールは Discovery API を使用して、指定されたストリーミングソースのスキーマを生成します。コンソールを使用して、列の追加や削除、列名やデータ型の変更など、スキーマを更新することもできます。ただし、無効なスキーマを作成しないように、変更は注意深く実行します。

アプリケーション内ストリームのスキーマをファイナライズした後、文字列値と日時値の操作に使用できる関数があります。結果のアプリケーション内ストリームの行で作業をする場合は、このような関数をアプリケーションコードで使用します。詳細については、「[例: DateTime 値の変換](app-string-datetime-manipulation.md)」を参照してください。

## スキーマ検出時に命名する列
<a name="sch-dis-column-names"></a>

スキーマ検出時、 Amazon Kinesis Data Analytics は、ストリーミング入力ソースのオリジナルの列名をできるだけ保持しようとします。ただし、次の場合を除きます。
+ ソースストリームの列名は、予約された SQL キーワード (例: `TIMESTAMP`、`USER`、`VALUES`、`YEAR`) です。
+ ソースストリーム列名に無効な文字が含まれています。文字、数字、下線文字 (\_) のみサポートされています。
+ ソースストリーム列名の先頭が数字になっています。
+ ソースストリーム列名の文字数が 100 文字を超えています。

列名を変更した場合、変更後のスキーマ列は `COL_` で始まります。名前全体が無効な文字の場合など、元の列名を保持することができない場合があります。このような場合、列の名前は `COL_#` に変更されます。「\#」には、列の順序内の場所を示す数値が入ります。

検出が完了すると、コンソールを使用してスキーマを更新し、列の追加または削除、列名、データ型、データサイズの変更を行うことができます。

### 検出が推奨される列名の例
<a name="sch-dis-column-names-examples"></a>


****  

| ソースストリームの列名 | 検出推奨列名 | 
| --- | --- | 
| USER | COL\_USER | 
| USER@DOMAIN | COL\_USERDOMAIN | 
| @@ | COL\_0 | 

## スキーマ検出の問題
<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)」を参照してください。