主頁 > 資料庫 > Hbase的JavaAPI和資料存盤

Hbase的JavaAPI和資料存盤

2023-06-13 08:32:21 資料庫

匯入Maven依賴

<dependencies>
    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.4.6</version>
    </dependency>

    <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-client</artifactId>
        <version>2.2.5</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>3.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>3.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-server</artifactId>
        <version>2.2.5</version>
    </dependency>
    <!-- 使用mr程式操作hbase 資料的匯入 -->
    <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-mapreduce</artifactId>
        <version>2.2.5</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>
    <!-- phoenix 鳳凰 用來整合Hbase的工具 -->
    <dependency>
        <groupId>org.apache.phoenix</groupId>
        <artifactId>phoenix-core</artifactId>
        <version>5.0.0-HBase-2.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-auth</artifactId>
        <version>3.1.2</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <!-- bind to the packaging phase -->
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

    </plugins>
</build>

獲取hbase的連接,list出所有的表

package com.doit.day01;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

import java.io.IOException;

/**
 * Hbase的java客戶端連接hbase的時候,只需要連接zookeeper的集群
 * 就可以找到你Hbase集群的位置
 * 核心的物件:
 * Configuration:HbaseConfiguration.create();
 * Connection:ConnectionFactory.createConnection(conf);
 * table:conn.getTable(TableName.valueOf("tb_b")); 對表進行操作 DML
 * Admin:conn.getAdmin();操作Hbase系統DDL,對名稱空間等進行操作
 */
public class ConnectionDemo {
    public static void main(String[] args) throws Exception {
        //獲取到hbase的組態檔物件
        Configuration conf = HBaseConfiguration.create();
        //針對組態檔設定zk的集群地址
        conf.set("hbase.zookeeper.quorum","linux01:2181,linux02:2181,linux03:2181");
        //創建hbase的連接物件
        Connection conn = ConnectionFactory.createConnection(conf);

        //獲取到操作hbase的物件
        Admin admin = conn.getAdmin();

        //呼叫api獲取到所有的表
        TableName[] tableNames = admin.listTableNames();

        //獲取到哪個命名空間下的所有的表
        TableName[] doits = admin.listTableNamesByNamespace("doit");


        for (TableName tableName : doits) {
            byte[] name = tableName.getName();
            System.out.println(new String(name));
        }

        conn.close();
    }
}

獲取到所有的命名空間

package com.doit.day01;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

/**
 * Hbase的java客戶端連接hbase的時候,只需要連接zookeeper的集群
 * 就可以找到你Hbase集群的位置
 * 核心的物件:
 * Configuration:HbaseConfiguration.create();
 * Connection:ConnectionFactory.createConnection(conf);
 * Admin:conn.getAdmin();操作Hbase系統DDL,對名稱空間等進行操作
 */
public class NameSpaceDemo {
    public static void main(String[] args) throws Exception {
        //獲取到hbase的組態檔物件
        Configuration conf = HBaseConfiguration.create();
        //針對組態檔設定zk的集群地址
        conf.set("hbase.zookeeper.quorum","linux01:2181,linux02:2181,linux03:2181");
        //創建hbase的連接物件
        Connection conn = ConnectionFactory.createConnection(conf);

        //獲取到操作hbase的物件
        Admin admin = conn.getAdmin();

        //獲取到命名空間的描述器
        NamespaceDescriptor[] namespaceDescriptors = admin.listNamespaceDescriptors();

        for (NamespaceDescriptor namespaceDescriptor : namespaceDescriptors) {
            //針對描述器獲取到命名空間的名稱
            String name = namespaceDescriptor.getName();
            System.out.println(name);
        }

        conn.close();
    }
}

創建一個命名空間

package com.doit.day01;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos;

import java.util.Properties;

/**
 * Hbase的java客戶端連接hbase的時候,只需要連接zookeeper的集群
 * 就可以找到你Hbase集群的位置
 * 核心的物件:
 * Configuration:HbaseConfiguration.create();
 * Connection:ConnectionFactory.createConnection(conf);
 * Admin:conn.getAdmin();操作Hbase系統DDL,對名稱空間等進行操作
 */
