mysql中的資料匯入到hbase中,並關聯phoenix
阿新 • • 發佈:2018-12-28
1.在hbase上建立表:
hbase>create 'ES','f1'
2.phoenix上建立表:
jdbc:phoenix:es01> create table ES(ids varchar primary key ,"f1"."class_name" varchar,"f1"."exam_id" varchar,"f1"."examinee_name" varchar,"f1"."examinee_num" varchar,"f1"."part_question_mark" varchar,"f1"."question_difficulty" varchar,"f1"."question_id" varchar,"f1"."question_type" varchar,"f1"."score" varchar,"f1"."start_time" varchar,"f1"."category_name" varchar);
3.將mysql中的資料匯入到hbae中:
/** * 將mysql中的資料匯入到hbase中 */ public class MySQL2HBASE { private static Table table; static { try { Configuration configuration = HBaseConfiguration.create(); configuration.set("hbase.zookeeper.quorum", "es01:2181,es02:2181,es03:2181"); Connection conn = ConnectionFactory.createConnection(configuration); table = conn.getTable(TableName.valueOf("ES")); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { JDBCHelper jdbc = JDBCHelper.getInstance(); jdbc.executeQuery("select * from basic_xiangqing", new Object[]{}, new JDBCHelper.QueryCallback() { @Override public void process(ResultSet res) throws Exception { int i = 0; while (res.next()) { int exam_id = res.getInt(1); String start_time = res.getString(2); String class_name = res.getString(3); String examinee_num = res.getString(4); String examinee_name = res.getString(5); String question_id = res.getString(6); String category_name = res.getString(7); String question_difficulty = res.getString(8); String question_type = res.getString(9); String part_question_mark = res.getString(10); String score = res.getString(11); String rowKey = examinee_num + "," + exam_id + "," + question_id; Put put = new Put(Bytes.toBytes(rowKey)); put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("exam_id"),Bytes.toBytes(exam_id)); put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("start_time"),Bytes.toBytes(start_time)); put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("class_name"),Bytes.toBytes(class_name)); put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("examinee_num"),Bytes.toBytes(examinee_num)); put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("examinee_name"),Bytes.toBytes(examinee_name)); put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("question_id"),Bytes.toBytes(question_id)); put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("category_name"),Bytes.toBytes(category_name)); put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("question_difficulty"),Bytes.toBytes(question_difficulty)); put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("question_type"),Bytes.toBytes(question_type)); put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("part_question_mark"),Bytes.toBytes(part_question_mark)); put.addColumn(Bytes.toBytes("f1"),Bytes.toBytes("score"),Bytes.toBytes(score)); table.put(put); Thread.sleep(10); System.out.println(i); i++; } table.close(); } }); } }