phoenix学习(一)

来源:互联网 发布:易特进销存软件商贸版 编辑:程序博客网 时间:2024/06/04 17:49

phoenix(一)


phoenix中的primary key

  • phoenix的primary key很重要,建表成功以后不能重新指定primary key。primary key对应Hbase中的row key,直接被order,查起来速度快,因此常选择查询次数比较多的列作为primary key。时间戳也可以作为primary key,查询时直接跳过不在时间范围内的。
  • 如果某些列族比其他列族访问的多的话,创建多列族,在Hbase中访问是以列族进行的。
CREATE TABLE TEST (MYKEY VARCHAR NOT NULL PRIMARY KEY, A.COL1 VARCHAR, A.COL2 VARCHAR, B.COL3 VARCHAR)
  • 当用UPSERT进行大量数据的插入时,关闭自动提交,设置最大提交限制。
try (Connection conn = DriverManager.getConnection(url)) {  conn.setAutoCommit(false);  int batchSize = 0;  int commitSize = 1000; // number of rows you want to commit per batch.    try (Statement stmt = conn.prepareStatement(upsert)) {        stmt.set ... while (there are records to upsert) {        stmt.executeUpdate();         batchSize++;         if (batchSize % commitSize == 0) {              conn.commit();         }    }  conn.commit(); // commit the last batch of records  }