Rumah pangkalan data tutorial 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>
    
    


Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Menggunakan Hadoop dan HBase dalam Beego untuk penyimpanan data besar dan pertanyaan Menggunakan Hadoop dan HBase dalam Beego untuk penyimpanan data besar dan pertanyaan Jun 22, 2023 am 10:21 AM

Dengan kemunculan era data besar, pemprosesan dan penyimpanan data menjadi semakin penting, dan cara mengurus dan menganalisis sejumlah besar data dengan cekap telah menjadi cabaran bagi perusahaan. Hadoop dan HBase, dua projek Yayasan Apache, menyediakan penyelesaian untuk penyimpanan dan analisis data besar. Artikel ini akan memperkenalkan cara menggunakan Hadoop dan HBase dalam Beego untuk storan dan pertanyaan data besar. 1. Pengenalan kepada Hadoop dan HBase Hadoop ialah sistem storan dan pengkomputeran teragih sumber terbuka yang boleh

Bagaimana untuk mengintegrasikan hbase dalam springboot Bagaimana untuk mengintegrasikan hbase dalam springboot May 30, 2023 pm 04:31 PM

Ketergantungan: org.springframework.dataspring-data-hadoop-hbase2.5.0.RELEASEorg.apache.hbasehbase-client1.1.2org.springframework.dataspring-data-hadoop2.5.0.RELEASE Cara rasmi untuk menambah konfigurasi adalah melalui xml, iaitu mudah Selepas menulis semula, ia adalah seperti berikut: @ConfigurationpublicclassHBaseConfiguration{@Value("${hbase.zooke

Cara menggunakan Java untuk membangunkan aplikasi pangkalan data NoSQL berdasarkan HBase Cara menggunakan Java untuk membangunkan aplikasi pangkalan data NoSQL berdasarkan HBase Sep 20, 2023 am 08:39 AM

Cara menggunakan Java untuk membangunkan aplikasi pangkalan data NoSQL berdasarkan HBase Pengenalan: Dengan kemunculan era data besar, pangkalan data NoSQL telah menjadi salah satu alat penting untuk memproses data besar-besaran. HBase, sebagai sistem pangkalan data NoSQL teragih sumber terbuka, mempunyai aplikasi yang luas dalam bidang data besar. Artikel ini akan memperkenalkan cara menggunakan Java untuk membangunkan aplikasi pangkalan data NoSQL berdasarkan HBase dan menyediakan contoh kod khusus. 1. Pengenalan kepada HBase: HBase ialah sistem pengedaran berdasarkan Hadoop.

PHP dan Apache HBase berintegrasi untuk melaksanakan pangkalan data NoSQL dan storan teragih PHP dan Apache HBase berintegrasi untuk melaksanakan pangkalan data NoSQL dan storan teragih Jun 25, 2023 pm 06:01 PM

Dengan pertumbuhan berterusan aplikasi Internet dan volum data, pangkalan data hubungan tradisional tidak lagi dapat memenuhi keperluan menyimpan dan memproses data besar-besaran. Sebagai sistem pengurusan pangkalan data jenis baharu, NoSQL (NotOnlySQL) mempunyai kelebihan ketara dalam penyimpanan dan pemprosesan data secara besar-besaran, dan telah menerima lebih banyak perhatian dan aplikasi. Antara pangkalan data NoSQL, ApacheHBase ialah pangkalan data teragih sumber terbuka yang sangat popular Ia direka berdasarkan idea BigTable Google dan mempunyai

Gunakan HBase dalam bahasa Go untuk melaksanakan aplikasi pangkalan data NoSQL yang cekap Gunakan HBase dalam bahasa Go untuk melaksanakan aplikasi pangkalan data NoSQL yang cekap Jun 15, 2023 pm 08:56 PM

Dengan kemunculan era data besar, penyimpanan dan pemprosesan data besar-besaran telah menjadi sangat penting. Dari segi pangkalan data NoSQL, HBase kini merupakan penyelesaian yang digunakan secara meluas. Sebagai bahasa pengaturcaraan yang ditaip kuat secara statik, bahasa Go semakin digunakan dalam bidang seperti pengkomputeran awan, pembangunan tapak web dan sains data kerana sintaksnya yang mudah dan prestasi cemerlang. Artikel ini akan memperkenalkan cara menggunakan HBase dalam bahasa Go untuk melaksanakan aplikasi pangkalan data NoSQL yang cekap. Pengenalan HBase HBase adalah asas yang sangat berskala, sangat boleh dipercayai

Menggunakan HBase untuk penyimpanan data dan pertanyaan dalam Beego Menggunakan HBase untuk penyimpanan data dan pertanyaan dalam Beego Jun 22, 2023 am 11:58 AM

Menggunakan HBase untuk penyimpanan data dan pertanyaan dalam rangka kerja Beego Dengan perkembangan berterusan era Internet, penyimpanan data dan pertanyaan menjadi semakin kritikal. Dengan kemunculan era data besar, pelbagai sumber data menduduki kedudukan penting dalam bidang masing-masing Pangkalan data bukan hubungan adalah pangkalan data dengan kelebihan yang jelas dalam penyimpanan dan pertanyaan data, dan HBase ialah pangkalan data bukan hubungan yang diedarkan berdasarkan Hadoop. Pangkalan data perhubungan. Artikel ini akan memperkenalkan cara menggunakan HBase untuk penyimpanan data dan pertanyaan dalam rangka kerja Beego. 1. H

Cara menggunakan HBase untuk penyimpanan data dan pertanyaan dalam Workerman Cara menggunakan HBase untuk penyimpanan data dan pertanyaan dalam Workerman Nov 07, 2023 am 08:30 AM

Workerman ialah rangka kerja PHPsocket berprestasi tinggi yang boleh mengehoskan sejumlah besar sambungan serentak. Tidak seperti rangka kerja PHP tradisional, Workerman tidak bergantung pada pelayan web seperti Apache atau Nginx Sebaliknya, ia menjalankan keseluruhan aplikasi dengan sendirinya dengan memulakan proses PHP. Pekerja mempunyai kecekapan operasi yang sangat tinggi dan kapasiti beban yang lebih baik. Pada masa yang sama, HBase ialah sistem pangkalan data NoSQL teragih yang digunakan secara meluas dalam data besar

Ketahui tentang teknologi caching HBase Ketahui tentang teknologi caching HBase Jun 20, 2023 pm 07:15 PM

HBase ialah sistem storan teragih berasaskan Hadoop yang direka untuk menyimpan dan memproses data berstruktur berskala besar. Untuk mengoptimumkan prestasi baca dan tulisnya, HBase menyediakan pelbagai mekanisme caching, yang boleh meningkatkan kecekapan pertanyaan dan mengurangkan kelewatan baca dan tulis melalui konfigurasi yang munasabah. Artikel ini akan memperkenalkan teknologi caching HBase dan cara mengkonfigurasinya. Jenis cache HBase HBase menyediakan dua mekanisme cache asas: cache blok (BlockCache) dan cache MemStore (juga dipanggil cache tulis). Cache blok sudah masuk

See all articles