在微服务和云原生愈发流行的今天,数据的分布也愈发脱离单库单机而更加复杂,使用的数据库类型也会更多,但业务的复杂依然会带来了大量的数据查询和导出需求,而很多时候我们很难为数据量的大部分系统创建完整的BI数仓系统,这时候你是不是觉得为这些需求查询和导出数据就会是一个十分困难且耗时的工作?Syncany-SQL就是这样一个工具,来在不依赖数据库的情况下完成不同库表、不同机器和不同数据库类型间直接关联查询和聚合计算后直接导出到常用文件的工具。
项目地址:https://github.com/snower/syncany-sql
使用示例:https://github.com/snower/syncany-sql/tree/main/examples
- 在本地运行MySQL语法结构的SQL
- 支持查询常用mysql、mongodb、postgresql、sqlserver、elasticsearch、influxdb、clickhouse、sqlite数据库及execl、csv、json和普通文本文件
- 支持本地临时数据表逻辑做中间结果保存
- 数据库数据加载使用简单条件过滤及IN条件查询
- 因由本地完成Join匹配所以支持不同库表、不同主机及不同类型数据库间Join关联查询
- Group By分组聚合计算及Order By排序也由本地执行,保证数据库安全性
- 数据写Insert Into支持 ”仅插入 I“、”存在更新否则插入 UI“、”存在更新否则插入其余删除 UDI“、”删除后插入 DI“四种模式
- 大数据量支持批次执行,有Group By或Having条件过滤自动执行Reduce合并结果
- 支持流式执行
安装
pip安装
直接使用pip一键即完成安装。
pip3 install syncanysql
执行成功后,执行以下测试命令成功输出当前时间即安装成功
echo 'select now();' | syncany-sql
之后执行”syncany-sql“即可可进入交互式命令行模式。
安装数据库Driver库
为了减少安装依赖和启动需要导入的模块数,加快安装和启动速度,默认不安装数据库相关Driver库,需要依据需要查询的数据库类型安装响应数据库Driver库,并且已安装的库不实际查询数据库也不会导入该数据库Driver库。
依赖数据库Driver库版本信息,可依据需要使用的数据库类型使用pip进