Azure Data Explorer のしくみ
Azure Data エクスプローラーは、テレメトリ、ログ、イベント、トレース、時系列データを取り込んでクエリを実行するための比類のないパフォーマンスを提供します。 これは、最適化されたストレージ形式、インデックスを備え、高度なデータ統計を使用して、効率的なクエリ計画と Just-In-Time コンパイルクエリ実行を実現します。
ストレージとコンピューティング
Azure Data エクスプローラーでは、ストレージ リソースとコンピューティング リソースが分離されます。 永続データは Azure Blob Storage に存在しますが、コンピューティング リソースは一時データを格納したり、永続ストレージのキャッシュとして機能したりする場合があります。
この分離には、次の利点があります。
- ストレージ リソースとコンピューティング リソースの独立したスケールアウト。
- 複数のコンピューティング クラスター間で同じデータに対するアクセシビリティ。 詳細については、「データ共有」を参照してください。
- SKU の最適化。 詳細については、「クラスターの SKU を選択する」を参照してください。
データ ストレージ
Azure Data エクスプローラーは、取り込まれたすべてのデータをエクステントまたはデータ シャード (ターゲット テーブルの水平スライス) にパーティション分割します。 エクステントは、1 つのレコードから始めることができます。 テーブルにデータが蓄積されると、Azure Data エクスプローラーでは、何百万ものレコードが含まれるまでエクステントが自動的にマージされます。 各エクステントは、他のエクステントとは独立してエンコードおよびインデックス付けされます。 この機能は、インジェスト スループットの線形スケールに寄与します。
エクステントはクラスター ノード間で均等に分散され、ローカル SSD とメモリの両方にキャッシュされます。 このディストリビューションにより、高度に分散された並列クエリを準備して実行する能力が強化されます。
データ ストレージの詳細については、「エクステントの概要」を参照してください。
Note
Azure Data エクスプローラーには、テーブル スキーマやポリシー オブジェクトなどの重要なメタデータも保持されます。 ポリシーの一覧については、「ポリシーの概要」を参照してください。
データ キャッシュ
Azure Data エクスプローラーには、最も関連性の高いデータが CPU にできるだけ近い状態でキャッシュされるようにするための複数階層データ キャッシュ システムがあります。 キャッシュ システムはエクステントの不変性に依存し、圧縮されたデータで完全に機能します。 クエリのパフォーマンスを向上させるために、データの再メインは RAM でも圧縮され、クエリに必要なときにのみ圧縮解除されます。
キャッシュの詳細については、「キャッシュ ポリシー」を参照してください。
テキストのインデックス作成
Azure Data エクスプローラー は、データが取り込まれるとき、フリーテキスト (文字列) 列と JSON に似た (動的) 列のインデックスを効率的に作成するように設計されています。 インデックスメインデータをスキャンすることなく、インデックスに基づいてクエリの一部を評価できる粒度のレベルが含まれます。
マージによるエクステントの継続的なバックグラウンド最適化により、圧縮とインデックス作成が向上し、効率的なストレージと低いクエリ待機時間が確保されます。 エクステントが特定のサイズに達すると、効率を損なうことなくクエリパフォーマンスを向上させるためにインデックスのみがマージされます。
エクステントとインデックスのマージの詳細については、「マージ ポリシー」を参照してください。
行ストア
Azure Data エクスプローラー は、行ストアと呼ばれる中間ストレージ ソリューションを提供します。 行ストアを使用すると、データのごく一部を効率的に取り込み、このデータをすぐにクエリに使用できるようになります。 クラスターでストリーミング インジェストを有効にすると、データは最初に行ストアに取り込まれた後、列ストアエクステントに移動されます。
詳細については、「バッチ処理とストリーミング インジェスト」を参照してください。
列の圧縮
Azure Data エクスプローラー メインデータが圧縮された状態で保持されるため、データの格納と処理に必要なメモリの量が減ります。 この動作により、クエリのパフォーマンスが向上し、システム リソースが効率的に使用されます。
Azure Data エクスプローラーでは、データを並べ替えて圧縮を改善する垂直圧縮を回避できます。これは、フリー テキストまたは半構造化データのシナリオでの CPU コストが高いためです。 代わりに、主要なクエリ パターンを使用するシナリオで、優先されるデータの並べ替え順序を指定できます。 このトレードオフは、クエリの迅速なデータ可用性に優先順位を付けます。
データの並べ替え順序の指定の詳細については、「行の順序ポリシー」を参照してください。
分散データ クエリ
Azure Data エクスプローラー では、大規模な非構造化データ セットに対する高速アドホック分析を目的とした分散データ クエリ テクノロジが使用されます。 このテクノロジの主な機能は次のとおりです。
- クエリによって生成された一時データは、集約された RAM に格納されます
- 関連するエクステントはクエリ プランでマークされ、スナップショット分離が提供されます
- 高速で効率的なクエリは、短い 既定のタイムアウトで優先順位が付けられています
- クラスター間データ交換を最小限に抑えるクロスクラスター クエリのネイティブ サポート
- クエリは、すべてのエクステントからのデータ統計を使用して、非常に効率的なマシン コードにジャストインタイムコンパイルされ、列エンコードの仕様に合わせて調整されます
Note
Azure Data エクスプローラー は、Azure Data エクスプローラー 用にカスタムビルドされた Kusto 照会言語 (KQL) を使用するように設計されています。 さらに、 T-SQL がサポートされています。