public class CreateNameSpaceDemo {
    public static void main(String[] args) throws Exception {
        //獲取到hbase的組態檔物件
        Configuration conf = HBaseConfiguration.create();
        //針對組態檔設定zk的集群地址
        conf.set("hbase.zookeeper.quorum","linux01:2181,linux02:2181,linux03:2181");
        //創建hbase的連接物件
        Connection conn = ConnectionFactory.createConnection(conf);

        //獲取到操作hbase的物件
        Admin admin = conn.getAdmin();

        //獲取到命名空間描述器的構建器
        NamespaceDescriptor.Builder spaceFromJava = NamespaceDescriptor.create("spaceFromJava");
        //當然還可以給命名空間設定屬性
        spaceFromJava.addConfiguration("author","robot_jiang");
        spaceFromJava.addConfiguration("desc","this is my first java namespace...");
        //拿著構建器構建命名空間的描述器
        NamespaceDescriptor build = spaceFromJava.build();
        //創建命名空間
        admin.createNamespace(build);

        conn.close();
    }
}

創建帶有多列族的表

package com.doit.day01;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.protobuf.generated.TableProtos;

import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Map;
import java.util.Set;

/**
 * Hbase的java客戶端連接hbase的時候,只需要連接zookeeper的集群
 * 就可以找到你Hbase集群的位置
 * 核心的物件:
 * Configuration:HbaseConfiguration.create();
 * Connection:ConnectionFactory.createConnection(conf);
 * Admin:conn.getAdmin();操作Hbase系統DDL,對名稱空間等進行操作
 */
public class CreateTableDemo {
    public static void main(String[] args) throws Exception {
        //獲取到hbase的組態檔物件
        Configuration conf = HBaseConfiguration.create();
        //針對組態檔設定zk的集群地址
        conf.set("hbase.zookeeper.quorum","linux01:2181,linux02:2181,linux03:2181");
        //創建hbase的連接物件
        Connection conn = ConnectionFactory.createConnection(conf);

        Admin admin = conn.getAdmin();

        //獲取到操作hbase操作表的物件
        TableDescriptorBuilder java = TableDescriptorBuilder.newBuilder(TableName.valueOf("java"));

        //表添加列族需要集合的方式
        ArrayList<ColumnFamilyDescriptor> list = new ArrayList<>();
        //構建一個列族的構造器
        ColumnFamilyDescriptorBuilder col1 = ColumnFamilyDescriptorBuilder.newBuilder("f1".getBytes(StandardCharsets.UTF_8));
        ColumnFamilyDescriptorBuilder col2 = ColumnFamilyDescriptorBuilder.newBuilder("f2".getBytes(StandardCharsets.UTF_8));
        ColumnFamilyDescriptorBuilder col3 = ColumnFamilyDescriptorBuilder.newBuilder("f3".getBytes(StandardCharsets.UTF_8));
        //構建列族
        ColumnFamilyDescriptor build1 = col1.build();
        ColumnFamilyDescriptor build2 = col2.build();
        ColumnFamilyDescriptor build3 = col3.build();
        //將列族添加到集合中去
        list.add(build1);
        list.add(build2);
        list.add(build3);

        //給表設定列族
        java.setColumnFamilies(list);
        //構建表的描述器
        TableDescriptor build = java.build();
        //創建表
        admin.createTable(build);

        conn.close();
    }
}

向表中添加資料

package com.doit.day01;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;

import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;

/**
 * 注意:put資料需要指定往哪個命名空間的哪個表的哪個rowKey的哪個列族的哪個列中put資料,put的值是什么
 */
