テーブル サイズの見積もり
テーブルのサイズを理解することは、効率的なリソース管理とクエリパフォーマンスの最適化に役立ちます。 この記事では、テーブルサイズを見積もるさまざまな方法と、それらを効果的に使用する方法について説明します。
取り込まれたデータの元のサイズ
テーブルの元のデータ サイズを推定するには、.show テーブルの詳細 を使用します。 例については、「.show テーブルの詳細を使用する」を参照してください。
このコマンドは、データが CSV 形式で転送されたという前提に基づいて、テーブルに取り込まれたデータの圧縮されていないサイズの見積もりを提供します。 推定は、文字列表現を考慮することで、整数、longs、datetimes、guid などの数値のおおよその長さに基づいています。
ユース ケースの例: 時間の経過に伴う受信データのサイズを追跡して、容量計画に関する情報に基づいた意思決定を行います。
アクセス バイト数の観点から見たテーブル サイズ
estimate_data_size() と sum() 集計関数を使用して、データ型とそれぞれのバイト サイズに基づいてテーブル サイズを推定します。 例については、「estimate_data_size()
このメソッドは、数値のバイト サイズを文字列として書式設定せずに考慮することで、より正確な推定を提供します。 たとえば、整数値には 4 バイトが必要です。long 値と datetime 値には 8 バイトが必要です。 この方法を使用すると、メモリに収まるデータ サイズを正確に見積もることができます。
ユース ケースの例: スキャンするバイト数でクエリのコストを決定します。
複数のテーブルの結合サイズ
共用体 演算子と共に、estimate_data_size() 関数と sum() 関数を使用して、アクセス バイトの観点から複数のテーブルの合計サイズを見積もることができます。 例については、「共用体と estimate_data_size()を使用する」を参照してください。
ユース ケースの例: 複数のテーブルから 1 つのデータセットにデータを統合するためのメモリ要件を評価します。
手記
この方法では、指定したテーブルのすべての列を結合 union
、データ サイズを計算するときに空の列 estimate_data_size()
考慮するため、空の列が原因で推定データ サイズが膨らむ可能性があります。
例
テーブルの詳細の表示を使用する
次のクエリは、StormEvents
テーブルの元のデータ サイズを推定します。
クエリ を実行する
.show table StormEvents details
| project TotalOriginalSize
出力
TotalOriginalSize |
---|
60192011 |
先端
バイトの結果を MB
、GB
、または別の単位に書式設定するには、format_bytes()を使用します。
estimate_data_size() を使用する
次のクエリは、StormEvents
テーブルの元のデータ サイズをバイト単位で見積もります。
クエリ を実行する
StormEvents
| extend sizeEstimateOfColumn = estimate_data_size(*)
| summarize totalSize=sum(sizeEstimateOfColumn)
出力
totalSize |
---|
58608932 |
手記
同じテーブルに対して計算が行われる場合でも、出力は小さくなります。 これは、このメソッドは、数値のバイト サイズを文字列として書式設定せずに考慮することで、より正確な推定を提供するためです。
estimate_data_size() で共用体を使用する
次のクエリは、Samples
データベース内のすべてのテーブルに基づいてデータ サイズを見積もります。
クエリ を実行する
union withsource=_TableName *
| extend sizeEstimateOfColumn = estimate_data_size(*)
| summarize totalSize=sum(sizeEstimateOfColumn)
| extend sizeGB = format_bytes(totalSize,2,"GB")
totalSize | sizeGB |
---|---|
1761782453926 | 1640.79 GB |