java操作kudu之创建表格
第一步:pom依赖
第二步:创建类及编写代码
package com.kudu.test;
import org.apache.kudu.ColumnSchema;
import org.apache.kudu.Schema;
import org.apache.kudu.Type;
import org.apache.kudu.client.CreateTableOptions;
import org.apache.kudu.client.KuduClient;
import org.apache.kudu.client.KuduException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.ArrayList;
public class testKudu {
private KuduClient kuduClient;
//kudu master地址;
private String kuduMaster;
//kudu中的表名;
private String kuduTable;
//初始化方法
@Before
public void init(){
kuduMaster = "主机:7051";
kuduTable = "test2.student";
KuduClient.KuduClientBuilder kuduClientBuilder = new KuduClient.KuduClientBuilder(kuduMaster);
//指定客户端的集群的socket的超时时间
kuduClientBuilder.defaultAdminOperationTimeoutMs(10000);
//创建kuduClient
kuduClient = kuduClientBuilder.build();
}
@Test
public void creatTable() throws KuduException {
//判断表是否存在
if(!kuduClient.tableExists(kuduTable)){
//指定表的schema信息
ArrayList<ColumnSchema> columnSchemas = new ArrayList<ColumnSchema>();
columnSchemas.add(new ColumnSchema.ColumnSchemaBuilder("id", Type.INT32).key(true).build());
columnSchemas.add(new ColumnSchema.ColumnSchemaBuilder("name", Type.STRING).build());
columnSchemas.add(new ColumnSchema.ColumnSchemaBuilder("age", Type.INT32).build());
columnSchemas.add(new ColumnSchema.ColumnSchemaBuilder("sex", Type.INT32).build());
Schema schema = new Schema(columnSchemas);
//指定表的option属性
CreateTableOptions tableOptions = new CreateTableOptions();
//指定分区规则,采用哈希分区
ArrayList<String> partitionList = new ArrayList<String>();
partitionList.add("id");
tableOptions.addHashPartitions(partitionList,6);
//创建表(表名字,schema,表属性)
kuduClient.createTable(kuduTable,schema,tableOptions);
}
}
@After
public void close() throws KuduException {
if(kuduClient != null){
kuduClient.close();
}
}
}