public class PutDataDemo {
    public static void main(String[] args) throws Exception {
        //獲取到hbase的組態檔物件
        Configuration conf = HBaseConfiguration.create();
        //針對組態檔設定zk的集群地址
        conf.set("hbase.zookeeper.quorum","linux01:2181,linux02:2181,linux03:2181");
        //創建hbase的連接物件
        Connection conn = ConnectionFactory.createConnection(conf);

        Admin admin = conn.getAdmin();

        //指定往哪一張表中put資料
        Table java = conn.getTable(TableName.valueOf("java"));
        //創建put物件,設定rowKey
        Put put = new Put("rowkey_001".getBytes(StandardCharsets.UTF_8));
        put.addColumn("f1".getBytes(StandardCharsets.UTF_8),"name".getBytes(StandardCharsets.UTF_8),"xiaotao".getBytes(StandardCharsets.UTF_8));
        put.addColumn("f1".getBytes(StandardCharsets.UTF_8),"age".getBytes(StandardCharsets.UTF_8),"42".getBytes(StandardCharsets.UTF_8));

        Put put1 = new Put("rowkey_002".getBytes(StandardCharsets.UTF_8));
        put1.addColumn("f1".getBytes(StandardCharsets.UTF_8),"name".getBytes(StandardCharsets.UTF_8),"xiaotao".getBytes(StandardCharsets.UTF_8));
        put1.addColumn("f1".getBytes(StandardCharsets.UTF_8),"age".getBytes(StandardCharsets.UTF_8),"42".getBytes(StandardCharsets.UTF_8));

        Put put2 = new Put("rowkey_003".getBytes(StandardCharsets.UTF_8));
        put2.addColumn("f1".getBytes(StandardCharsets.UTF_8),"name".getBytes(StandardCharsets.UTF_8),"xiaotao".getBytes(StandardCharsets.UTF_8));
        put2.addColumn("f1".getBytes(StandardCharsets.UTF_8),"age".getBytes(StandardCharsets.UTF_8),"42".getBytes(StandardCharsets.UTF_8));

        java.put(Arrays.asList(put,put1,put2));

        conn.close();
    }
}

get表中的資料

package com.doit.day01;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;

import java.nio.charset.StandardCharsets;

/**
 * 注意:put資料需要指定往哪個命名空間的哪個表的哪個rowKey的哪個列族的哪個列中put資料,put的值是什么
 */
public class GetDataDemo {
    public static void main(String[] args) throws Exception {
        //獲取到hbase的組態檔物件
        Configuration conf = HBaseConfiguration.create();
        //針對組態檔設定zk的集群地址
        conf.set("hbase.zookeeper.quorum","linux01:2181,linux02:2181,linux03:2181");
        //創建hbase的連接物件
        Connection conn = ConnectionFactory.createConnection(conf);

        //指定往哪一張表中put資料
        Table java = conn.getTable(TableName.valueOf("java"));

        Get get = new Get("rowkey_001".getBytes(StandardCharsets.UTF_8));
//        get.addFamily("f1".getBytes(StandardCharsets.UTF_8));
        get.addColumn("f1".getBytes(StandardCharsets.UTF_8),"name".getBytes(StandardCharsets.UTF_8));
        Result result = java.get(get);
        boolean advance = result.advance();
        if(advance){
            Cell current = result.current();
            String family = new String(CellUtil.cloneFamily(current));
            String qualifier = new String(CellUtil.cloneQualifier(current));
            String row = new String(CellUtil.cloneRow(current));
            String value = https://www.cnblogs.com/paopaoT/p/new String(CellUtil.cloneValue(current));
            System.out.println(row+","+family+","+qualifier+","+value);
        }

        conn.close();
    }
}

scan表中的資料

package com.doit.day01;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;

import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Iterator;

/**
 * 注意:put資料需要指定往哪個命名空間的哪個表的哪個rowKey的哪個列族的哪個列中put資料,put的值是什么
 */
