エンティティ名

Kusto エンティティは、名前によってクエリで参照されます。 名前で参照できるエンティティには、 データベーステーブルおよびストアド関数が含まれますが、 クラスターは参照できません。 エンティティに割り当てる名前は、識別子と呼ばれます。 エンティティに加えて、 クエリ パラメーターまたは let ステートメントを使用して設定された変数に識別子を割り当てることもできます。

エンティティの名前は、そのコンテナーのコンテキスト内のエンティティ型に対して一意です。 たとえば、同じデータベース内の 2 つのテーブルに同じ名前を付けることはできませんが、データベースとテーブルは異なるエンティティ型であるため、同じ名前を持つことができます。 同様に、テーブルとストアド関数は同じ名前を持つことができます。

注意

Azure リソースとしても反映されるエンティティ名は、ARM 予約語ルールに従います。

プリティ名

エンティティの名前に加えて、一部のエンティティには 美しい名前が付く場合があります。 エンティティ名の使用と同様に、かなり名前を使用してクエリ内のエンティティを参照できます。 ただし、エンティティ名とは異なり、美しい名前はコンテナーのコンテキストで必ずしも一意であるとは限りません。 同じプリティ名を持つ複数のエンティティがコンテナーに存在する場合、そのプリティ名を使用してエンティティを参照することはできません。

プリティ名を使用すると、中間層アプリケーションは、自動的に作成されたエンティティ名 (UUID など) を、表示および参照のために人間が判読できる名前にマップできます。

プリティ名を割り当てる方法の例については、「 .alter database prettyname コマンド」を参照してください。

識別子の名前付け規則

識別子は、let ステートメントを使用して設定されたエンティティクエリ パラメーター、または変数に割り当てる名前です。 識別子を有効にするには次の規則に従う必要があります。

  • 識別子では大文字と小文字が区別されます。 データベース名では大文字と小文字が区別されないため、この規則の例外です。
  • 識別子の長さは 1 ~ 1024 文字にする必要があります。
  • 識別子には、文字、数字、アンダースコア (_) を含めることができます。
  • 識別子には、スペース、ドット ()、ダッシュ (.-) などの特殊文字を含めることができます。 特殊文字を使用して識別子を参照する方法については、「 クエリでの識別子の参照」を参照してください。

注意

  • サポートされているのは、指定された UTF-8 文字の文字、数字、アンダースコア、ドット、ダッシュのみです。 たとえば、セミコロンとコロンはサポートされていません。
  • $ KQL 演算子によって生成された場合、エンティティ名で文字を使用できます。

言語キーワードまたはリテラルとしての識別子の名前付けを避ける

KQL には、識別子と同様の名前付け規則を持つキーワードとリテラル があります。 キーワードまたはリテラルと同じ名前の識別子を持つことができます。 ただし、クエリで参照するには 特別な引用符が必要であるため、これを行わないようにすることをお勧めします。

、 などのwheresummarize1day言語キーワード (keyword)またはリテラルである可能性がある識別子を使用しないようにするには、言語キーワードには適用できない次の規則に従ってエンティティ名を選択できます。

  • 大文字 (A から ) で始まる名前を Z使用します。

  • 1 つのアンダースコア (_) で始まる名前または末尾の名前を使用します。

    注意

    KQL は、先頭または末尾に 2 つのアンダースコア文字 (__) のシーケンスで始まるすべての識別子を予約します。ユーザーは、独自に使用するためにこのような名前を定義できません。

これらの識別子を参照する方法については、「 クエリでの識別子の参照」を参照してください。

クエリ内の参照識別子

次の表に、クエリで識別子を参照する方法について説明します。

識別子の種類 識別子 リファレンス 説明
標準 entity entity 特殊文字を含まない識別子 (entity) または一部の言語にマップキーワード (keyword)引用符で囲む必要はありません。
特殊文字 entity-name ['entity-name'] 特殊文字 (など-) を含む識別子名は、 と '] または と を使用して['[""]囲む必要があります。
language キーワード (keyword) where ["where"] 言語キーワードである識別子名は、 および および '][""]を使用して['囲む必要があります。
リテラル 1day ["1day"] リテラルである識別子名は、 および および '][""]を使用して['囲む必要があります。

注意

識別子では大文字と小文字が区別されます。 たとえば、 と呼ばれるThisTablethisTABLEテーブルを参照することはできません。