JAVA 实现数据导入Phoenix

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 实现数据导入Phoenix相关的知识,希望对你有一定的参考价值。

需要导入的jar 包有:

技术分享

实现代码:

package cn.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Random;

public class PhoenixTest {

    public static void insertDatas() {

        Statement stmt;
        Connection con;
        String ItemID = getItemID( 10 );
        String ItemName = getItemName(10);
        float Price = (float) 0.1;
        try
        {
            con = DriverManager.getConnection("jdbc:phoenix:node11:2181" );
            stmt = con.createStatement();
            System.out.println("content success....");
           // stmt.executeUpdate("create table test (mykey integer not null primary key, mycolumn varchar)");
            stmt.executeUpdate( "create table  items ( ItemID varchar not null primary key,ItemName VARCHAR NULL,Price FLOAT NULL ");
            for ( int i = 0; i < 1000; i++ )  //需要导入多少数据自己修改,如果数据量比较大就需要500或者1000条提交一次;或者定时提交,下次再修改代码
            {
                stmt.executeUpdate( "upsert into items values (‘" + ItemID + "‘,‘" + ItemName + "‘,‘" + Price++ + "‘)" );
            }

            con.commit();
            con.close();
        }
        catch ( SQLException e )
        {
            e.printStackTrace();
        }
    }

    /**
     * 生成随机数当作getItemID
     * 
     * @return
     */
    public static String getItemID( int n )
    {
        String val = "";
        Random random = new Random();
        for ( int i = 0; i < n; i++ )
        {
            String str = random.nextInt( 2 ) % 2 == 0 ? "num" : "char";
            if ( "char".equalsIgnoreCase( str ) )
            { // 产生字母
                int nextInt = random.nextInt( 2 ) % 2 == 0 ? 65 : 97;
                // System.out.println(nextInt + "!!!!"); 1,0,1,1,1,0,0
                val += (char) ( nextInt + random.nextInt( 26 ) );
            }
            else if ( "num".equalsIgnoreCase( str ) )
            { // 产生数字
                val += String.valueOf( random.nextInt( 10 ) );
            }
        }
        return val;
    }

    /**
     * 生产ItemName随机函数
     * @param length
     * @return
     */
    public static String getItemName( int length ){
        String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
        for ( int i = 0; i < length; i++ )
        {
            int number = random.nextInt( base.length() );
            sb.append( base.charAt( number ) );
        }
        return sb.toString();
    }

    public static void main( String[] args ){
        insertDatas();
    }
}

 

以上是关于JAVA 实现数据导入Phoenix的主要内容,如果未能解决你的问题,请参考以下文章

Phoenix 数据导入与导出

如何用java导入Excel数据到数据库?

java phoenix 连接hbase

hbase--集成Phoenix实现类SQL操作hbase

如何使用 elixir/phoenix 从 csv 文件导入用户?

利用HaoheDI从数据库抽取数据导入到hbase中