public class ScanDataDemo {
    public static void main(String[] args) throws Exception {
        //獲取到hbase的組態檔物件
        Configuration conf = HBaseConfiguration.create();
        //針對組態檔設定zk的集群地址
        conf.set("hbase.zookeeper.quorum","linux01:2181,linux02:2181,linux03:2181");
        //創建hbase的連接物件
        Connection conn = ConnectionFactory.createConnection(conf);

        //指定往哪一張表中put資料
        Table java = conn.getTable(TableName.valueOf("java"));

        Scan scan = new Scan();
        scan.withStartRow("rowkey_001".getBytes(StandardCharsets.UTF_8));
        scan.withStopRow("rowkey_004".getBytes(StandardCharsets.UTF_8));

        ResultScanner scanner = java.getScanner(scan);
        Iterator<Result> iterator = scanner.iterator();
        while (iterator.hasNext()){
            Result next = iterator.next();
            while (next.advance()){
                Cell current = next.current();
                String family = new String(CellUtil.cloneFamily(current));
                String row = new String(CellUtil.cloneRow(current));
                String qualifier = new String(CellUtil.cloneQualifier(current));
                String value = https://www.cnblogs.com/paopaoT/p/new String(CellUtil.cloneValue(current));
                System.out.println(row+","+family+","+qualifier+","+value);
            }
        }


        conn.close();
    }
}

洗掉一行資料

package com.doit.day02;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;

import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class _12_洗掉一行資料 {
    public static void main(String[] args) throws IOException {
        Configuration conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum","linux01");

        Connection conn = ConnectionFactory.createConnection(conf);

        Table java = conn.getTable(TableName.valueOf("java"));

        Delete delete = new Delete("rowkey_001".getBytes(StandardCharsets.UTF_8));

        java.delete(delete);

    }
}

資料存盤

行式存盤

傳統的行式資料庫將一個個完整的資料行存盤在資料頁中

列式存盤

列式資料庫是將同一個資料列的各個值存放在一起

image

傳統行式資料庫的特性如下:

  • 資料是按行存盤的,
  • 沒有索引的查詢使用大量I/O,比如一般的資料庫表都會建立索引,通過索引加快查詢效率,
  • 建立索引和物化視圖需要花費大量的時間和資源,
  • 面對查詢需求,資料庫必須被大量膨脹才能滿足需求,

列式資料庫的特性如下:

  • 資料按列存盤,即每一列單獨存放,
  • 資料即索引,
  • 只訪問查詢涉及的列,可以大量降低系統I/O,
  • 每一列由一個執行緒來處理,即查詢的并發處理性能高,
  • 資料型別一致,資料特征相似,可以高效壓縮,比如有增量壓縮、前綴壓縮演算法都是基于列存盤的型別定制的,所以可以大幅度提高壓縮比,有利于存盤和網路輸出資料帶寬的消耗,

列族式存盤

列族式存盤是一種非關系型資料庫存盤方式,按列而非行組織資料,它的資料模型是面向列的,即把資料按照列族的方式組織,將屬于同一列族的資料存盤在一起,每個列族都有一個唯一的識別符號,一般通過列族名稱來表示,它具有高效的寫入和查詢性能,能夠支持極大規模的資料

  • 如果一個表有多個列族, 每個列族下只有一列, 那么就等同于列式存盤,
  • 如果一個表只有一個列族, 該列族下有多個列, 那么就等同于行式存盤.

image

hbase的存盤路徑:

在conf目錄下的hbase-site.xml檔案中配置了資料存盤的路徑在hdfs上

<property>
<name>hbase.rootdir</name>
<value>hdfs://linux01:8020/hbase</value>
</property>

hdfs上的存盤路徑:

image
image

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/555023.html

標籤:大數據

上一篇:政務云建設提速,天翼云夯實智慧政務數字底座

下一篇:返回列表

