Kusto の概要Getting started with Kusto

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

これはリレーショナル データベース管理システムに基づいており、データベース、テーブル、列などのエンティティをサポートし、複雑な分析クエリ演算子 (計算列、検索とフィルター処理、行、グループごとの集計、結合など) を提供します。It is based on relational database management systems, supporting entities such as databases, tables, and columns, as well as providing complex analytics query operators (such as calculated columns, searching and filtering or rows, group by-aggregates, joins).

Kusto は、個々の行とテーブル間の制約/トランザクションのインプレース更新を実行する機能を "犠牲" にすることで、優れたデータ インジェストとクエリ パフォーマンスを提供します。Kusto offers excellent data ingestion and query performance by "sacrificing" the ability to perform in-place updates of individual rows and cross-table constraints/transactions. そのため、OLTP やデータ ウェアハウジングなどのシナリオでは、これによって従来の RDBMS システムが置き換えられるのではなく、取って代わられます。Therefore, it supplants, rather than replaces, traditional RDBMS systems for scenarios such as OLTP and data warehousing.

Kusto では、ビッグ データ サービスとして、構造化、半構造化 (たとえば、JSON のような入れ子になった型)、および非構造化 (フリーテキスト) データも同様に処理されます。As a Big Data service, Kusto handles structured, semi-structured (e.g. JSON-like nested types), and unstructured (free-text) data equally well.

Kusto との対話Interacting with Kusto

ユーザーが Kusto と対話するための主な方法は、Kusto に使用できる多くのクライアント ツールのいずれかを使用することです。The main way for users to interact with Kusto is by using one of the many client tools available for Kusto. Kusto に対する SQL クエリはサポートされていますが、Kusto との対話の主な手段は、Kusto クエリ言語を使用してデータ クエリを送信する方法と、Kusto エンティティの管理やメタデータの検出などのために管理コマンドを使用する方法があります。クエリと制御コマンドのどちらも、基本的に短いテキスト "プログラム" です。While SQL queries to Kusto are supported, the primary means of interaction with Kusto is through the use of the Kusto query language to send data queries, and through the use of control commands to manage Kusto entities, discover metadata, etc. Both queries and control commands are basically short textual "programs".


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

| where Level == "Critical"
| count

クエリの先頭をドット (.) 文字またはハッシュ (#) 文字にすることはできません。Queries cannot 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 is not 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 cannot start a query). この区別により、クエリ内での管理コマンドの埋め込みが防止されるため、さまざまな種類のセキュリティ攻撃を防ぐことができます。This distinction prevents many kinds of security attacks, simply because this prevents embedding control commands inside queries.

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