当前位置: 首页 > news >正文

软件工程学习日志2025.9.18

今日重点设计了HBase后端数据插入模块,基于Java API实现了高性能的写入方案。以下为关键代码实现及技术要点:
HBase数据插入工具类
支持单条插入和批量写入操作
public class HBaseInserter {
private static final Logger logger = LoggerFactory.getLogger(HBaseInserter.class);

/*** 单条数据插入方法* @param tableName 表名* @param rowKey 行键* @param columnFamily 列族* @param qualifier 列限定符* @param value 数据值*/
public void insertData(String tableName, String rowKey, String columnFamily, String qualifier, String value) throws IOException {try (Connection connection = ConnectionFactory.createConnection();Table table = connection.getTable(TableName.valueOf(tableName))) {Put put = new Put(Bytes.toBytes(rowKey));put.addColumn(Bytes.toBytes(columnFamily),Bytes.toBytes(qualifier),Bytes.toBytes(value));table.put(put);logger.info("数据插入成功 - RowKey: {}", rowKey);} catch (IOException e) {logger.error("HBase插入失败: {}", e.getMessage());throw new IOException("数据写入HBase失败", e);}
}/*** 批量插入数据* @param tableName 表名* @param dataList 数据列表*/
public void batchInsert(String tableName, List<HBaseData> dataList) throws IOException {try (Connection connection = ConnectionFactory.createConnection();Table table = connection.getTable(TableName.valueOf(tableName))) {List<Put> puts = new ArrayList<>();for (HBaseData data : dataList) {Put put = new Put(Bytes.toBytes(data.getRowKey()));put.addColumn(Bytes.toBytes(data.getColumnFamily()),Bytes.toBytes(data.getQualifier()),Bytes.toBytes(data.getValue()));puts.add(put);}table.put(puts);logger.info("批量插入完成,共{}条数据", dataList.size());} catch (IOException e) {logger.error("批量插入失败: {}", e.getMessage());throw new IOException("批量写入HBase失败", e);}
}

}

/**

  • 数据实体类
    */
    @Data
    @AllArgsConstructor
    class HBaseData {
    private String rowKey;
    private String columnFamily;
    private String qualifier;
    private String value;
    }
http://www.hskmm.com/?act=detail&tid=8973

相关文章:

  • U3D动作游戏开发读书笔记--3.1 物理系统详解(上)
  • 一个联名款电子产品的技术实现和诞生
  • https://uupdump.net/
  • JOISC
  • 20250918 之所思 - 人生如梦
  • 初赛知识点复盘
  • WPF使用Cef加载Vue3页面问题
  • IP子网划分
  • curl与wget
  • 用 Go 语言与 Tesseract OCR 实现英文数字验证码识别
  • lc1031-两个非重叠子数组的最大和
  • Segment Analytics-iOS SDK - 专业用户行为追踪解决方案
  • 我对 WPF 动摇时的选择:.NET Framework 4.6.2+WPF+Islands+UWP+CompostionApi - 行人-
  • 使用 Rust 与 Tesseract OCR 识别英文数字验证码
  • 别迷茫了!计算机大一新生这样做,四年后远超同龄人 - 编程实战派
  • 解决ifconfig命令没有显示ens33 finalshell连接不上虚拟机
  • 什么情况下需要用到xargs
  • Office 2024安装包专业增强版超详细下载安装教程
  • 关于 pdfminer 的安装 - 指南
  • c/c++实现有栈协程
  • Day17冒泡排序
  • 高阶 INTJ 5w4 整合到 8,是完整的过程,从研究到实用(豆包)
  • 几B大模型的空间存储大小
  • hbase安装与配置
  • 发喷山火(volcano)+CF2119F Volcanic Eruptions 解题报告
  • matlab免费下载安装激活教程(附安装包下载)MATLAB R2025a超详细下载安装教程
  • Spring Boot + flowable 完美结合,快速实现工作流 - 教程
  • Pyfluent 执行Meshing工作流
  • EF Core 与 MySQL:日志和调试详解
  • 使用镜像源解决github拉取代码问题 - GD