Table des matières
输出结果
参考

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}
Copier après la connexion

参考

hbase权威指南

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Utilisation de Hadoop et HBase dans Beego pour le stockage et les requêtes Big Data Utilisation de Hadoop et HBase dans Beego pour le stockage et les requêtes Big Data Jun 22, 2023 am 10:21 AM

Avec l'avènement de l'ère du Big Data, le traitement et le stockage des données sont devenus de plus en plus importants, et la gestion et l'analyse efficaces de grandes quantités de données sont devenues un défi pour les entreprises. Hadoop et HBase, deux projets de la Fondation Apache, proposent une solution de stockage et d'analyse du Big Data. Cet article explique comment utiliser Hadoop et HBase dans Beego pour le stockage et les requêtes Big Data. 1. Introduction à Hadoop et HBase Hadoop est un système informatique et de stockage distribué open source qui peut

Comment intégrer hbase dans springboot Comment intégrer hbase dans springboot May 30, 2023 pm 04:31 PM

Dépendance : org.springframework.dataspring-data-hadoop-hbase2.5.0.RELEASEorg.apache.hbasehbase-client1.1.2org.springframework.dataspring-data-hadoop2.5.0.RELEASE La manière officielle d'ajouter une configuration consiste à utiliser XML, qui est simple Après réécriture, cela se présente comme suit : @ConfigurationpublicclassHBaseConfiguration{@Value("${hbase.zooke

Utilisez HBase dans le langage Go pour implémenter des applications de base de données NoSQL efficaces Utilisez HBase dans le langage Go pour implémenter des applications de base de données NoSQL efficaces Jun 15, 2023 pm 08:56 PM

Avec l’avènement de l’ère du Big Data, le stockage et le traitement de données massives sont devenus particulièrement importants. En termes de bases de données NoSQL, HBase est actuellement une solution largement utilisée. En tant que langage de programmation statiquement fortement typé, le langage Go est de plus en plus utilisé dans des domaines tels que le cloud computing, le développement de sites Web et la science des données en raison de sa syntaxe simple et de ses excellentes performances. Cet article expliquera comment utiliser HBase en langage Go pour implémenter des applications de base de données NoSQL efficaces. Introduction à HBase HBase est un logiciel de base hautement évolutif et hautement fiable.

Utiliser HBase pour le stockage de données et les requêtes dans Beego Utiliser HBase pour le stockage de données et les requêtes dans Beego Jun 22, 2023 am 11:58 AM

Utilisation de HBase pour le stockage et les requêtes de données dans le framework Beego Avec le développement continu de l'ère Internet, le stockage et les requêtes de données sont devenus de plus en plus critiques. Avec l'avènement de l'ère du Big Data, diverses sources de données occupent une place importante dans leurs domaines respectifs. Les bases de données non relationnelles sont une base de données présentant des avantages évidents en matière de stockage et d'interrogation de données, et HBase est une base de données non relationnelle distribuée basée sur Hadoop. Base de données relationnelle. Cet article explique comment utiliser HBase pour le stockage de données et les requêtes dans le framework Beego. 1.H

Comment utiliser Java pour développer une application de base de données NoSQL basée sur HBase Comment utiliser Java pour développer une application de base de données NoSQL basée sur HBase Sep 20, 2023 am 08:39 AM

Comment utiliser Java pour développer une application de base de données NoSQL basée sur HBase Introduction : Avec l'avènement de l'ère du big data, la base de données NoSQL est devenue l'un des outils importants pour le traitement de données massives. HBase, en tant que système de base de données NoSQL distribué open source, possède de nombreuses applications dans le domaine du Big Data. Cet article explique comment utiliser Java pour développer des applications de base de données NoSQL basées sur HBase et fournit des exemples de code spécifiques. 1. Introduction à HBase : HBase est un système de distribution basé sur Hadoop.

Comment utiliser HBase pour le stockage de données et les requêtes dans Workerman Comment utiliser HBase pour le stockage de données et les requêtes dans Workerman Nov 07, 2023 am 08:30 AM

Workerman est un framework PHPsocket hautes performances pouvant héberger un grand nombre de connexions simultanées. Contrairement aux frameworks PHP traditionnels, Workerman ne s'appuie pas sur des serveurs Web tels qu'Apache ou Nginx, mais exécute lui-même l'intégralité de l'application en démarrant un processus PHP. Workerman a une efficacité opérationnelle extrêmement élevée et une meilleure capacité de charge. Dans le même temps, HBase est un système de base de données NoSQL distribué largement utilisé dans le Big Data.

PHP et Apache HBase s'intègrent pour implémenter la base de données NoSQL et le stockage distribué PHP et Apache HBase s'intègrent pour implémenter la base de données NoSQL et le stockage distribué Jun 25, 2023 pm 06:01 PM

Avec la croissance continue des applications Internet et du volume de données, les bases de données relationnelles traditionnelles ne peuvent plus répondre aux besoins de stockage et de traitement de données massives. En tant que nouveau type de système de gestion de bases de données, NoSQL (NotOnlySQL) présente des avantages significatifs en matière de stockage et de traitement massif de données et a reçu de plus en plus d'attention et d'applications. Parmi les bases de données NoSQL, ApacheHBase est une base de données distribuée open source très populaire. Elle est conçue sur la base de l'idée BigTable de Google et possède.

En savoir plus sur la technologie de mise en cache HBase En savoir plus sur la technologie de mise en cache HBase Jun 20, 2023 pm 07:15 PM

HBase est un système de stockage distribué basé sur Hadoop conçu pour stocker et traiter des données structurées à grande échelle. Afin d'optimiser ses performances de lecture et d'écriture, HBase fournit une variété de mécanismes de mise en cache, qui peuvent améliorer l'efficacité des requêtes et réduire les retards de lecture et d'écriture grâce à une configuration raisonnable. Cet article présentera la technologie de mise en cache HBase et comment la configurer. Types de cache HBase HBase fournit deux mécanismes de cache de base : le cache de bloc (BlockCache) et le cache MemStore (également appelé cache d'écriture). Le cache de blocs est dans

See all articles