標籤雲
其他(160885) Python(38222) JavaScript(25493) Java(18225) C(15237) 區塊鏈(8270) C#(7972) AI(7469) 爪哇(7425) MySQL(7247) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5874) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4589) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2435) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) 功能(1967) HtmlCss(1964) Web開發(1951) C++(1933) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • Hbase的JavaAPI和資料存盤

    # 匯入Maven依賴 ```XML org.apache.zookeeper zookeeper 3.4.6 org.apache.hbase hbase-client 2.2.5 org.apache.hadoop hadoop-client 3.2.1 org.apache.hadoop ha ......

    uj5u.com 2023-06-13 08:32:21 more
  • 政務云建設提速,天翼云夯實智慧政務數字底座

    5月30日,2023數字政府高質量發展論壇在北京舉辦,大會聚焦業界關注的政策、技術、應用、標準、發展等議題,邀請政產學研各界共議政府數字化轉型之路。現場重磅發布了由中國電信聯合中國資訊通信研究院云計算與大資料研究所共同撰寫的《安全可信政務云一體化建設白皮書》(以下簡稱“白皮書”),中國資訊通信研究院... ......

    uj5u.com 2023-06-13 08:32:08 more
  • HBase的資料結構原理與使用

    一、HBase簡介 HBase是一個開源的、分布式的、版本化的NoSQL資料庫(即非關系型資料庫),依托Hadoop分布式檔案系統HDFS提供分布式資料存盤,利用MapReduce來處理海量資料,用Zookeeper作為其分布式協同服務,一般用于存盤海量資料。HDFS和HBase的區別在于,HDFS ......

    uj5u.com 2023-06-12 08:29:09 more
  • Hbase安裝和shell客戶端操作

    # 簡介 HBase 是一個**面向列式存盤的分布式資料庫**,其設計思想來源于 Google 的 BigTable 論文。 HBase 底層存盤基于 HDFS 實作,集群的管理基于 ZooKeeper 實作。 HBase 良好的分布式架構設計為海量資料的快速存盤、隨機訪問提供了可能,基于資料副本機 ......

    uj5u.com 2023-06-12 08:23:50 more
  • Navicat Premium將關系和物體添加到概念模型的方法

    Navicat Premium是一款強大的跨平臺資料庫管理工具,支持多種主流的關系型資料庫系統,包括 MySQL、MariaDB、SQLite、Oracle、PostgreSQL 和 Microsoft SQL Server 等。它提供了直觀易用的用戶界面和豐富的功能,使得資料庫管理變得更加簡單和高 ......

    uj5u.com 2023-06-12 08:18:37 more
  • Navicat Premium將關系和物體添加到概念模型的方法

    Navicat Premium是一款強大的跨平臺資料庫管理工具,支持多種主流的關系型資料庫系統,包括 MySQL、MariaDB、SQLite、Oracle、PostgreSQL 和 Microsoft SQL Server 等。它提供了直觀易用的用戶界面和豐富的功能,使得資料庫管理變得更加簡單和高 ......

    uj5u.com 2023-06-12 08:12:26 more
  • HBase的資料結構原理與使用

    一、HBase簡介 HBase是一個開源的、分布式的、版本化的NoSQL資料庫(即非關系型資料庫),依托Hadoop分布式檔案系統HDFS提供分布式資料存盤,利用MapReduce來處理海量資料,用Zookeeper作為其分布式協同服務,一般用于存盤海量資料。HDFS和HBase的區別在于,HDFS ......

    uj5u.com 2023-06-12 08:06:41 more
  • Hbase安裝和shell客戶端操作

    # 簡介 HBase 是一個**面向列式存盤的分布式資料庫**,其設計思想來源于 Google 的 BigTable 論文。 HBase 底層存盤基于 HDFS 實作,集群的管理基于 ZooKeeper 實作。 HBase 良好的分布式架構設計為海量資料的快速存盤、隨機訪問提供了可能,基于資料副本機 ......

    uj5u.com 2023-06-12 08:06:28 more
  • 【技識訓累】Mysql中的SQL高級技巧【一】

    博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ......

    uj5u.com 2023-06-11 08:08:01 more
  • INFINI Labs 產品更新 | Easysearch 新增跨集群復制 (CCR)、支持

    ![](https://img2023.cnblogs.com/other/3200758/202306/3200758-20230610163529557-866000334.png) INFINI Labs 產品重量級更新!!!本次更新了很多亮點功能,如 Easysearch 新增跨集群復制 ( ......

    uj5u.com 2023-06-11 08:07:45 more