Heim Datenbank MySQL-Tutorial 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>
    
    


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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Heiße Themen

Java-Tutorial
1659
14
PHP-Tutorial
1257
29
C#-Tutorial
1231
24
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

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

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

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