kuduClient实现增删改查

╰+哭是因爲堅強的太久メ 2022-05-14 07:26 759阅读 0赞
  • 使用kuduClient创建表;
  • 使用kuduClient添加数据;
  • 使用kuduClient更新数据;
  • 使用kuduClient查询数据;
  • 使用kuduClient删除表;
  • 使用kuduclient删除表数据;
  • 使用kuduclient条件查询;

    package com.kexin.kudu;

  1. import org.apache.kudu.ColumnSchema;
  2. import org.apache.kudu.Schema;
  3. import org.apache.kudu.Type;
  4. import org.apache.kudu.client.*;
  5. import org.slf4j.LoggerFactory;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. /**
  9. * @Author KeXin
  10. * @Date 2018/7/20 下午1:35
  11. **/
  12. public class Sample {
  13. private static final org.slf4j.Logger logger = LoggerFactory.getLogger(Sample.class);
  14. private static final String KUDU_MASTER = "ip:7051";
  15. public static void main(String[] args) {
  16. System.out.println("-----------------------------------------------");
  17. System.out.println("Will try to connect to Kudu master at " + KUDU_MASTER);
  18. System.out.println("Run with -DkuduMaster=myHost:port to override.");
  19. System.out.println("-----------------------------------------------");
  20. String tableName = "kuduTest";
  21. KuduClient client = new KuduClient.KuduClientBuilder(KUDU_MASTER).build();
  22. try {
  23. logger.info("------------create start--------------");
  24. //创建表
  25. List<ColumnSchema> columns = new ArrayList(2);
  26. columns.add(new ColumnSchema.ColumnSchemaBuilder("key", Type.INT32)
  27. .key(true)
  28. .build());
  29. columns.add(new ColumnSchema.ColumnSchemaBuilder("value", Type.STRING)
  30. .build());
  31. List<String> rangeKeys = new ArrayList<>();
  32. rangeKeys.add("key");
  33. Schema schema = new Schema(columns);
  34. client.createTable(tableName, schema,
  35. new CreateTableOptions().setRangePartitionColumns(rangeKeys));
  36. logger.info("------------insert start--------------");
  37. client.getTablesList().getTablesList().forEach(str-> System.out.println(str));
  38. // //向表内插入新数据
  39. KuduTable table = client.openTable(tableName);
  40. KuduSession session = client.newSession();
  41. session.setTimeoutMillis(60000);
  42. for (int i = 0; i < 3; i++) {
  43. logger.info("----------------insert "+i+"---------------");
  44. Insert insert = table.newInsert();
  45. PartialRow row = insert.getRow();
  46. row.addInt(0, i);
  47. row.addString(1, "value " + i);
  48. session.apply(insert);
  49. }
  50. logger.info("------------delete data start--------------");
  51. //根据主键删除数据
  52. Delete delete = table.newDelete();
  53. PartialRow row = delete.getRow();
  54. row.addInt("key",0);
  55. OperationResponse apply = session.apply(delete);
  56. if (apply.hasRowError()) {
  57. logger.info("------------delete fail--------------");
  58. } else {
  59. logger.info("------------delete success--------------");
  60. }
  61. logger.info("------------update start--------------");
  62. //更新数据
  63. Update update = table.newUpdate();
  64. PartialRow row1 = update.getRow();
  65. row1.addInt("key",6);
  66. row1.addString("value","kexin");
  67. session.apply(update);
  68. logger.info("------------scan start--------------");
  69. //扫描数据
  70. List<String> projectColumns = new ArrayList<>(1);
  71. projectColumns.add("value");
  72. KuduScanner scanner = client.newScannerBuilder(table)
  73. .setProjectedColumnNames(projectColumns)
  74. .build();
  75. while (scanner.hasMoreRows()) {
  76. RowResultIterator results = scanner.nextRows();
  77. while (results.hasNext()) {
  78. RowResult result = results.next();
  79. System.out.println(result.getString(0));
  80. }
  81. }
  82. } catch (Exception e) {
  83. e.printStackTrace();
  84. } finally {
  85. try {
  86. logger.info("------------delete table start--------------");
  87. //删除表
  88. client.deleteTable(tableName);
  89. } catch (Exception e) {
  90. e.printStackTrace();
  91. } finally {
  92. try {
  93. client.shutdown();
  94. } catch (Exception e) {
  95. e.printStackTrace();
  96. }
  97. }
  98. }
  99. }
  100. }

条件查询

  1. String tableName = "rt_dim_class";
  2. KuduClient client = new KuduClient.KuduClientBuilder(KUDU_MASTER).build();
  3. try {
  4. //扫描数据
  5. long start = System.currentTimeMillis();
  6. KuduTable table = client.openTable(tableName);
  7. KuduPredicate predicate = KuduPredicate.newComparisonPredicate(
  8. table.getSchema().getColumn("cla_id"),KuduPredicate.ComparisonOp.EQUAL,cla_id
  9. );
  10. KuduScanner.KuduScannerBuilder builder = client.newScannerBuilder(table);
  11. builder.addPredicate(predicate);
  12. KuduScanner scanner = builder.build();
  13. long stop = System.currentTimeMillis();
  14. System.out.println("time:"+(stop-start));
  15. scanner.close();
  16. } catch (Exception e) {
  17. e.printStackTrace();
  18. } finally {
  19. try {
  20. client.close();
  21. } catch (KuduException e) {
  22. e.printStackTrace();
  23. }
  24. }

发表评论

表情:
评论列表 (有 0 条评论,759人围观)

还没有评论,来说两句吧...

相关阅读