MyEclipes下执行Hive语句查询Hbase数据库数据

简介:

前几天有一个top100的案例分享,全程听了各个公司架构组的一些案例技术分享,发现大家都在大数据方面投入很大,相比当当,58,阿里巴巴,Facebook,Google这些公司。新浪的分享者比较保守,很多不算牵扯到细节都系都说不方便说,其实技术都是那些技术,只是业务不同产生很多不同的架构,感觉没必要。

闲话不多说,最近完成了在MyEclipes完成了hive操作Hbase数据库数据,直接上代码

定义枚举。

public enum SqlType

{

ALLORDERNUMBER,

DAYORDERUNMBER,

}

具体方法

public int getAllOrderNumber() {

java.util.Calendar c=java.util.Calendar.getInstance();

java.text.SimpleDateFormat f=new java.text.SimpleDateFormat(“yyyy-MM-dd-hh-mm”);

return getAllOrderNumber(“0″, f.toString());

}

public int getAllOrderNumber(String startData, String endData) {

try {

return (Integer) selectTable(SqlType.ALLORDERNUMBER,startData,endData);

} catch (SQLException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

return 0;

}

public static Object selectTable(SqlType type,String startData,String endData) throws SQLException, ClassNotFoundException {

Class.forName(“org.apache.hadoop.hive.jdbc.HiveDriver”);

String querySQL = null;

switch(type)

{

case ALLORDERNUMBER:

querySQL = “SELECT count(DISTINCT Content['UserID']) FROM LoanOrder Where Content['CreateTime']>’@’ AND Content['CreateTime']<‘!'” ;

querySQL = querySQL.replaceAll(“@”,startData);

querySQL = querySQL.replaceAll(“!”,endData);

System.out.println(querySQL);

break;

case DAYORDERUNMBER:

System.out.println(“1″);

querySQL = “SELECT *, count( DISTINCT Content['UserID']) FROM LoanOrder GROUP BY Content['UserID']” ;

break;

default :System.out.println(“没有对应的枚举类型”);

}

Connection con = DriverManager.getConnection(

“jdbc:hive://192.168.3.232:10000/default”, “”, “”);

Statement stmt = con.createStatement();

ResultSet res = stmt.executeQuery(querySQL); // 执行查询语句

while (res.next()) {

System.out.println(“Result: key: ” + res.getString(1)+”——-“+ res.getString(2));

// System.out.println(“Result: key: ” + res.getString(1));

}

return 0;

}

目录
相关文章
|
人工智能 安全 机器人
无代码革命:10分钟打造企业专属数据库查询AI机器人
随着数字化转型加速,企业对高效智能交互解决方案的需求日益增长。阿里云AppFlow推出的AI助手产品,借助创新网页集成技术,助力企业打造专业数据库查询助手。本文详细介绍通过三步流程将AI助手转化为数据库交互工具的核心优势与操作指南,包括全场景适配、智能渲染引擎及零代码配置等三大技术突破。同时提供Web集成与企业微信集成方案,帮助企业实现便捷部署与安全管理,提升内外部用户体验。
1216 12
无代码革命:10分钟打造企业专属数据库查询AI机器人
|
存储 JSON 关系型数据库
【干货满满】解密 API 数据解析:从 JSON 到数据库存储的完整流程
本文详解电商API开发中JSON数据解析与数据库存储的全流程,涵盖数据提取、清洗、转换及优化策略,结合Python实战代码与主流数据库方案,助开发者构建高效、可靠的数据处理管道。
|
并行计算 关系型数据库 MySQL
如何用 esProc 将数据库表转储提速查询
当数据库查询因数据量大或繁忙变慢时,可借助 esProc 将数据导出为文件进行计算,大幅提升性能。以 MySQL 的 3000 万行订单数据为例,两个典型查询分别耗时 17.69s 和 63.22s。使用 esProc 转储为二进制行存文件 (btx) 或列存文件 (ctx),结合游标过滤与并行计算,性能显著提升。例如,ctx 并行计算将原查询时间缩短至 0.566s,TopN 运算提速达 30 倍。esProc 的简洁语法和高效文件格式,特别适合历史数据的复杂分析场景。
|
存储 数据管理 数据库
数据字典是什么?和数据库、数据仓库有什么关系?
在数据处理中,你是否常困惑于字段含义、指标计算或数据来源?数据字典正是解答这些问题的关键工具,它清晰定义数据的名称、类型、来源、计算方式等,服务于开发者、分析师和数据管理者。本文详解数据字典的定义、组成及其与数据库、数据仓库的关系,助你夯实数据基础。
数据字典是什么?和数据库、数据仓库有什么关系?
|
12月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
12月前
|
人工智能 Java 关系型数据库
使用数据连接池进行数据库操作
使用数据连接池进行数据库操作
284 11
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
1135 0
|
存储 SQL Java
数据存储使用文件还是数据库,哪个更合适?
数据库和文件系统各有优劣:数据库读写性能较低、结构 rigid,但具备计算能力和数据一致性保障;文件系统灵活易管理、读写高效,但缺乏计算能力且无法保证一致性。针对仅需高效存储与灵活管理的场景,文件系统更优,但其计算短板可通过开源工具 SPL(Structured Process Language)弥补。SPL 提供独立计算语法及高性能文件格式(如集文件、组表),支持复杂计算与多源混合查询,甚至可替代数据仓库。此外,SPL 易集成、支持热切换,大幅提升开发运维效率,是后数据库时代文件存储的理想补充方案。