データ パーティションは、ログ データをグループ化または整理して、クエリをより高速かつ効率的に行う方法です。クエリが単一のパーティションをターゲットにしている場合、UI は次のようにログを記録します。
- 無関係なデータをスキャンすることが少なくなります
- 結果をより速く返す
アカウントは複数のパーティションを持つことができ、複数のパーティションを同時に照会することができます。
また、データパーティションでは、30日間の固定保持期間を持つ代替の「セカンダリ」ネームスペースにデータをマッピングすることができます。この機能は、一般データ保護規則(GDPR)のようなプライバシーを重視した規制や基準に準拠するために役立ちます。
パーティションの計画
パーティションの作成を始める前に、 必要なパーミッション と、パーティションの実装方法についての計画があることを確認します。
重要
ログは、データがNRDBに書き込まれる前に、取り込み処理中にパーティションにルーティングされます。パーティションルールは、ルール作成前に取り込まれたログには影響しません。
パーティションのサイズと構成
データ パーティションを適切に使用することで、パフォーマンスを大幅に向上できます。 データを個別のパーティションに整理すると、必要なデータだけをクエリできるようになります。 単一のパーティションまたはコンマで区切られたパーティションのリストをクエリできます。 データをパーティション分割する目的は次のとおりです。
- 環境または組織内の静的または頻繁に変更されないカテゴリ (たとえば、ビジネス ユニット、チーム、環境、サービスなど) に合わせてデータ パーティションを作成します。
- パーティションを作成して、最も一般的なクエリに対してスキャンする必要があるイベントの数を最適化します。 厳密なルールはありませんが、一般的に、scanned ログイベントの
common
書き込みは 5 億以上(特に 10 億以上)になるため、パーティショニングを調整することを検討してください。
スキャンされたイベントの主な要因:
パーティションサイズ(イベント数)
特定のパーティションのデフォルトの保持期間(クエリでスキャンできる潜在的なイベントの合計に影響します)
NRQLの時間枠
チャートとダッシュボードの構造
- デフォルトの時間枠の期間
- ダッシュボード内のグラフの数(クエリの数が増える)
適切なパーティションサイズはどれくらいですか?
パーティションの数が多いほど、よりターゲットを絞った検索が可能になりますが、パーティションを多く作成しすぎると、ログが見つけにくくなり、管理オーバーヘッドが増加する可能性があります。 適切なバランスを見つけることが重要です。
アカウントごとに最大 100 個のパーティションがサポートされていますが、ほとんどのアカウントにとって最適な数は、パーティション スキームがどの程度整理されているか、およびさまざまなチームやチーム メンバーによるプラットフォームの使用をどの程度うまく調整できるかによって異なります。 顧客によっては、アカウント内の 12 個を超えるパーティションを管理することが困難だと感じるかもしれませんが、ニーモニック命名規則を使用してデータを論理的にグループ化した適切に整理されたパーティションであれば、それをはるかに超えて拡張できると考えています。
パーティションサイズを見積もるためのヒント
特定のパーティションに 1 日にどのくらいのイベントが入るかを把握するには、次の手順を実行します。
FROM Log_nginxSELECT count(*)SINCE 1 day ago
さらに、 NrDbQuery
イベントを分析することで、パーティションに対する実際のクエリの使用状況とパフォーマンスを把握できます。 これには、クエリの期間、実際の NRQL ステートメント自体、クエリで使用される時間ウィンドウなど、さまざまな便利な属性があります。
たとえば、次の書き込みは、指定されたパーティションのログ書き込みで使用される時間ウィンドウ サイズのヒストグラムを返します。
FROM NrdbQuery SELECT histogram(timeWindowMinutes, 5, 5) WHERE query like '%Log_nginx%'
もう 1 つの便利なテクニックは、特定のパーティションに対する最も遅いクエリに焦点を絞り、それらのクエリで使用されている時間枠を理解することです。
FROM NrdbQuerySELECT percentile(durationMs, 90)WHERE query like '%Log_nginx%'FACET query, timeWindowMinutes
ネームスペースの選択
パーティションの名前空間は、その保持期間を決定します。 2つの保持オプションを提供します。
- Standard: New Relic サブスクリプションによって決定されるアカウントのデフォルトの保持期間。 これは、アカウントで利用可能な最大保持期間であり、ほとんどのパーティションに対して選択するネームスペースです。
- Secondary: 30日間保持されます。 セカンダリ ネームスペースのメンバーであるパーティションに送信されたすべてのログは、取り込まれてから 30 日後にローリング ベースで消去されます。
二次保持はコスト管理メカニズムではありません。 データは取り込み時に課金されます。
NerdGraphAPIを使用してデータパーティションを管理する
データ パーティションをプログラムで管理する場合は、NerdGraph API エクスプローラーを使用できます: one.newrelic.com > All capabilities > Apps > NerdGraph API explorer 。 NerdGraph データ パーティション チュートリアルでは、この API を使用してデータ パーティションをクエリ、作成、削除する方法を示します。
UIを介してパーティションルールを作成する
ログクエリ バーの左側にあるData partitionsをクリックし、保持ネームスペース、オプションの説明、および一致基準を含むパーティション名を作成します。
新しいパーティションルールを作成するには
- one.newrelic.com > All capabilities > Logsに移動します。
- ログクエリバーの左側にあるPartitionをクリックし、次にCreate newをクリックします。
- Partition name
Log_
で始まる英数字の文字列として定義します。 - 任意の説明を追加します。
- パーティションに リテンション・ネームスペース を選択します。
- ルールのMatching criteriaを設定します: このパーティションに保存するログに一致する有効な NRQL
WHERE
句を入力します。
パーティションを表示するには、 Partitionドロップダウンをクリックします。
データ・パーティションの検索
デフォルトのパーティションはLog
です。パーティション ルールの影響を受けないログは、デフォルトでLog
パーティションに保存されます。
複数のパーティションに対して同時にクエリを実行できます。最高のパフォーマンスを得るには、可能な限り最小のパーティション数を選択してください。
パーティションを検索するには: ログ クエリ バーの左側にあるPartitionをクリックし、パーティション検索バーを使用します。