天天看點

kudu upsert data api

課程連結: http://edu.51cto.com/course/15174.html

kudu對插入資料進行更新操作

try {
        String tableName = "wyh_main";

        KuduClient client = new KuduClient.KuduClientBuilder("hadoop4,hadoop5,hadoop6").defaultAdminOperationTimeoutMs(600000).build();
        // 擷取table
        KuduTable table = client.openTable(tableName);

        // 擷取一個會話
        KuduSession session = client.newSession();
        session.setTimeoutMillis(60000);
        session.setFlushMode(SessionConfiguration.FlushMode.MANUAL_FLUSH);
        session.setMutationBufferSpace(10000);

        // 插入時,初始時間
        long startTime = System.currentTimeMillis();
        System.out.println("startTime is : " + System.currentTimeMillis());

        int val = 0;
        // 插入資料
        for (int i = 0; i < 90; i++) {
            Upsert upsert = table.newUpsert();
            PartialRow row = upsert.getRow();
            row.addLong(0, i);
            row.addLong(1, i);
            row.addLong(2, i);
            row.addString(3, "weiyunhao1");
            session.apply(upsert);
            if (val % 10 == 0) {
                session.flush();
                val = 0;
            }
            val++;
        }
        session.flush();
        // 插入時結束時間
        long endTime = System.currentTimeMillis();
        System.out.println("the timeperiod executed is : " + (endTime - startTime));