首页 > 技术文章 > 如何通过java代码对kylin进行cube build

hark0623 2016-06-13 14:56 原文

通常是用于增量

代码如下:

package com.dlht.kylinDemo;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.commons.codec.binary.Base64;

public class BuildTest {
	static String ACCOUNT = "ADMIN";
	static String PWD = "KYLIN";
	static String PATH = "http://192.168.22.102:7070/kylin/api/cubes/KPI_Base_DataCppaCrcCount_test_Cube/rebuild";


	public static void main(String[] args) {
		System.out
				.println(Put(
						PATH,
						"{\"startTime\": 1451750400000,\"endTime\": 1451836800000,\"buildType\": \"BUILD\"}"));

	}

	public static String Put(String addr, String params) {
		String result = "";
		try {
			URL url = new URL(addr);
			HttpURLConnection connection = (HttpURLConnection) url
					.openConnection();
			connection.setRequestMethod("PUT");
			connection.setDoOutput(true);
			String auth = ACCOUNT + ":" + PWD;
			String code = new String(new Base64().encode(auth.getBytes()));
			connection.setRequestProperty("Authorization", "Basic " + code);
			connection.setRequestProperty("Content-Type",
					"application/json;charset=UTF-8");
			PrintWriter out = new PrintWriter(connection.getOutputStream());
			out.write(params);
			out.close();
			BufferedReader in;
			try {
				in = new BufferedReader(new InputStreamReader(
						connection.getInputStream()));
			} catch (FileNotFoundException exception) {
				java.io.InputStream err = ((HttpURLConnection) connection)
						.getErrorStream();
				if (err == null)
					throw exception;
				in = new BufferedReader(new InputStreamReader(err));
			}
			StringBuffer response = new StringBuffer();
			String line;
			while ((line = in.readLine()) != null)
				response.append(line + "\n");
			in.close();

			result = response.toString();
		} catch (MalformedURLException e) {
			System.err.println(e.toString());
		} catch (IOException e) {
			System.err.println(e.toString());
		}
		return result;
	}
}

这是官方教程:http://kylin.apache.org/docs15/howto/howto_use_restapi.html#build-cube  

默认帐号密码就是ADMIN KYLIN

在starttime和endtime填写时间,就是build的开始结束时间,注意starttime肯定要大于endtime,同时还要注意,starttime必须要大于历史

推荐阅读