HBaseモードのケースログデータと時系列データ

プラットフォームを共有していただきありがとうございます-http://bjbsair.com/2020-04-10/tech-info/53339.html

この記事では、HBaseモードのケースの1つであるログデータと時系列データを紹介します。

次のデータ要素が収集されていると仮定します。

  • ホスト名(Hostname)
  • タイムスタンプ
  • ログイベント
  • 値/メッセージ

それらをLOG_DATAという名前のHBaseテーブルに格納できますが、rowkeyはどうなりますか?これらの属性から、行キーはホスト名、タイムスタンプ、およびログイベントのいくつかの組み合わせになりますが、正確には何ですか?

Rowkeyの主要な位置のタイムスタンプ

rowkey [timestamp] [hostname] [log-event]は、単調増加する行キー/時系列データで説明されている単調増加する行キーの問題の影響を受けます。

タイムスタンプでmod操作を実行することにより、「バケット」タイムスタンプに関するdist-listで別のモードが言及されることがよくあります。時間スキャンが重要な場合、これは便利な方法です。結果を返すには同じ数のスキャンが必要になるため、バケットの数に注意する必要があります。

HBaseモードのケース:ログデータと時系列データ

建設:

HBaseモードのケース:ログデータと時系列データ

上記のように、特定の時間範囲のデータを選択するには、ストレージバケットごとにスキャンを実行する必要があります。たとえば、100個のストレージバケットは、キースペースに幅広い分布を提供しますが、データの単一のタイムスタンプを取得するには100スキャンが必要であるため、トレードオフがあります。

Rowkeyの支配的な地位にあるホスト

キースペース全体で書き込みと読み取りを行うホストが多数ある場合は、rowkey [hostname] [log-event] [timestamp]が候補です。この方法は、ホスト名によるスキャンが優先される場合に非常に役立ちます。

タイムスタンプまたは逆タイムスタンプ

最も重要なアクセスパスが最新のイベントをプルすることである場合、タイムスタンプを逆のタイムスタンプとして保存すると(たとえば、timestamp = Long.MAX_VALUE – timestamp)、[hostname] [log-event]をスキャンして取得する機能が作成されます最後にキャプチャされたイベントの属性。

どちらの方法も間違っていません。それは、最も適切な状況に依存します。

逆スキャンAPI

HBASE-4811は、テーブルまたはテーブルの範囲を逆方向にスキャンするAPIを実装しているため、順方向または逆方向スキャンのパターン最適化の必要性が減少します。この機能はHBase 0.98以降で使用できます。

可変長または固定長の行キー

HBaseの各列に行パスワードを追加することは非常に重要です。ホスト名がaで、イベントタイプがe1の場合、結果の行キーは小さくなります。しかし、取り込まれたホスト名がmyserver1.mycompany.comで、イベントタイプがcom.package1.subpackage2.subsubpackage3.ImportantServiceの場合はどうなりますか?

行キーでいくつかの置換を使用することは意味があるかもしれません。ハッシュと数値の少なくとも2つの方法があります。Rowkey Lead Positionの例のホスト名では、次のようになります。

ハッシュ付き複合行キー:

  • [ホスト名のMD5ハッシュ] = 16バイト([ホスト名のMD5ハッシュ] = 16バイト)
  • [イベントタイプのMD5ハッシュ] = 16バイト([イベントタイプのMD5ハッシュ] = 16バイト)
  • [タイムスタンプ] = 8バイト([タイムスタンプ] = 8バイト)

数値置換を伴う複合行キー:

この方法では、LOG_DATA(LOG_TYPESと呼ばれる)に加えて、別のルックアップテーブルが必要です。LOG_TYPESの行キーは次のとおりです。

  • [タイプ](例えば、ホスト名とイベントタイプを示すバイト)。
  • [バイト]、元のホスト名またはイベントタイプの可変長バイト。

この行キーの列は、HBaseカウンターを使用して取得できる、指定された番号を持つ長整数である場合があります。

したがって、結果の複合行キーは次のようになります。

  • [代替ホスト名ロング] = 8バイト([ホスト名の代替ロング] = 8バイト)
  • [長期置換イベントタイプ] = 8バイト([イベントタイプの代わりに長いイベント] = 8バイト)
  • [タイムスタンプ] = 8バイト([タイムスタンプ] = 8バイト)

ハッシュまたは数値の置換方法では、ホスト名とイベントタイプの元の値を列として保存できます。

おすすめ

転載: blog.51cto.com/14744108/2486399