演習 - project 演算子を使って返す列を選ぶ

完了

Kusto クエリを使うと、データをフィルター処理して特定の情報を返すことができます。

任意の行を見てデータの構造を把握したことを思い出してください。 このユニットでは、嵐の種類、場所、その被害の影響に関する特定のデータ列を選ぶ方法について学習します。

project 演算子を使用します

気象データの例には、かなりの数の列があることを思い出してください。 これらの列のすべてが今回の調査に意味があるわけではありません。 ここでは、いくつかの列を選んで表示します。 project 演算子を使って、出力に表示する列を定義します。 複数の列名はコンマで区切ります。

  1. 次のクエリを実行します。 このクエリを使うと、project 演算子内で返す列とその順序を指定できます。

    クエリを実行する

    StormEvents
    | project EventType, State, DamageProperty, DamageCrops, InjuriesDirect, InjuriesIndirect
    | take 10
    
  2. 次の画像のような結果が得られるはずです。

    Screenshot of project operator results with six columns.

  3. project 演算子で指定した列のみが出力に表示されていることに注目してください。

列の名前変更と新しい列の定義には project を使います。

米国の州における嵐の影響を把握するために、負傷者数と損害額の合計を求める必要があります。 project 演算子を使うと、異なる列の整数値を合計し、その結果を新しい列で返すことができます。 また、列の名前を変更して、分析とってより意味のあるものにすることもできます。

たとえば、州のある国/地域は他にもあります。 州の列名を変更して、結果が米国の州のものであることを明確にすると役立つ場合があります。 先ほどのクエリを変更して、米国の州の負傷者数と損害額の合計を求める方法を見てみましょう。

  1. 前のクエリを更新して、InjuriesDirectInjuriesIndirect の合計を示す新しい列を作成します。

    Injuries=InjuriesDirect+InjuriesIndirect

  2. 同じように、農作物への損害額と財産への損害額を足し合わせて 2 種類の損害額の列を作ります。

    Damage=DamageCrops+DamageProperty

  3. クエリ エディターで列名にカーソルを合わせると、列に含まれるデータ型が表示されます。 これらの列は int (整数) 型なので、数値演算子を使って値を加算することができます。

    Screenshot of the data type in a query editor.

  4. State 列の名前を US_State に変更します。

    US_State=State

  5. 更新されたクエリを確認し、実行します。 負傷者の計算、損害額の計算、State 列の名前の変更を含むクエリが完成しました。

    クエリを実行する

    StormEvents
    | project US_State=State, EventType, Injuries=InjuriesDirect+InjuriesIndirect, Damage=DamageCrops+DamageProperty
    | take 10
    
  6. 次の画像のような結果が得られるはずです。

    Screenshot of query results for a project operator that renames columns.

  7. State 列の名前が US_State に変更されていることに注目してください。 Injuries 列は新しく、InjuriesDirectInjuriesIndirect の合計として計算されています。 Damage 列も新しく、DamageCropsDamageProperty の合計として計算されています。

project-away 演算子を使用します

複数の選んだ列を削除するにはどうすればよいでしょうか。 これまでの手順では、各エピソードと事象に割り当てられた ID を使っていません。 特定の列を削除するには、project-away 演算子を使います。これは削除する列を示し、残りの列はすべてそのままです。 また、| project-away *Id などのワイルドカードを使って、末尾に ID が付くすべての列を削除することもできます。

  1. 次のクエリを実行します。

    クエリを実行する

    StormEvents
    | project-away EpisodeId, EventId
    | take 10
    
  2. 結果を確認します。 EpisodeIdEventId の列は、EndTimeState の列の間にあったことを思い出してください。 これらのうち、どの列が出力に表示されますか。