新しいプロジェクトでは、Kinesis Data Analytics for Applications で新しい Managed Service for Apache Flink Studio SQL を使用することをお勧めします。Managed Service for Apache Flink Studio は、使いやすさと高度な分析機能を兼ね備えているため、高度なストリーム処理アプリケーションを数分で構築できます。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
スキーマエディタの使用
Amazon Kinesis Data Analytics アプリケーションの入力ストリームのスキーマは、ストリームからのデータをアプリケーション内のSQLクエリで使用できるようにする方法を定義します。
このスキーマには、アプリケーション内入力ストリームのデータ列に変換されるストリーミング入力の部分を判断する選択条件が含まれます。この入力には、次のいずれかの値を指定できます。
JSON 入力ストリームのJSONPath式。JSONPath は、JSONデータをクエリするためのツールです。
カンマ区切り値 (CSV) 形式の入力ストリームの列番号。
アプリケーション内SQLデータストリームにデータを表示するための列名とデータ型。このデータ型にも、文字データまたはバイナリデータ長が含まれています。
コンソールは、「DiscoverInputSchema」を使用してスキーマを生成しようとします。スキーマの検出に失敗した場合や、不適切または未完了のスキーマが返る場合、スキーマエディタを使用して、手動でスキーマを編集する必要があります。
スキーマエディタのメイン画面
次のスクリーンショットは、スキーマエディタのメイン画面です。
次の編集をスキーマに適用することができます。
列の追加 (1): データ項目が自動的に検出されない場合は、データ列を追加する必要がある場合があります。
列の削除 (2): アプリケーションで不要な場合は、ソースストリームからデータを除外することができます。除外によって、ソースストリームのデータに影響を及ぼすことはありません。除外されたデータは、アプリケーションで利用できません。
列名 (3) の変更 列名は空白にすることはできません。また、1 文字より長く、予約SQLキーワードを含めることはできません。名前はSQL通常の識別子の命名基準も満たす必要があります。名前は文字で始まり、文字、アンダースコア文字、数字のみを含む必要があります。
列のデータ型 (4) または長さ (5) の変更: 列に対して、互換性のあるデータ型を指定することができます。互換性のないデータ型を指定すると、列に が入力されるかNULL、アプリケーション内ストリームにまったく入力されません。後者の場合は、エラーがエラーストリームに書き込まれます。指定する列の長さが小さすぎると、受信データは切り捨てられます。
列の選択基準を変更する (6): CSV列内のデータのソースを決定するために使用されるJSONPath式または列の順序を編集できます。JSON スキーマの選択基準を変更するには、行パス式に新しい値を入力します。CSV スキーマは列の順序を選択基準として使用します。CSV スキーマの選択基準を変更するには、列の順序を変更します。
ストリーミングソースのスキーマの編集
ストリーミングソースのスキーマを編集する必要がある場合は、以下の手順を実行します。
ストリーミングソースのスキーマを編集するには
[Source] ページで、[Edit schema] を選択します。
[Edit schema] ページで、ソーススキーマを編集します。
形式 で、 JSONまたは を選択しますCSV。JSON または CSV形式の場合、サポートされているエンコーディングは ISO 8859-1 です。
JSON または CSV形式のスキーマの編集の詳細については、次のセクションの手順を参照してください。
JSON スキーマの編集
次のステップを使用してJSONスキーマを編集できます。
JSON スキーマを編集するには
スキーマエディタで、[Add column] を編集して列を追加します。
新しい列が最初の列の位置に表示されます。列の順序を変更するには、列名の横にある上向き矢印と下向き矢印を選択します。
新しい列に、以下の情報を入力します。
[Column name] に名前を入力します。
列名は空白にできず、1 文字より長くする必要があります。また、予約SQLキーワードを含めることはできません。また、SQL通常の識別子の命名基準を満たしている必要があります。先頭は文字で、文字、アンダースコア文字、数字のみを使用する必要があります。
列タイプ には、SQLデータ型を入力します。
列タイプは、サポートされている任意のSQLデータ型にすることができます。新しいデータ型が CHAR、VARBINARY、または の場合はVARCHAR、長さ のデータ長を指定します。詳細については、「データ型」を参照してください。
[Row path] に、列パスを指定します。行パスは、JSON要素にマッピングされる有効なJSONPath式です。
注記
基本の [Row path] 値は、最上位の親へのパスで、インポートされるデータを含みます。デフォルトでは、この値は [$] です。詳細については、「
JSONMappingParameters
」のRecordRowPath
を参照してください。
列を削除するには、列番号の横にある [x] アイコンを選択します。
列の名前を変更するには、[列名] に新しい名前を入力します。新しい列名は空白にできず、1 文字より長くする必要があります。また、予約SQLキーワードを含めることはできません。また、SQL通常の識別子の命名基準を満たしている必要があります。先頭は文字で、文字、アンダースコア文字、数字のみを使用する必要があります。
-
列のデータ型を変更するには、[Column type] で新しいデータ型を選択します。新しいデータ型が
CHAR
、VARBINARY
、VARCHAR
のいずれかの場合は、[Length (長さ)] にデータ長を指定します。詳細については、「データ型」を参照してください。 -
[Save schema and update stream] を選択して変更を保存します。
変更後のスキーマが以下のようにエディタに表示されます。
スキーマに行が多数ある場合は、[Filter by column name] を使用して行をフィルタリングすることができます。例えば、P
から始まる列 (例: Price
列) の名前を編集するには、[列名によるフィルタリング] ボックスに P
と入力します。
CSV スキーマの編集
次のステップを使用してCSVスキーマを編集できます。
CSV スキーマを編集するには
スキーマエディタで、[Row delimiter] の受信データストリームで使用されている区切り記号を選択します。つまり、ストリーム内のデータレコード間の区切り記号 (例: 改行文字) です。
[Column delimiter] で、受信データストリームで使用されている区切り記号を選択します。つまり、ストリーム内のデータフィールド間の区切り記号 (例: カンマ) です。
列を追加するには、[Add column] を選択します。
新しい列が最初の列の位置に表示されます。列の順序を変更するには、列名の横にある上向き矢印と下向き矢印を選択します。
新しい列に、以下の情報を入力します。
[Column name] に名前を入力します。
列名は空白にできず、1 文字より長くする必要があります。また、予約SQLキーワードを含めることはできません。また、SQL通常の識別子の命名基準を満たしている必要があります。先頭は文字で、文字、アンダースコア文字、数字のみを使用する必要があります。
列タイプ には、SQLデータ型を入力します。
列タイプは、サポートされている任意のSQLデータ型にすることができます。新しいデータ型が CHAR、VARBINARY、または の場合はVARCHAR、長さ のデータ長を指定します。詳細については、「データ型」を参照してください。
列を削除するには、列番号の横にある [x] アイコンを選択します。
列の名前を変更するには、[Column name] に新しい名前を入力します。新しい列名は空白にできず、1 文字より長くする必要があります。また、予約SQLキーワードを含めることはできません。また、SQL通常の識別子の命名基準を満たしている必要があります。先頭は文字で、文字、アンダースコア文字、数字のみを使用する必要があります。
-
列のデータ型を変更するには、[Column type] で新しいデータ型を選択します。新しいデータ型が CHAR、VARBINARY、または の場合はVARCHAR、長さ のデータ長を指定します。詳細については、「データ型」を参照してください。
-
[Save schema and update stream] を選択して変更を保存します。
変更後のスキーマが以下のようにエディタに表示されます。
スキーマに行が多数ある場合は、[Filter by column name] を使用して行をフィルタリングすることができます。例えば、P
から始まる列 (例: Price
列) の名前を編集するには、[列名によるフィルタリング] ボックスに P
と入力します。