GraphiteMergeTree を使用してください。このエンジンにより、ストレージ使用量を削減し、Graphite からのクエリ効率を向上させることができます。
このエンジンは MergeTree の特性を継承します。
テーブルの作成
-
メトリック名 (Graphite sensor) 。データ型:
String。 -
メトリックの計測時刻。データ型:
DateTime。 -
メトリックの値。データ型:
Float64。 - メトリックのバージョン。データ型: 任意の数値型 (ClickHouse は、バージョンが最も高い行を保持し、バージョンが同じ場合は最後に書き込まれた行を保持します。その他の行はデータパーツのマージ時に削除されます) 。
config_section— ロールアップルールが設定されている設定ファイル内のセクション名。
GraphiteMergeTree テーブルを作成する際は、MergeTree テーブルを作成する場合と同じ句が必要です。
ロールアップ設定
- 必須カラム
- パターン
必須カラム
path_column_name
path_column_name — メトリック名 (Graphite sensor) を格納するカラム名です。デフォルト値: Path。
time_column_name
time_column_name — メトリックの計測時刻を格納するカラム名です。デフォルト値: Time。
value_column_name
value_column_name — time_column_name で指定した時点におけるメトリックの値を格納するカラム名です。デフォルト値: Value。
version_column_name
version_column_name — メトリックのバージョンを格納するカラム名です。デフォルト値: Timestamp。
パターン
patterns セクションの構成:
pattern セクション内のルールを確認します。各 pattern セクション (default を含む) には、aggregation 用の function parameter、retention parameters、またはその両方を含めることができます。メトリック名が regexp に一致した場合は pattern セクションのルール (複数可) が適用され、一致しない場合は default セクションのルールが使用されます。
pattern セクションと default セクションのフィールド:
rule_type- ルールの種類。特定のメトリックにのみ適用されます。engine はこれを使用して、プレーンメトリックとタグ付きメトリックを区別します。省略可能な parameter。デフォルト値:all。 パフォーマンスが重要でない場合や、プレーンメトリックのように 1 種類のメトリックしか使用しない場合は不要です。デフォルトでは、作成されるルールセットは 1 種類だけです。一方、特殊な type がいずれか定義されている場合は、2 つの異なるセットが作成されます。1 つはプレーンメトリック用 (root.branch.leaf)、もう 1 つはタグ付きメトリック用 (root.branch.leaf;tag1=value1) です。 デフォルトルールは最終的に両方のセットに含まれます。 有効な値:all(デフォルト) -rule_typeを省略した場合に使用される汎用ルール。plain- プレーンメトリック用のルール。regexpフィールドは regular expression として処理されます。tagged- タグ付きメトリック用のルール (メトリックは DB 内でsomeName?tag1=value1&tag2=value2&tag3=value3のフォーマットで保存されます) 。regular expression はタグ名でソートされている必要があり、存在する場合は最初のタグが__name__でなければなりません。regexpフィールドは regular expression として処理されます。tag_list- タグ付きメトリック用のルールで、graphite フォーマットのsomeName;tag1=value1;tag2=value2、someName、またはtag1=value1;tag2=value2のように、メトリックを簡単に記述するためのシンプルな DSL です。regexpフィールドはtaggedルールに変換されます。タグ名によるソートは不要で、自動的に行われます。タグの値 (名前ではなく) は regular expression として指定できます。たとえばenv=(dev|staging)です。
regexp– メトリック名の pattern (regular expression または DSL) 。age– データの最小経過時間 (秒) 。precision– データの経過時間を秒単位でどの程度の精度で定義するか。86400 (1 日の秒数) の約数である必要があります。function– age が範囲[age, age + precision]に入るデータに適用する集約関数の名前。使用できる関数: min / max / any / avg。平均値は、平均の平均のように不正確に計算されます。
ルールタイプを使用しない設定例
ルールタイプを含む設定例
データのロールアップは、マージ時に実行されます。通常、古いパーティションではマージは開始されないため、ロールアップを行うには optimize を使用して、予定外のマージをトリガーする必要があります。あるいは、graphite-ch-optimizer などの追加ツールを使用してください。