hbase RowFilter
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}
参考
hbase权威指南
原文地址:hbase RowFilter, 感谢原作者分享。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





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

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 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.

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

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 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

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

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
