Azure Data Explorer のしくみ

Azure Data Explorer は、テレメトリ、ログ、イベント、トレース、時系列データを取り込んでクエリを実行するための比類のないパフォーマンスを提供します。 最適化されたストレージ形式、インデックスを備え、高度なデータ統計を使用して、効率的なクエリ計画とジャストインタイム コンパイルクエリ実行を実現します。

ストレージとコンピューティング

Azure Data Explorerでは、ストレージ リソースとコンピューティング リソースが分離されます。 永続データはAzure Blob Storageに存在しますが、コンピューティング リソースは一時データを格納したり、永続ストレージのキャッシュとして機能したりする場合があります。

この分離には、次の利点があります。

  • ストレージとコンピューティング リソースの独立したスケールアウト。
  • 複数のコンピューティング クラスター間で同一のデータに対するアクセシビリティ。 詳細については、「 データ共有」を参照してください。
  • SKU の最適化。 詳細については、「 クラスターの SKU を選択する」を参照してください。

データ ストレージ

Azure Data Explorerは、取り込まれたすべてのデータをエクステントまたはデータ シャード (ターゲット テーブルの水平スライス) にパーティション分割します。 エクステントは、1 つのレコードから始めることができます。 データがテーブルに蓄積されると、Azure Data Explorerは、何百万ものレコードを含むように拡張されるまでエクステントを自動的にマージします。 各エクステントは、他のエクステントとは無関係にエンコードされ、インデックスが作成されます。 この機能は、インジェスト スループットの線形スケーリングに貢献します。

エクステントはクラスター ノード間で均等に分散され、ローカル SSD とメモリの両方にキャッシュされます。 このディストリビューションにより、高度に分散された並列クエリを準備して実行する能力が向上します。

データ ストレージの詳細については、「 エクステントの概要」を参照してください。

注意

Azure Data Explorerでは、テーブル スキーマやポリシー オブジェクトなどの重要なメタデータも保持されます。 ポリシーの一覧については、「ポリシーの 概要」を参照してください。

データ キャッシュ

Azure Data Explorerには、最も関連性の高いデータが CPU にできるだけ近い状態でキャッシュされるようにするための複数階層データ キャッシュ システムがあります。 キャッシュ システムはエクステントの不変性に依存し、 圧縮データと完全に連動します。 クエリのパフォーマンスを向上させるために、データは RAM でも圧縮されたままであり、クエリに必要な場合にのみ圧縮解除されます。

キャッシュの詳細については、「 キャッシュ ポリシー」を参照してください。

テキストのインデックス作成

Azure Data Explorerは、データが取り込まれると、フリーテキスト (文字列) 列と JSON に似た (動的) 列のインデックスを効率的に作成するように設計されています。 インデックスは、データをスキャンせずにインデックスに基づいてクエリの一部を評価できるようにする粒度レベルを維持します。

マージによるエクステントの継続的なバックグラウンド最適化により、圧縮とインデックス作成が向上し、効率的なストレージと低いクエリ待機時間が確保されます。 エクステントが特定のサイズに達すると、インデックスのみがマージされ、効率を損なうことなくクエリのパフォーマンスが向上します。

エクステントとインデックスのマージの詳細については、「 マージ ポリシー」を参照してください。

行ストア

Azure Data Explorer では、行ストアと呼ばれる中間ストレージ ソリューションが提供されます。 行ストアを使用すると、データの小さな部分を効率的に取り込み、このデータをクエリですぐに使用できるようになります。 クラスターでストリーミング インジェストを有効にすると、データは最初に行ストアに取り込まれた後、列ストアエクステントに移動されます。

詳細については、「 バッチ処理とストリーミング インジェスト」を参照してください。

列の圧縮

Azure Data Explorerでは、データが圧縮された状態で維持されるため、データの格納と処理に必要なメモリの量が削減されます。 この動作により、クエリのパフォーマンスが向上し、システム リソースをより効率的に使用できるようになります。

Azure Data Explorerでは、データを並べ替えて圧縮を改善する垂直方向の圧縮を回避します。これは、フリーテキストまたは半構造化データのシナリオでの CPU コストが高いためです。 代わりに、主要なクエリ パターンを持つシナリオに適したデータの並べ替え順序を指定できます。 このトレードオフにより、クエリの迅速なデータ可用性が優先されます。

データの並べ替え順序の指定の詳細については、「 行の順序ポリシー」を参照してください。

分散データ クエリ

Azure Data Explorerでは、大規模な非構造化データ セットでの高速アドホック分析を目的とした分散データ クエリ テクノロジが使用されます。 このテクノロジの主な機能は次のとおりです。

  • クエリによって生成された一時データは、集約された RAM に格納されます
  • 関連するエクステントはクエリ プランでマークされ、分離スナップショット提供されます
  • 高速で効率的なクエリは、短い既定のタイムアウトで優先順位が付けられます
  • クラスター間のデータ交換を最小限に抑える クラスター間クエリ のネイティブ サポート
  • クエリは、すべてのエクステントのデータ統計を使用して、列エンコードの詳細に合わせて調整され、非常に効率的なマシン コードにコンパイルされます

注意

Azure Data Explorerは、Azure Data Explorer用にカスタムビルドされたKusto 照会言語 (KQL) を使用するように設計されています。 さらに、 T-SQL がサポートされています。