系统控制面板在哪(控制面板 在哪)
695
2022-05-30
1 DLI SDK是什么
数据湖探索软件开发工具包(Data Lake Insight Software Development Kit,简称DLI SDK)是对DLI提供的REST API进行的封装,以简化用户的开发工作。用户直接调用DLI SDK提供的接口函数即可实现使用DLI业务能力的目的。
1.1 如何下载DLI SDK
用户需注册登录后进入控制台,点击右上角的常用链接,下拉框中选择DLI Client进行下载,下载完成后为一个jar包。
1.2 环境准备
1.2.1 要准备的开发环境如下:
1.2.2 操作步骤
从Oracle官网下载并安装JDK1.8版本,配置好JAVA环境变量。
安装JDK。
配置环境变量,在“控制面板”选择“系统”属性,单击“环境变量”。
选择“系统变量”,新建 “JAVA_HOME 变量”,路径配置为JDK安装路径,例如:“D:\Java\jdk1.8.0_45”。
编辑 “Path 变量”,在“变量值”中增加“%JAVA_HOME%\bin;”。
新建 “CLASSPATH 变量”,在“变量值”中填写 “.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar”。
检验是否配置成功,运行cmd ,输入 java -version。运行结果,请参见图1,显示版本信息,则说明安装和配置成功。
图1 检验配置是否成功
2.从Eclipse官网下载并安装Eclipse IDE for Java Developers最新版本。在Eclipse中配置好JDK。
创建新工程,选择JRE版本,请参见图2
图2 创建新工程
配置并导入SDKjar包。
在工程“JRE System Library”上单击右键,选择“Build Path”>“Configure Build Path”,请参见图3。
图3 配置工程路径
b. 单击“Add External JARs”,选择SDK下载的jar包,单击OK。
图4 选择SDK jar包
1.3 使用SDK
1. 使用DLI SDK工具访问DLI,需要用户初始化DLI客户端。用户可以使用AK/SK(Access Key ID/Secret Access Key)或Token两种认证方式初始化客户端,示例代码如下:
*AK/SK认证方式样例代码
String ak = "ak";
String sk = "sk";
String regionName = "regionname";
String projectId = "project_id";
DLIInfo DLIInfo = new DLIInfo(regionName, ak, sk, projectId);
DLIClient client = new DLIClient(AuthenticationMode.AKSK, DLIInfo);
说明:
c.在地区和终端节点,获取DLI对应的regionname.
* Token认证方式样例代码
String domainName = "domainname";
String userName = "username";
String password = "password";
String regionName = "regionname";
String projectId = "project_id";
DLIInfo DLIInfo = new DLIInfo(regionName, domainName, userName, password, projectId);
DLIClient client = new DLIClient(AuthenticationMode.TOKEN, DLIInfo);
2. 初始化完成后,我们可以创建队列和数据库/表
a.创建和删除队列:
DLI提供创建队列的接口,您可以使用该接口创建队列。示例代码如下:
private static void createQueue(DLIClient client) throws DLIException {
//通过调用DLIClient对象的createQueue方法创建队列
String qName = "queueName";
int cu = 4;
ChargingMode mode = ChargingMode.CHARGING_MODE_SQL;
String description = "test for sdk";
Queue queue = client.createQueue(qName, cu, mode, description);
System.out.println("---------- createQueue success ---------");
}
DLI提供删除队列的接口,您可以使用该接口删除队列。示例代码如下:
private static void deleteQueue(DLIClient client) throws DLIException {
//调用DLIClient对象的getQueue(queueName)方法获取queueName这个队列
Queue queue = client.getQueue(queueName);
//使用deleteQueue()方法删除queueName队列
queue.deleteQueue();
}
b.创建数据库
您可以使用DLI提供的接口创建数据库,示例代码如下:
private static Database createDatabase(DLIClient client) throws DLIException {
//通过调用DLIClient对象的createDatabase方法创建数据库
Database database = client.createDatabase(dbName);
System.out.println("create database:" + database);
return database;
}
c.创建和查询DLI表和OBS表
您可以使用DLI提供的接口创建数据存储在DLI内部的表。示例代码如下:
private static Table createDLITable(Database database) throws DLIException {
//构造表列集合,通过实例化Column对象构建列
List
Column c1 = new Column("c1", DataType.STRING, "desc for c1");
Column c2 = new Column("c2", DataType.INT, "desc for c2");
Column c3 = new Column("c3", DataType.DOUBLE, "desc for c3");
Column c4 = new Column("c4", DataType.BIGINT, "desc for c4");
Column c5 = new Column("c5", DataType.SHORT, "desc for c5");
Column c6 = new Column("c6", DataType.LONG, "desc for c6");
Column c7 = new Column("c7", DataType.SMALLINT, "desc for c7");
Column c8 = new Column("c8", DataType.BOOLEAN, "desc for c8");
Column c9 = new Column("c9", DataType.DATE, "desc for c9");
Column c10 = new Column("c10", DataType.TIMESTAMP, "desc for c10");
Column c11 = new Column("c11", DataType.DECIMAL, "desc for c11");
columns.add(c1);
columns.add(c2);
columns.add(c3);
columns.add(c4);
columns.add(c5);
columns.add(c6);
columns.add(c7);
columns.add(c8);
columns.add(c9);
columns.add(c10);
columns.add(c11);
List
sortColumns.add("c1");
//通过调用Database对象的createDLITable方法创建DLI表
Table table = database.createDLITable(DLITblName, "desc for table", columns, sortColumns);
System.out.println(table);
return table;
}
您可以使用DLI提供的接口创建数据存储在OBS的表。示例代码如下:
private static Table createObsTable(Database database) throws DLIException {
//构造表列集合,通过实例化Column对象构建列
List
Column c1 = new Column("c1", DataType.STRING, "desc for c1");
Column c2 = new Column("c2", DataType.INT, "desc for c2");
Column c3 = new Column("c3", DataType.DOUBLE, "desc for c3");
Column c4 = new Column("c4", DataType.BIGINT, "desc for c4");
Column c5 = new Column("c5", DataType.SHORT, "desc for c5");
Column c6 = new Column("c6", DataType.LONG, "desc for c6");
Column c7 = new Column("c7", DataType.SMALLINT, "desc for c7");
Column c8 = new Column("c8", DataType.BOOLEAN, "desc for c8");
Column c9 = new Column("c9", DataType.DATE, "desc for c9");
Column c10 = new Column("c10", DataType.TIMESTAMP, "desc for c10");
Column c11 = new Column("c11", DataType.DECIMAL, "desc for c11");
columns.add(c1);
columns.add(c2);
columns.add(c3);
columns.add(c4);
columns.add(c5);
columns.add(c6);
columns.add(c7);
columns.add(c8);
columns.add(c9);
columns.add(c10);
columns.add(c11);
CsvFormatInfo formatInfo = new CsvFormatInfo();
formatInfo.setWithColumnHeader(true);
formatInfo.setDelimiter(",");
formatInfo.setQuoteChar("\"");
formatInfo.setEscapeChar("\\");
formatInfo.setDateFormat("yyyy/MM/dd");
formatInfo.setTimestampFormat("yyyy-MM-dd HH:mm:ss");
//通过调用Database对象的createObsTable方法创建OBS表
Table table = database.createObsTable(obsTblName, "desc for table",columns, StorageType.DLI_CSV, dataPath, formatInfo);
System.out.println(table);
return table;
}
您可以使用DLI提供的接口查询数据库下的所有表。示例代码如下:
private static void listTables(Database database) throws DLIException {
//调用Database对象的listAllTables方法查询数据库下的所有表
List