Maison base de données tutoriel mysql Hbase DependentColumnFilter

Hbase DependentColumnFilter

Jun 07, 2016 pm 04:29 PM
hbase

Here you have a more complex filter that does not simply filter out data based on directly available information. Rather, it lets you specify a dependent column—or reference column—that controls how other columns are filtered. It uses th

Here you have a more complex filter that does not simply filter out data based on
directly available information. Rather, it lets you specify a dependent column—or
reference column—that controls how other columns are filtered. It uses the timestamp
of the reference column and includes all other columns that have the same timestamp.

尝试找到该列所在的每一行,并返回该行具有相同时间戳的全部键值对。如果某一行不包含指定的列,则该行的任何键值对都不返回。
如果dropDependentColumn=true,则从属列不返回。

via: http://abloz.com/2012/08/22/the-hbases-content-query-2.html

package com.fatkun.filter.comparison;
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.KeyValue;
import org.apache.hadoop.hbase.client.Get;
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.BinaryPrefixComparator;
import org.apache.hadoop.hbase.filter.CompareFilter;
import org.apache.hadoop.hbase.filter.DependentColumnFilter;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.SubstringComparator;
import org.apache.hadoop.hbase.filter.ValueFilter;
import org.apache.hadoop.hbase.filter.WritableByteArrayComparable;
import org.apache.hadoop.hbase.util.Bytes;
public class TestHbaseDependentColumnFilter {
    String tableName = "test_value_filter";
    Configuration config = HBaseConfiguration.create();
    public void filter(boolean drop, CompareFilter.CompareOp operator,
            WritableByteArrayComparable comparator) throws IOException {
        HTable table = new HTable(config, tableName);
        //
        Filter filter;
        if (comparator != null) {
            // drop为true时,filter表示对"col1"列以外的所有"data1"列族数据做filter操作
            // drop为false时,表示对所有"data1"列族的数据做filter操作
            filter = new DependentColumnFilter(Bytes.toBytes("data1"),
                    Bytes.toBytes("col1"), drop, operator, comparator);
        } else {
            filter = new DependentColumnFilter(Bytes.toBytes("data1"),
                    Bytes.toBytes("col1"), drop);
        }
        // filter应用于scan
        Scan scan = new Scan();
        scan.setFilter(filter);
        ResultScanner scanner = table.getScanner(scan);
        for (Result result : scanner) {
            for (KeyValue kv : result.list()) {
                System.out.println("kv=" + kv.toString() + ",value="
                        + Bytes.toString(kv.getValue()));
            }
        }
        scanner.close();
        table.close();
    }
    /**
     * 部分代码来自hbase权威指南
     * 
     * @throws IOException
     */
    public void testFilter() throws IOException {
        // The dropDependentColumn parameter is giving you additional control
        // over how the reference column is handled: it is either included or
        // dropped by the filter
        // 1.获取整个"data1"列族当前Version中的所有timestamp等于参照列"data1:col1"的数据
        System.out.println("drop=false");
        filter(false, CompareFilter.CompareOp.NO_OP, null);
        // 2.获取除了"col1"列以外的"data1"列族中的所有timestamp等于参照列"data1:col1"的数据
        System.out.println("drop=true");
        filter(true, CompareFilter.CompareOp.NO_OP, null);
        // 3.获取除了"col1"列以外的"data1"列族当前Version中的所有timestamp等于参照列"data1:col1"的,value以"data100"开头的所有数据
        System.out.println("比较");
        filter(true, CompareFilter.CompareOp.EQUAL, new BinaryPrefixComparator(
                Bytes.toBytes("data100")));
    }
    /**
     * 初始化数据
     */
    public void init() {
        // 创建表和初始化数据
        try {
            HBaseAdmin admin = new HBaseAdmin(config);
            if (!admin.tableExists(tableName)) {
                HTableDescriptor htd = new HTableDescriptor(tableName);
                HColumnDescriptor hcd1 = new HColumnDescriptor("data1");
                htd.addFamily(hcd1);
                HColumnDescriptor hcd2 = new HColumnDescriptor("data2");
                htd.addFamily(hcd2);
                HColumnDescriptor hcd3 = new HColumnDescriptor("data3");
                htd.addFamily(hcd3);
                admin.createTable(htd);
            }
            HTable table = new HTable(config, tableName);
            table.setAutoFlush(false);
            int count = 50;
            for (int i = 1; i 
    <p class="copyright">
        原文地址:Hbase DependentColumnFilter, 感谢原作者分享。
    </p>
    
    


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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Blue Prince: Comment se rendre au sous-sol
1 Il y a quelques mois 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)

Sujets chauds

Tutoriel Java
1664
14
Tutoriel PHP
1268
29
Tutoriel C#
1248
24
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

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.

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.

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.

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.

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

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