Kusto の概要Getting started with Kusto

Azure Data Explorer は、ビッグ データに対する対話型分析を格納して実行するためのサービスです。Azure Data Explorer is a service for storing and running interactive analytics on big data.

これはリレーショナル データベース管理システムをベースにしており、データベース、テーブル、列などのエンティティをサポートしています。It's based on relational database management systems, and supports entities such as databases, tables, and columns. 複雑な分析クエリは、Kusto クエリ言語を使用して作成されます。Complex analytical queries are made using the Kusto Query Language. クエリ演算子には次のようなものがあります。Some query operators include:

  • 計算列calculated columns
  • 行の検索とフィルター処理searching and filtering on rows
  • グループ化 - 集計group by-aggregates
  • 結合関数join functions

このサービスは、優れたデータ インジェストとクエリ パフォーマンスを提供します。The service offers excellent data ingestion and query performance:

  • これにより、個々の行とテーブル間の制約またはトランザクションのインプレース更新を実行する能力が犠牲になります。It sacrifices the ability to do in-place updates of individual rows and cross-table constraints or transactions.
  • このサービスは、OLTP やデータ ウェアハウジングなどのシナリオで、従来の RDBMS システムを置き換えるのではなく、補完します。The service supplements, rather than replaces, traditional RDBMS systems for scenarios such as OLTP and data warehousing.
  • 構造化データ、半構造化データ (たとえば、JSON に似た入れ子にされた型) や非構造化データ (フリーテキスト) のいずれも同様に適切に処理されます。Structured, semi-structured (for example, JSON-like nested types), and unstructured (free text) data are handled equally well.

Azure Data Explorer との対話Interacting with Azure Data Explorer

ユーザーが Azure Data Explorer (Kusto) と対話するための主な方法:The main way for users to interact with Azure Data Explorer (Kusto):

  • クエリ ツールのいずれかを使用します。Use one of the query tools.
  • SQL クエリSQL queries.
  • Kusto クエリ言語は、対話の主な手段です。Kusto query language is primary means of interaction. KQL を使用すると、データ クエリを送信したり、制御コマンドを使用してエンティティを管理したり、メタデータを検出したりすることができます。KQL allows you to send data queries, and use control commands to manage entities, discover metadata, and so on. クエリと制御コマンドは、どちらも短いテキスト "プログラム" です。Both queries and control commands are short textual "programs".

Kusto クエリKusto queries

クエリは読み取り専用の要求であり、データを処理し、その処理の結果を返します。データやメタデータが修正されることはありません。A query is a read-only request to process data and return the results of this processing, without modifying the data or metadata. Kusto クエリでは、SQL 言語または Kusto クエリ言語を使用できます。Kusto queries can use the SQL language, or the Kusto query language. 後者の例として、次のクエリでは、Logs テーブルの行のうち、Level 列の値が文字列 Critical と等しいものをカウントします。As an example for the latter, the following query counts how many rows in the Logs table have a value in the Level column equal to the string Critical:

| where Level == "Critical"
| count


クエリは、ドット (.) 文字またはハッシュ (#) 文字で始めることはできません。Queries can't start with the dot (.) character or the hash (#) character.

管理コマンドControl commands

制御コマンドは、データまたはメタデータを処理し、変更する可能性がある Kusto への要求です。Control commands are requests to Kusto to process and potentially modify data or metadata. たとえば、次の管理コマンドでは、2 つの列 LevelText を持つ新しい Kusto テーブルが作成されます。For example, the following control command creates a new Kusto table with two columns, Level and Text:

.create table Logs (Level:string, Text:string)

管理コマンドには独自の構文があり、これは Kusto クエリ言語構文に含まれていませんが、この 2 つは多くの概念を共有しています。Control commands have their own syntax, which isn't part of the Kusto Query Language syntax, although the two share many concepts. 特に、コマンドのテキストの最初の文字をドット (.) 文字 (クエリの先頭にすることができない) にすることで、管理コマンドはクエリと区別されます。In particular, control commands are distinguished from queries by having the first character in the text of the command be the dot (.) character (which can't start a query). この区別により、クエリ内での管理コマンドの埋め込みが防止されるため、さまざまな種類のセキュリティ攻撃を防ぐことができます。This distinction prevents many kinds of security attacks, simply because it prevents embedding control commands inside queries.

すべての管理コマンドでデータまたはメタデータが変更されるわけではありません。Not all control commands modify data or metadata. .show で始まる大きなクラスのコマンドは、メタデータまたはデータを表示するために使用されます。The large class of commands that start with .show, are used to display metadata or data. たとえば、.show tables コマンドからは、現在のデータベース内のすべてのテーブルの一覧が返されます。For example, the .show tables command returns a list of all tables in the current database.