Table-Related SDKs
Creating a DLI Table
DLI provides an API for creating DLI tables. You can use it to create a table for storing DLI data. Sample code is as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | private static Table createDLITable(Database database) throws DLIException {
//Construct a table column set and instantiate the Column object to construct columns.
List<Column> columns = new ArrayList<Column>();
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<String> sortColumns = new ArrayList<String>();
sortColumns.add("c1");
String DLITblName = "tablename";
String desc = "desc for table";
//Call the createDLITable method of the Database object to create a DLI table.
Table table = database.createDLITable(DLITblName, desc, columns, sortColumns);
System.out.println(table);
return table;
}
|
The default precision of DataType.DECIMAL is (38,5). To set the precision of data of the decimal type, perform the following operation:
1 | Column c11 = new Column("c11", new DecimalTypeInfo(25,5), "test for c11");
|
Creating an OBS Table
DLI provides an API for creating OBS tables. You can use it to create a table for storing OBS data. The example code is as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | private static Table createObsTable(Database database) throws DLIException {
//Construct a table column set and instantiate the Column object to construct columns.
List < Column > columns = new ArrayList < Column > ();
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");
String obsTblName = "tablename";
String desc = "desc for table";
String dataPath = "OBS path";
//Call the createObsTable method of the Database object to create an OBS table.
Table table = database.createObsTable(obsTblName, desc, columns,StorageType.CSV , dataPath, formatInfo);
System.out.println(table);
return table;
}
|
The default precision of DataType.DECIMAL is (38,5). To set the precision of data of the decimal type, perform the following operation:
1 | Column c11 = new Column("c11", new DecimalTypeInfo(25,5), "test for c11");
|
Deleting a Table
DLI provides an API for deleting tables. You can use it to delete all the tables in a database. The example code is as follows:
1 2 3 4 5 6 7 8 9 | private static void deleteTables(Database database) throws DLIException {
//Call the listAllTables interface of the Database object to query all tables.
List<Table> tables = database.listAllTables();
for (Table table : tables) {
//Traverse tables and call the deleteTable interface of the Table object to delete tables.
table.deleteTable();
System.out.println("delete table " + table.getTableName());
}
}
|
A deleted table cannot be restored. Therefore, exercise caution when deleting a table.
Querying All Tables
DLI provides an API for querying tables. You can use it to query all tables in a database. The example code is as follows:
1 2 3 4 5 6 7 | private static void listTables(Database database) throws DLIException {
//Call the listAllTables method of the Database object to query all tables in a database.
List<Table> tables = database.listAllTables(true);
for (Table table : tables) {
System.out.println(table);
}
}
|
Querying the Partition Information of a Table (Including the Creation and Modification Time of the Partition).
1 2 3 4 5 6 7 8 9 10 11 | private static void showPartitionsInfo(DLIClient client) throws DLIException {
String databaseName = "databasename";
String tableName = "tablename";
//Call the showPartitions method of the DLIClient object to query the partition information (including the partition creation and modification time) in the database table.
PartitionResult partitionResult = client.showPartitions(databaseName, tableName);
PartitionListInfo partitonInfos = partitionResult.getPartitions();
//Obtain the creation and modification time of the partition.
Long createTime = partitonInfos.getPartitionInfos().get(0).getCreateTime().longValue();
Long lastAccessTime = partitonInfos.getPartitionInfos().get(0).getLastAccessTime().longValue();
System.out.println("createTime:"+createTime+"\nlastAccessTime:"+lastAccessTime);
}
|
Last Article: Database-Related SDKs
Next Article: Job-related SDKs
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.