スキーマエディタの使用 - Amazon Kinesis Data Analytics for SQL Applications デベロッパーガイド

新しいプロジェクトでは、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」を使用してスキーマを生成しようとします。スキーマの検出に失敗した場合や、不適切または未完了のスキーマが返る場合、スキーマエディタを使用して、手動でスキーマを編集する必要があります。

スキーマエディタのメイン画面

次のスクリーンショットは、スキーマエディタのメイン画面です。

[Edit schema] ページのスクリーンショット。

次の編集をスキーマに適用することができます。

  • 列の追加 (1): データ項目が自動的に検出されない場合は、データ列を追加する必要がある場合があります。

  • 列の削除 (2): アプリケーションで不要な場合は、ソースストリームからデータを除外することができます。除外によって、ソースストリームのデータに影響を及ぼすことはありません。除外されたデータは、アプリケーションで利用できません。

  • 列名 (3) の変更 列名は空白にすることはできません。また、1 文字より長く、予約SQLキーワードを含めることはできません。名前はSQL通常の識別子の命名基準も満たす必要があります。名前は文字で始まり、文字、アンダースコア文字、数字のみを含む必要があります。

  • 列のデータ型 (4) または長さ (5) の変更: 列に対して、互換性のあるデータ型を指定することができます。互換性のないデータ型を指定すると、列に が入力されるかNULL、アプリケーション内ストリームにまったく入力されません。後者の場合は、エラーがエラーストリームに書き込まれます。指定する列の長さが小さすぎると、受信データは切り捨てられます。

  • 列の選択基準を変更する (6): CSV列内のデータのソースを決定するために使用されるJSONPath式または列の順序を編集できます。JSON スキーマの選択基準を変更するには、行パス式に新しい値を入力します。CSV スキーマは列の順序を選択基準として使用します。CSV スキーマの選択基準を変更するには、列の順序を変更します。

ストリーミングソースのスキーマの編集

ストリーミングソースのスキーマを編集する必要がある場合は、以下の手順を実行します。

ストリーミングソースのスキーマを編集するには
  1. [Source] ページで、[Edit schema] を選択します。

    株式データを含むフォーマットされたストリームのサンプルタブのスクリーンショット。[Edit Schema] ボタンが強調表示されています。
  2. [Edit schema] ページで、ソーススキーマを編集します。

    [Edit schema] ページのスクリーンショット。
  3. 形式 でJSONまたは を選択しますCSV。JSON または CSV形式の場合、サポートされているエンコーディングは ISO 8859-1 です。

JSON または CSV形式のスキーマの編集の詳細については、次のセクションの手順を参照してください。

JSON スキーマの編集

次のステップを使用してJSONスキーマを編集できます。

JSON スキーマを編集するには
  1. スキーマエディタで、[Add column] を編集して列を追加します。

    新しい列が最初の列の位置に表示されます。列の順序を変更するには、列名の横にある上向き矢印と下向き矢印を選択します。

    新しい列に、以下の情報を入力します。

    • [Column name] に名前を入力します。

      列名は空白にできず、1 文字より長くする必要があります。また、予約SQLキーワードを含めることはできません。また、SQL通常の識別子の命名基準を満たしている必要があります。先頭は文字で、文字、アンダースコア文字、数字のみを使用する必要があります。

    • 列タイプ には、SQLデータ型を入力します。

      列タイプは、サポートされている任意のSQLデータ型にすることができます。新しいデータ型が CHAR、VARBINARY、または の場合はVARCHAR、長さ のデータを指定します。詳細については、「データ型」を参照してください。

    • [Row path] に、列パスを指定します。行パスは、JSON要素にマッピングされる有効なJSONPath式です。

      注記

      基本の [Row path] 値は、最上位の親へのパスで、インポートされるデータを含みます。デフォルトでは、この値は [$] です。詳細については、「JSONMappingParameters」の RecordRowPath を参照してください。

  2. 列を削除するには、列番号の横にある [x] アイコンを選択します。

    列番号の横に x アイコンが表示されたスキーマエディタのスクリーンショット。
  3. 列の名前を変更するには、[列名] に新しい名前を入力します。新しい列名は空白にできず、1 文字より長くする必要があります。また、予約SQLキーワードを含めることはできません。また、SQL通常の識別子の命名基準を満たしている必要があります。先頭は文字で、文字、アンダースコア文字、数字のみを使用する必要があります。

  4. 列のデータ型を変更するには、[Column type] で新しいデータ型を選択します。新しいデータ型が CHARVARBINARYVARCHAR のいずれかの場合は、[Length (長さ)] にデータ長を指定します。詳細については、「データ型」を参照してください。

  5. [Save schema and update stream] を選択して変更を保存します。

変更後のスキーマが以下のようにエディタに表示されます。

変更後のスキーマが表示されたスキーマエディタのスクリーンショット。

スキーマに行が多数ある場合は、[Filter by column name] を使用して行をフィルタリングすることができます。例えば、P から始まる列 (例: Price 列) の名前を編集するには、[列名によるフィルタリング] ボックスに P と入力します。

CSV スキーマの編集

次のステップを使用してCSVスキーマを編集できます。

CSV スキーマを編集するには
  1. スキーマエディタで、[Row delimiter] の受信データストリームで使用されている区切り記号を選択します。つまり、ストリーム内のデータレコード間の区切り記号 (例: 改行文字) です。

  2. [Column delimiter] で、受信データストリームで使用されている区切り記号を選択します。つまり、ストリーム内のデータフィールド間の区切り記号 (例: カンマ) です。

  3. 列を追加するには、[Add column] を選択します。

    新しい列が最初の列の位置に表示されます。列の順序を変更するには、列名の横にある上向き矢印と下向き矢印を選択します。

    新しい列に、以下の情報を入力します。

    • [Column name] に名前を入力します。

      列名は空白にできず、1 文字より長くする必要があります。また、予約SQLキーワードを含めることはできません。また、SQL通常の識別子の命名基準を満たしている必要があります。先頭は文字で、文字、アンダースコア文字、数字のみを使用する必要があります。

    • 列タイプ には、SQLデータ型を入力します。

      列タイプは、サポートされている任意のSQLデータ型にすることができます。新しいデータ型が CHAR、VARBINARY、または の場合はVARCHAR、長さ のデータを指定します。詳細については、「データ型」を参照してください。

  4. 列を削除するには、列番号の横にある [x] アイコンを選択します。

    列番号の横に x アイコンが表示されたスキーマエディタのスクリーンショット。
  5. 列の名前を変更するには、[Column name] に新しい名前を入力します。新しい列名は空白にできず、1 文字より長くする必要があります。また、予約SQLキーワードを含めることはできません。また、SQL通常の識別子の命名基準を満たしている必要があります。先頭は文字で、文字、アンダースコア文字、数字のみを使用する必要があります。

  6. 列のデータ型を変更するには、[Column type] で新しいデータ型を選択します。新しいデータ型が CHAR、VARBINARY、または の場合はVARCHAR、長さ のデータを指定します。詳細については、「データ型」を参照してください。

  7. [Save schema and update stream] を選択して変更を保存します。

変更後のスキーマが以下のようにエディタに表示されます。

変更後のスキーマが表示されたスキーマエディタのスクリーンショット。

スキーマに行が多数ある場合は、[Filter by column name] を使用して行をフィルタリングすることができます。例えば、P から始まる列 (例: Price 列) の名前を編集するには、[列名によるフィルタリング] ボックスに P と入力します。