慎重に検討した結果、アプリケーションの Amazon Kinesis Data Analytics は 2 つのステップSQLで中止することにしました。
1. 2025 年 10 月 15 日以降、SQLアプリケーションの新しい Kinesis Data Analytics を作成することはできません。
2. 2026 年 1 月 27 日以降、アプリケーションを削除します。SQL アプリケーションの Amazon Kinesis Data Analytics を開始または操作することはできません。SQL それ以降、Amazon Kinesis Data Analytics のサポートは終了します。詳細については、「Amazon Kinesis Data Analytics for SQL Applications の中止」を参照してください。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ストリーミングデータのスキーマ検出機能の使用
注記
2023 年 9 月 12 日以降、SQL 用 Kinesis Data Analytics をまだ使用していない場合、Kinesis Data Firehose をソースとして使用して新しいアプリケーションを作成することはできません。詳細については、「制限」を参照してください。
ストリーミング入力のレコードをアプリケーション内ストリームにマッピングする方法を記述する入力スキーマの指定は、扱いが難しく、エラーが発生しやすいものです。「DiscoverInputSchema」 API (検出 API と呼ばれます) を使用してスキーマを推測できます。この API は、ストリーミングソースのレコードのランダムなサンプルを使用してスキーマ (つまり、列名、データ型、データ要素の入力データ内での位置) を推測します。
注記
検出 API を使用して Amazon S3 に格納されたファイルからスキーマを生成する方法については、「静的データに対するスキーマ検出機能の使用」を参照してください。
指定されたストリーミングソースに対するスキーマを生成するには、コンソールで 検出 API を使用します。コンソールを使用して、スキーマの更新 (例: 列の追加や削除、列名またはデータ型の変更など) を行うことができます。ただし、無効なスキーマを作成しないように、変更は注意深く実行します。
アプリケーション内ストリームのスキーマをファイナライズした後、文字列値と日時値の操作に使用できる関数があります。結果のアプリケーション内ストリームの行で作業をする場合は、このような関数をアプリケーションコードで使用します。詳細については、「例: DateTime 値の変換」を参照してください。
スキーマ検出時に命名する列
スキーマ検出時、 Amazon Kinesis Data Analytics は、ストリーミング入力ソースのオリジナルの列名をできるだけ保持しようとします。ただし、次の場合を除きます。
-
ソースストリームの列名は、予約された SQL キーワード (例:
TIMESTAMP
、USER
、VALUES
、YEAR
) です。 -
ソースストリーム列名に無効な文字が含まれています。文字、数字、下線文字 (_) のみサポートされています。
-
ソースストリーム列名の先頭が数字になっています。
-
ソースストリーム列名の文字数が 100 文字を超えています。
列名を変更した場合、変更後のスキーマ列は COL_
で始まります。名前全体が無効な文字の場合など、元の列名を保持することができない場合があります。このような場合、列の名前は COL_#
に変更されます。「#」には、列の順序内の場所を示す数値が入ります。
検出が完了すると、コンソールを使用してスキーマを更新し、列の追加または削除、列名、データ型、データサイズの変更を行うことができます。
検出が推奨される列名の例
ソースストリームの列名 | 検出推奨列名 |
---|---|
USER |
COL_USER |
USER@DOMAIN |
COL_USERDOMAIN |
@@ |
COL_0 |
スキーマ検出の問題
Kinesis Data Analytics が任意のストリーミングソースのスキーマを推測しない場合、どうなるでしょうか。
Kinesis Data Analytics は、CSV や JSON のような、UTF-8 でエンコードされた列形式に対してスキーマを推測します。Kinesis Data Analytics は、(アプリケーションログやカスタムの列および行区切りを持つレコードなどの未加工テキストを含む) UTF-8 でエンコードされたレコードをサポートしています。Kinesis Data Analytics がスキーマを推測しない場合は、コンソールのスキーマエディタ (または API) を使用して、手動でスキーマを定義できます。
データがパターンに合わない場合は (スキーマエディタを使用して指定できます)、スキーマを VARCHAR(N) 型の単一列として定義できます。N はレコードに含まれる最大文字数です。ここから、文字列および日付時刻操作を使用して、データをアプリケーション内ストリームに入力された後に構築できます。例については、「例: DateTime 値の変換」を参照してください。