网站首页 > 编程文章 正文
最近根据一个项目需要导出大量数据,数据量大概在百万级别
数据是存在clickhouse中,最开始尝试使用excel导出百万级数据,导出速度很慢,于是调整为使用csv格式,速度较excel的速度快,但是导出速度也不是特别理想。于是使用Java调用clickhouse-client进行导出,导出速度很快,几秒钟就导出。
调用clickhouse-client的方式,实际上就是Java调用Linux命令,Java调用Linux命令的通用方法如下:
private static String getObject(String cmd) throws IOException {
log.info("执行的命令为:" + cmd);
String[] cmdA = {"/bin/sh","-c", cmd);
Process process = Runtime.getRunTime().exec(cmdA);
LineNumberReader br = new LineNumberReader(
new InputStreamReader(process.getInputStream()));
StringBuilder buffer = new StringBuilder();
String line;
while((line == br.readLine()) != null) {
System.out.println(line);
buffer.append(line).append("\n");
}
log.info("命令执行结果:" + buffer);
return buffer.toString();
}
只需要在通用的Java调用Linux命令的方法上再封装一层,加上调用clickhouse-client即可
public static String exportClickhouseCsvCmd
(String username, String password, String sql, String filepath) {
组装clickhouse-client的sql导出命令
return getObject(command);
}
然后就可以在业务方法中调用该导出方法了。
这种方法调试会相对麻烦,每次需要更新到服务器上去进行测试,但是性能是最好的,大家可以根据自己项目的实际情况进行合理的取舍。
猜你喜欢
- 2024-10-20 Microsoft Excel 网页版新增导出 CSV 文件功能
- 2024-10-20 保姆式教程|仅靠这个数据库就发到生信3+?这个套路值得耍一耍
- 2024-10-20 Rdatasets:2000+个数据集供你练习数据分析及其可视化!
- 2024-10-20 Commata库:C++中CSV文件处理(csv库的作用)
- 2024-10-20 Data Lake Analytics + OSS数据文件格式处理大全
- 2024-10-20 JS 下载/导出 csv、excel、txt 、img等文件的方法总结
- 2024-10-20 一个超强的机器学习库(机器学习库sklearn)
- 2024-10-20 保姆式教程|TCGA+GEO单基因生信SCI,手把手带你复现
- 2024-10-20 用Python读取csv文件中的沪深300指数历史交易数据
- 2024-10-20 CSV超大文件编辑软件snapde(csv文件大小)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)