码迷,mamicode.com
首页 > 其他好文 > 详细

CreateKuduTable

时间:2019-07-03 00:47:46      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:rgs   创建   hpa   style   ati   null   operation   删除   tst   

public class CreateKuduTable {
    public static void main(String[] args) throws KuduException {

        String masterAddress = "datanode1,datanode2,datanode3";
        String tableName = "test_ods:scmd:event_wos_v1_0702";
        KuduClient client = new KuduClient.KuduClientBuilder(masterAddress).defaultAdminOperationTimeoutMs(6000).build();
        // 如果table存在的情况下,就删除该表
        try {
            if (client.tableExists(tableName)) {
                client.deleteTable(tableName);
            }
        } catch (KuduException e) {
            e.printStackTrace();
        }

        List<ColumnSchema> columns = new LinkedList<ColumnSchema>();

        // 创建列 
        columns.add(new ColumnSchema.ColumnSchemaBuilder("day", Type.INT32).key(true).encoding(ColumnSchema.Encoding.BIT_SHUFFLE).build());
        columns.add(new ColumnSchema.ColumnSchemaBuilder("sampling_group", Type.INT32).key(true).encoding(ColumnSchema.Encoding.BIT_SHUFFLE).build());
        columns.add(new ColumnSchema.ColumnSchemaBuilder("user_id", Type.STRING).key(true).encoding(ColumnSchema.Encoding.DICT_ENCODING).build());
        columns.add(new ColumnSchema.ColumnSchemaBuilder("time", Type.INT64).key(true).encoding(ColumnSchema.Encoding.BIT_SHUFFLE).build());
        columns.add(new ColumnSchema.ColumnSchemaBuilder("_offset", Type.INT64).key(true).encoding(ColumnSchema.Encoding.BIT_SHUFFLE).build());
        columns.add(new ColumnSchema.ColumnSchemaBuilder("event_id", Type.INT32).nullable(true).encoding(ColumnSchema.Encoding.BIT_SHUFFLE).build());
        columns.add(new ColumnSchema.ColumnSchemaBuilder("month_id", Type.INT32).nullable(true).encoding(ColumnSchema.Encoding.BIT_SHUFFLE).build());
        columns.add(new ColumnSchema.ColumnSchemaBuilder("week_id", Type.INT32).nullable(true).encoding(ColumnSchema.Encoding.BIT_SHUFFLE).build());
        columns.add(new ColumnSchema.ColumnSchemaBuilder("distinct_id", Type.STRING).nullable(true).encoding(ColumnSchema.Encoding.DICT_ENCODING).build());
        columns.add(new ColumnSchema.ColumnSchemaBuilder("event_bucket", Type.INT32).nullable(true).encoding(ColumnSchema.Encoding.BIT_SHUFFLE).build());
        Schema schema = new Schema(columns);

        //创建表时提供的所有选项
        CreateTableOptions options = new CreateTableOptions();

        // 设置表的replica备份和分区规则
        List<String> parcols = new LinkedList<String>();
        parcols.add("user_id");
        //设置表的备份数
        options.setNumReplicas(1);
        //设置hash分区和数量
        options.addHashPartitions(parcols, 3);

        client.createTable(tableName, schema, options);

        // 创建table,并设置partition
        try {
            client.createTable(tableName, schema, options);
        } catch (KuduException e) {
            e.printStackTrace();
        }

    }
}

 

CreateKuduTable

标签:rgs   创建   hpa   style   ati   null   operation   删除   tst   

原文地址:https://www.cnblogs.com/lizhongshan/p/11123817.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!