x-cmd pkg | trdsql - 能对 CSV、LTSV、JSON 和 TBLN 执行 SQL 查询的工具
2024-01-08 05:59:18
简介
trdsql 是一个使用 sql 作为 DSL 的强大工具:
- 采用 SQL 对 CSV、LTSV、JSON 和 TBLN 文件执行查询
- 与 MySQL,Postgresql,Sqlite 的 Driver 协同,可以实现对应数据库的表与文件的 JOIN 操作
- 与 MySQL,Postgresql,Sqlite 的 Driver 协同时,也能够获得其相应的特色数据处理能力(例如 Windows 函数)
- 支持多种输出格式,例如 CSV、LTSV、JSON、TBLN、Markdown、ASCII Table
首次用户
-
使用
x trdsql
即可自动下载并使用 -
x-cmd 提供1分钟教程,其中包含了 trdsql 命令常用功能的 demo 示例,可以帮你快速上手 trdsql 。
-
使用案例:
# 打印 data.csv 数据中的第 1,2 列 x trdsql "SELECT c1,c2 FROM data.csv" # 使用制表符 \t 分隔输出 x trdsql -od "\t" "SELECT * FROM data.csv" # 指定以 Markdown 格式输出查询结果 x trdsql -omd "SELECT * FROM data.csv" # 指明输入文件的数据格式为 json x trdsql -ijson "SELECT id, name, JSON_EXTRACT(attribute,'$.country') FROM data"
技术特点
- trdsql 的输入源非常多样,因此非常灵活方便:
- 压缩文件作为数据输入源,非常适合处理冷数据
- 多个文件为输入源,支持 glob 模式
- stdin 作为输入源,方便与系统命令进行协同处理
- 相比竞品,trdsql 能够利用相应的 sql driver 的能力:
- 为文件数据提供更丰富的处理能力
- 能够对文件和 db 中的 table 数据进行联合处理
- trdsql 采用了 gojq 进行 JSON 的处理,从而也引入了强大的 jq 选择器
- trdsql 对 JSON 的数据源有一点的结构要求,对于复杂的 JSON 处理,trdsql 可以会略有局限。用户可以考虑使用 jq, yq, dasel 进行预处理,转换成适合 sql 处理的行模式,再发挥 trdsql 的能力。
竞品和相关作品
- 以下 cli 项目也提供采用 sql 作为 DSL 处理 csv 数据:
- 作者使用 trdsql 还完成了了一个使用 sql 来查询 cpu,内存等本机状态的 cli 工具,sql 爱好者可以去围观: psutilsql
进一步阅读
- trdsql 源代码 - trdsql 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 trdsql 和参与社区贡献。
- noborus: trdsql - 该项目作者提供的文档,详细介绍了 trdsql 在不同场景的使用,行文主要使用日语。
文章来源:https://blog.csdn.net/edwinjhlee/article/details/135437684
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!