phoenix操作注意点

2024-03-19 08:08
文章标签 操作 注意 phoenix

本文主要是介绍phoenix操作注意点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.与hbase 的映射

1.空表格映射

在phoenix中创建表格,会自动映射到hbase中,我们可以通过hbase shell 来查看。举个例子,我们创建了一个表,

create table hbase_col_test(pk varchar not null primary key,        //primary key 映射到hbase 中的rowkey"cf1"."col1" varchar ,                  //对应hbase的列族cf1,列名为col1"cf1"."col2" varchar ,                  //对应cf1:col2"cf2"."col3" varchar                    //对应cf2:col3);

创建的时候注意格式的书写。

2.对于已经存在的hbase表做映射

通过创建视图来查询hbase表,我们举个例子,对于一个列族的查询:

create view "test" (k varchar not null primary key, //主键对应hbase 中的rowkey"val" varchar)default_column_family='cf1';//列名与hbase 中对应即可

对于多个列族的查询,可以这样写:

create view "hbase_to_phoe"(pk varchar not null primary key,     -----主键对应"addr"."province" varchar,       -----addr列族,province列(hbase中定义的列)"school"."name" varchar);        -----school列族,name列(hbase中定义列)

二 .导入数据的方式

这里我只介绍中小数据级导入,我们先进入{Phoenix_dir}/bin路径下,然后通过./psql.py 导入数据:

./psql.py -t HBASE_COL_TEST -d $'\t' $zk_addr:2181 ../data/hbase_col_data.csv   (HBASE_COL_TEST是表名,'\t'是数据分割符,导入数据时表明必须是大写,不然可能无法导入) 

三 . java API 操作hbase

准备工作:

  1. 从集群中拷贝以下文件:core-site.xml,hbase-site.xml,hdfs-site.xml放在工程src下。
  2. 把phoenix的phoenix-{version}-client.jar 和phoenix-core-{version}.jar添加到classpath中
  3. 配置寄存中各个节点的hosts文件,把客户端的hostname:IP添加进去(不添加好像也没有影响)
  4. 在客户端host文件中加入集群的hostname 和IP
    工程截图如下所示:
    这里写图片描述
    具体Phoenix_Test.java代码如下:
package com.lanyizheng.phoenix;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Phoenix_Test {public static void main(String[] args) throws SQLException {//我这里是访问远程服务器上的hbase服务,所以在程序中设置hbase.tmp.dir 的路径System.setProperty("hbase.tmp.dir", "/tmp");try{//驱动加载          Class.forName("org.apache.phoenix.jdbc.PhoenixDriver");}catch(Exception e){e.printStackTrace();}//配置zookeepr地址,后面的就是常见的jdbc操作String url="jdbc:phoenix:bj-g2hdp1,bj-g2hdp2,bj-g2hdp3:2181";Connection conn=DriverManager.getConnection(url);Statement statement=conn.createStatement();String sql="select count(1) as num from web_stat";long time=System.currentTimeMillis();ResultSet rs=statement.executeQuery(sql);while(rs.next()){int count=rs.getInt("num");System.out.println("row count is"+count);}long timeUsed=System.currentTimeMillis()-time;System.out.println("time"+timeUsed+"mm");rs.close();statement.close();conn.close();}
}

这篇关于phoenix操作注意点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/825330

相关文章

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Redis中管道操作pipeline的实现

《Redis中管道操作pipeline的实现》RedisPipeline是一种优化客户端与服务器通信的技术,通过批量发送和接收命令减少网络往返次数,提高命令执行效率,本文就来介绍一下Redis中管道操... 目录什么是pipeline场景一:我要向Redis新增大批量的数据分批处理事务( MULTI/EXE