下面是改TXT文档格式,加粗字体为数据库查询结果,并且同一条记录金额时相同的
reqSerialno|transdate|conamount|amount|code|returncode|acctid|charge|tno|class|depacct
20180531000000001|20180531|1000000000|1000000000|gx9001|0000|x100001000001|0|gx30010001|0|
20180531000000002|20180531|1000000000|1000000000|gx9001|0000|x100001000001|0|gx30010002|0|
20180531000000003|20180531|1000000000|1000000000|gx9001|0000|x100001000001|0|gx30010003|0|
我一般如果想把数据导出,我直接用ELT工具了,例如kettle,可以输出成txt
这个要自己做的话,就是先获取到数据库查询的信息,然后将信息排版之后流化写出,至于什么文件头和指定格式自己按照自己的想法输出就行了,就是过程复杂了点比较考验基础功,思路上没什么难度...
看到你在处理数据库数据导出成 TXT 的需求,上面提到的 kettle 是个经典的 ETL 工具,不过如果你想找更现代、更轻量的方案,可以试试 SeaTunnel。
SeaTunnel 是一个开源的数据集成平台,在数据导出场景下有几个优势:
配置简单
通过配置文件就能定义数据导出任务,不需要写复杂的代码。比如从数据库查询数据导出到 TXT 文件,配置一下 source 和 sink 就能运行。
支持多种数据源
支持 MySQL、Oracle、SQL Server、PostgreSQL 等主流数据库,也支持 HDFS、Hive、Elasticsearch 等大数据组件。
文件格式灵活
可以输出为 TXT、CSV、JSON 等多种格式,支持自定义字段分隔符、文件头、编码格式等。
性能好
基于分布式引擎,可以并行处理数据,导出速度快。
支持数据转换
如果需要对数据进行过滤、转换、聚合等操作,SeaTunnel 提供了丰富的 transform 功能。
对于你这种需要自定义文件格式的需求,SeaTunnel 可以通过配置实现文件头、指定分隔符等要求。
官网地址:https://seatunnel.apache.org 上面有详细的文档和配置示例,可以参考一下。
kettle 和 SeaTunnel 都是不错的选择,kettle 功能丰富但相对重量级,SeaTunnel 更轻量、配置更简单。可以根据你的具体需求选择。