Inhaltsverzeichnis
输出结果
参考
Heim Datenbank MySQL-Tutorial hbase RowFilter

hbase RowFilter

Jun 07, 2016 pm 04:29 PM
hbase

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}
Nach dem Login kopieren

参考

hbase权威指南

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verwendung von Hadoop und HBase in Beego für die Speicherung und Abfrage großer Datenmengen Verwendung von Hadoop und HBase in Beego für die Speicherung und Abfrage großer Datenmengen Jun 22, 2023 am 10:21 AM

Mit dem Aufkommen des Big-Data-Zeitalters sind Datenverarbeitung und -speicherung immer wichtiger geworden und die effiziente Verwaltung und Analyse großer Datenmengen ist für Unternehmen zu einer Herausforderung geworden. Hadoop und HBase, zwei Projekte der Apache Foundation, bieten eine Lösung für die Speicherung und Analyse großer Datenmengen. In diesem Artikel wird erläutert, wie Sie Hadoop und HBase in Beego für die Speicherung und Abfrage großer Datenmengen verwenden. 1. Einführung in Hadoop und HBase Hadoop ist ein verteiltes Open-Source-Speicher- und Computersystem, das dies kann

So integrieren Sie hbase in Springboot So integrieren Sie hbase in Springboot May 30, 2023 pm 04:31 PM

Abhängigkeit: org.springframework.dataspring-data-hadoop-hbase2.5.0.RELEASEorg.apache.hbasehbase-client1.1.2org.springframework.dataspring-data-hadoop2.5.0.RELEASE Der offizielle Weg zum Hinzufügen von Konfigurationen erfolgt über XML einfach Nach dem Umschreiben lautet es wie folgt: @ConfigurationpublicclassHBaseConfiguration{@Value("${hbase.zooke

Wie man mit Java eine NoSQL-Datenbankanwendung auf Basis von HBase entwickelt Wie man mit Java eine NoSQL-Datenbankanwendung auf Basis von HBase entwickelt Sep 20, 2023 am 08:39 AM

So verwenden Sie Java zum Entwickeln einer NoSQL-Datenbankanwendung auf Basis von HBase. Einführung: Mit dem Aufkommen des Big-Data-Zeitalters ist die NoSQL-Datenbank zu einem wichtigen Werkzeug für die Verarbeitung großer Datenmengen geworden. HBase verfügt als verteiltes Open-Source-NoSQL-Datenbanksystem über umfangreiche Anwendungen im Bereich Big Data. In diesem Artikel wird erläutert, wie Sie mit Java NoSQL-Datenbankanwendungen auf Basis von HBase entwickeln, und es werden spezifische Codebeispiele bereitgestellt. 1. Einführung in HBase: HBase ist ein auf Hadoop basierendes Verteilungssystem.

Verwenden Sie HBase in der Go-Sprache, um effiziente NoSQL-Datenbankanwendungen zu implementieren Verwenden Sie HBase in der Go-Sprache, um effiziente NoSQL-Datenbankanwendungen zu implementieren Jun 15, 2023 pm 08:56 PM

Mit dem Aufkommen des Big-Data-Zeitalters ist die Speicherung und Verarbeitung großer Datenmengen besonders wichtig geworden. Im Hinblick auf NoSQL-Datenbanken ist HBase derzeit eine weit verbreitete Lösung. Als statisch stark typisierte Programmiersprache wird die Go-Sprache aufgrund ihrer einfachen Syntax und hervorragenden Leistung zunehmend in Bereichen wie Cloud Computing, Website-Entwicklung und Datenwissenschaft eingesetzt. In diesem Artikel wird erläutert, wie Sie HBase in der Go-Sprache verwenden, um effiziente NoSQL-Datenbankanwendungen zu implementieren. HBase-Einführung HBase ist eine hoch skalierbare, äußerst zuverlässige Basisversion

PHP und Apache HBase lassen sich integrieren, um eine NoSQL-Datenbank und verteilten Speicher zu implementieren PHP und Apache HBase lassen sich integrieren, um eine NoSQL-Datenbank und verteilten Speicher zu implementieren Jun 25, 2023 pm 06:01 PM

Angesichts des kontinuierlichen Wachstums von Internetanwendungen und Datenmengen können herkömmliche relationale Datenbanken den Anforderungen der Speicherung und Verarbeitung großer Datenmengen nicht mehr gerecht werden. Als neuartiges Datenbankverwaltungssystem bietet NoSQL (NotOnlySQL) erhebliche Vorteile bei der Speicherung und Verarbeitung massiver Daten und erhält immer mehr Aufmerksamkeit und Anwendungen. Unter den NoSQL-Datenbanken ist ApacheHBase eine sehr beliebte verteilte Open-Source-Datenbank. Sie basiert auf der BigTable-Idee von Google

Verwendung von HBase zur Datenspeicherung und Abfrage in Beego Verwendung von HBase zur Datenspeicherung und Abfrage in Beego Jun 22, 2023 am 11:58 AM

Verwendung von HBase zur Datenspeicherung und -abfrage im Beego-Framework Mit der kontinuierlichen Entwicklung des Internetzeitalters sind Datenspeicherung und -abfrage immer wichtiger geworden. Mit dem Aufkommen des Big-Data-Zeitalters nehmen verschiedene Datenquellen in ihren jeweiligen Bereichen eine wichtige Position ein. Nicht-relationale Datenbanken sind Datenbanken mit offensichtlichen Vorteilen bei der Datenspeicherung und -abfrage, und HBase ist eine verteilte, nicht-relationale Datenbank, die auf Hadoop basiert. Relationale Datenbank. In diesem Artikel wird erläutert, wie Sie HBase zur Datenspeicherung und -abfrage im Beego-Framework verwenden. 1. H

So verwenden Sie HBase zur Datenspeicherung und -abfrage in Workerman So verwenden Sie HBase zur Datenspeicherung und -abfrage in Workerman Nov 07, 2023 am 08:30 AM

Workerman ist ein leistungsstarkes PHPsocket-Framework, das eine große Anzahl gleichzeitiger Verbindungen hosten kann. Im Gegensatz zu herkömmlichen PHP-Frameworks ist Workerman nicht auf Webserver wie Apache oder Nginx angewiesen, sondern führt die gesamte Anwendung selbst aus, indem es einen PHP-Prozess startet. Workerman verfügt über eine extrem hohe Betriebseffizienz und eine bessere Tragfähigkeit. Gleichzeitig ist HBase ein verteiltes NoSQL-Datenbanksystem, das in Big Data weit verbreitet ist

Erfahren Sie mehr über die HBase-Caching-Technologie Erfahren Sie mehr über die HBase-Caching-Technologie Jun 20, 2023 pm 07:15 PM

HBase ist ein Hadoop-basiertes verteiltes Speichersystem zum Speichern und Verarbeiten großer strukturierter Daten. Um die Lese- und Schreibleistung zu optimieren, bietet HBase verschiedene Caching-Mechanismen, die durch eine angemessene Konfiguration die Abfrageeffizienz verbessern und Lese- und Schreibverzögerungen reduzieren können. In diesem Artikel werden die HBase-Caching-Technologie und deren Konfiguration vorgestellt. HBase-Cache-Typen HBase bietet zwei grundlegende Cache-Mechanismen: Block-Cache (BlockCache) und MemStore-Cache (auch Schreib-Cache genannt). Der Blockcache ist vorhanden

See all articles