hbase RowFilter
RowFilter用于过滤row key Operator Description LESS 小于 LESS_OR_EQUAL 小于等于 EQUAL 等于 NOT_EQUAL 不等于 GREATER_OR_EQUAL 大于等于 GREATER 大于 NO_OP 排除所有 Comparator Description BinaryComparator 使用Bytes.compareTo()比较 BinaryPrefix
RowFilter用于过滤row key
Operator | Description |
---|---|
LESS |
小于 |
LESS_OR_EQUAL |
小于等于 |
EQUAL |
等于 |
NOT_EQUAL |
不等于 |
GREATER_OR_EQUAL |
大于等于 |
GREATER |
大于 |
NO_OP |
排除所有 |
Comparator | Description |
---|---|
BinaryComparator |
使用Bytes.compareTo()比较 |
BinaryPrefixComparator |
和BinaryComparator差不多,从前面开始比较 |
NullComparator |
Does?not compare against an actual value but whether a given one is?null , or not?null . |
BitComparator |
Performs?a bitwise comparison, providing a?BitwiseOp ?class with?AND ,?OR , and?XOR ?operators. |
RegexStringComparator |
正则表达式 |
SubstringComparator |
把数据当成字符串,用contains()来判断 |
import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.filter.BinaryComparator; import org.apache.hadoop.hbase.filter.BinaryPrefixComparator; import org.apache.hadoop.hbase.filter.CompareFilter; import org.apache.hadoop.hbase.filter.Filter; import org.apache.hadoop.hbase.filter.RegexStringComparator; import org.apache.hadoop.hbase.filter.RowFilter; import org.apache.hadoop.hbase.filter.SubstringComparator; public class TestHbaseRowFilter { String tableName = "test_row_filter"; Configuration config = HBaseConfiguration.create(); /** * 部分代码来自hbase权威指南 * @throws IOException */ public void testRowFilter() throws IOException { HTable table = new HTable(config, tableName); Scan scan = new Scan(); System.out.println("小于等于row010的行"); Filter filter1 = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, new BinaryComparator("row010".getBytes())); scan.setFilter(filter1); ResultScanner scanner1 = table.getScanner(scan); for (Result res : scanner1) { System.out.println(res); } scanner1.close(); System.out.println("正则获取结尾为5的行"); Filter filter2 = new RowFilter(CompareFilter.CompareOp.EQUAL, new RegexStringComparator(".*5$")); scan.setFilter(filter2); ResultScanner scanner2 = table.getScanner(scan); for (Result res : scanner2) { System.out.println(res); } scanner2.close(); System.out.println("包行有5的行"); Filter filter3 = new RowFilter(CompareFilter.CompareOp.EQUAL, new SubstringComparator("5")); scan.setFilter(filter3); ResultScanner scanner3 = table.getScanner(scan); for (Result res : scanner3) { System.out.println(res); } scanner3.close(); System.out.println("开头是row01的"); Filter filter4 = new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryPrefixComparator("row01".getBytes())); scan.setFilter(filter4); ResultScanner scanner4 = table.getScanner(scan); for (Result res : scanner4) { System.out.println(res); } scanner3.close(); } /** * 初始化数据 */ public void init() { // 创建表和初始化数据 try { HBaseAdmin admin = new HBaseAdmin(config); if (!admin.tableExists(tableName)) { HTableDescriptor htd = new HTableDescriptor(tableName); HColumnDescriptor hcd1 = new HColumnDescriptor("data"); htd.addFamily(hcd1); HColumnDescriptor hcd2 = new HColumnDescriptor("url"); htd.addFamily(hcd2); admin.createTable(htd); } HTable table = new HTable(config, tableName); table.setAutoFlush(false); int count = 50; for (int i = 1; i <h2 id="输出结果">输出结果</h2> <pre class="brush:php;toolbar:false">小于等于row010的行 keyvalues={row001/data:col1/1364133382268/Put/vlen=7, row001/url:col1/1364133382268/Put/vlen=6} keyvalues={row002/data:col2/1364133382268/Put/vlen=7, row002/url:col2/1364133382268/Put/vlen=6} keyvalues={row003/data:col3/1364133382268/Put/vlen=7, row003/url:col3/1364133382268/Put/vlen=6} keyvalues={row004/data:col4/1364133382268/Put/vlen=7, row004/url:col4/1364133382268/Put/vlen=6} keyvalues={row005/data:col5/1364133382268/Put/vlen=7, row005/url:col5/1364133382268/Put/vlen=6} keyvalues={row006/data:col6/1364133382268/Put/vlen=7, row006/url:col6/1364133382268/Put/vlen=6} keyvalues={row007/data:col7/1364133382268/Put/vlen=7, row007/url:col7/1364133382268/Put/vlen=6} keyvalues={row008/data:col8/1364133382268/Put/vlen=7, row008/url:col8/1364133382268/Put/vlen=6} keyvalues={row009/data:col9/1364133382268/Put/vlen=7, row009/url:col9/1364133382268/Put/vlen=6} keyvalues={row010/data:col0/1364133382268/Put/vlen=7, row010/url:col0/1364133382268/Put/vlen=6} 正则获取结尾为5的行 keyvalues={row005/data:col5/1364133382268/Put/vlen=7, row005/url:col5/1364133382268/Put/vlen=6} keyvalues={row015/data:col5/1364133382268/Put/vlen=7, row015/url:col5/1364133382268/Put/vlen=6} keyvalues={row025/data:col5/1364133382268/Put/vlen=7, row025/url:col5/1364133382268/Put/vlen=6} keyvalues={row035/data:col5/1364133382268/Put/vlen=7, row035/url:col5/1364133382268/Put/vlen=6} keyvalues={row045/data:col5/1364133382268/Put/vlen=7, row045/url:col5/1364133382268/Put/vlen=6} 包行有5的行 keyvalues={row005/data:col5/1364133382268/Put/vlen=7, row005/url:col5/1364133382268/Put/vlen=6} keyvalues={row015/data:col5/1364133382268/Put/vlen=7, row015/url:col5/1364133382268/Put/vlen=6} keyvalues={row025/data:col5/1364133382268/Put/vlen=7, row025/url:col5/1364133382268/Put/vlen=6} keyvalues={row035/data:col5/1364133382268/Put/vlen=7, row035/url:col5/1364133382268/Put/vlen=6} keyvalues={row045/data:col5/1364133382268/Put/vlen=7, row045/url:col5/1364133382268/Put/vlen=6} keyvalues={row050/data:col0/1364133382268/Put/vlen=7, row050/url:col0/1364133382268/Put/vlen=6} 开头是row01的 keyvalues={row010/data:col0/1364133382268/Put/vlen=7, row010/url:col0/1364133382268/Put/vlen=6} keyvalues={row011/data:col1/1364133382268/Put/vlen=7, row011/url:col1/1364133382268/Put/vlen=6} keyvalues={row012/data:col2/1364133382268/Put/vlen=7, row012/url:col2/1364133382268/Put/vlen=6} keyvalues={row013/data:col3/1364133382268/Put/vlen=7, row013/url:col3/1364133382268/Put/vlen=6} keyvalues={row014/data:col4/1364133382268/Put/vlen=7, row014/url:col4/1364133382268/Put/vlen=6} keyvalues={row015/data:col5/1364133382268/Put/vlen=7, row015/url:col5/1364133382268/Put/vlen=6} keyvalues={row016/data:col6/1364133382268/Put/vlen=7, row016/url:col6/1364133382268/Put/vlen=6} keyvalues={row017/data:col7/1364133382268/Put/vlen=7, row017/url:col7/1364133382268/Put/vlen=6} keyvalues={row018/data:col8/1364133382268/Put/vlen=7, row018/url:col8/1364133382268/Put/vlen=6} keyvalues={row019/data:col9/1364133382268/Put/vlen=7, row019/url:col9/1364133382268/Put/vlen=6}
参考
hbase权威指南
原文地址:hbase RowFilter, 感谢原作者分享。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









ビッグデータ時代の到来に伴い、データの処理と保存の重要性がますます高まっており、大量のデータをいかに効率的に管理、分析するかが企業にとっての課題となっています。 Apache Foundation の 2 つのプロジェクトである Hadoop と HBase は、ビッグ データのストレージと分析のためのソリューションを提供します。この記事では、ビッグデータのストレージとクエリのために Beego で Hadoop と HBase を使用する方法を紹介します。 1. Hadoop と HBase の概要 Hadoop は、オープンソースの分散ストレージおよびコンピューティング システムです。

依存関係: org.springframework.dataspring-data-hadoop-hbase2.5.0.RELEASEorg.apache.hbasehbase-client1.1.2org.springframework.dataspring-data-hadoop2.5.0.RELEASE 構成を追加する正式な方法は、xml を使用することです。 simple 書き換えると以下のようになります。 @ConfigurationpublicclassHBaseConfiguration{@Value("${hbase.zooke

Java を使用して HBase に基づいた NoSQL データベース アプリケーションを開発する方法 はじめに: ビッグ データ時代の到来により、NoSQL データベースは大量のデータを処理するための重要なツールの 1 つになりました。 HBase は、オープンソースの分散型 NoSQL データベース システムとして、ビッグ データの分野で広範なアプリケーションを備えています。この記事では、Java を使用して HBase に基づく NoSQL データベース アプリケーションを開発する方法を紹介し、具体的なコード例を示します。 1. HBase の概要: HBase は、Hadoop に基づく分散システムです。

ビッグデータ時代の到来により、大量のデータの保存と処理が特に重要になっています。 NoSQL データベースに関しては、HBase が現在広く使用されているソリューションです。 Go 言語は、静的に強く型付けされたプログラミング言語であり、そのシンプルな構文と優れたパフォーマンスにより、クラウド コンピューティング、Web サイト開発、データ サイエンスなどの分野で使用されることが増えています。この記事では、Go 言語で HBase を使用して効率的な NoSQL データベース アプリケーションを実装する方法を紹介します。 HBase の概要 HBase は、拡張性が高く、信頼性が高く、基本的な

インターネット アプリケーションとデータ量の継続的な増加に伴い、従来のリレーショナル データベースでは、大量のデータの保存と処理のニーズを満たすことができなくなりました。新しいタイプのデータベース管理システムとして、NoSQL (NotOnlySQL) は大規模なデータの保存と処理において大きな利点があり、ますます注目され、応用されています。 NoSQL データベースの中でも、ApacheHBase は非常に人気のあるオープンソースの分散データベースであり、Google の BigTable のアイデアに基づいて設計されており、

Beego フレームワークでのデータ ストレージとクエリに HBase を使用する インターネット時代の継続的な発展に伴い、データ ストレージとクエリはますます重要になってきています。ビッグデータ時代の到来により、さまざまなデータソースがそれぞれの分野で重要な位置を占めていますが、非リレーショナルデータベースはデータストレージとクエリに明らかな利点を備えたデータベースであり、HBaseはHadoopをベースとした分散型非リレーショナルデータベースです。リレーショナル データベース。この記事では、Beego フレームワークでのデータ ストレージとクエリに HBase を使用する方法を紹介します。 1.H

Workerman は、多数の同時接続をホストできる高性能 PHPsocket フレームワークです。従来の PHP フレームワークとは異なり、Workerman は Apache や Nginx などの Web サーバーに依存せず、PHP プロセスを開始することでアプリケーション全体を単独で実行します。 Workerman は非常に高い作業効率と優れた耐荷重性を備えています。同時に、HBase はビッグデータで広く使用されている分散型 NoSQL データベース システムです。

HBase は、大規模な構造化データを保存および処理するために設計された Hadoop ベースの分散ストレージ システムです。読み取りおよび書き込みのパフォーマンスを最適化するために、HBase はさまざまなキャッシュ メカニズムを提供します。これにより、クエリ効率が向上し、適切な構成を通じて読み取りおよび書き込みの遅延が軽減されます。この記事では、HBase キャッシュ テクノロジとその構成方法を紹介します。 HBase のキャッシュ タイプ HBase は、ブロック キャッシュ (BlockCache) と MemStore キャッシュ (書き込みキャッシュとも呼ばれます) という 2 つの基本的なキャッシュ メカニズムを提供します。ブロックキャッシュは次のとおりです
