当前位置: 首页 > news >正文

x-cmd pkg | trdsql - 能对 CSV、LTSV、JSON 和 TBLN 执行 SQL 查询的工具

目录

    • 简介
    • 首次用户
    • 技术特点
    • 竞品和相关作品
    • 进一步阅读

简介

trdsql 是一个使用 sql 作为 DSL 的强大工具:

  1. 采用 SQL 对 CSV、LTSV、JSON 和 TBLN 文件执行查询
  2. 与 MySQL,Postgresql,Sqlite 的 Driver 协同,可以实现对应数据库的表与文件的 JOIN 操作
  3. 与 MySQL,Postgresql,Sqlite 的 Driver 协同时,也能够获得其相应的特色数据处理能力(例如 Windows 函数)
  4. 支持多种输出格式,例如 CSV、LTSV、JSON、TBLN、Markdown、ASCII Table

首次用户

  1. 使用 x trdsql 即可自动下载并使用

    • 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd 官网
  2. x-cmd 提供1分钟教程,其中包含了 trdsql 命令常用功能的 demo 示例,可以帮你快速上手 trdsql 。

  3. 使用案例

    trdsql-1min-cn

    # 打印 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"
    

技术特点

  1. trdsql 的输入源非常多样,因此非常灵活方便:
    1. 压缩文件作为数据输入源,非常适合处理冷数据
    2. 多个文件为输入源,支持 glob 模式
    3. stdin 作为输入源,方便与系统命令进行协同处理
  2. 相比竞品,trdsql 能够利用相应的 sql driver 的能力:
    1. 为文件数据提供更丰富的处理能力
    2. 能够对文件和 db 中的 table 数据进行联合处理
  3. trdsql 采用了 gojq 进行 JSON 的处理,从而也引入了强大的 jq 选择器
  4. trdsql 对 JSON 的数据源有一点的结构要求,对于复杂的 JSON 处理,trdsql 可以会略有局限。用户可以考虑使用 jq, yq, dasel 进行预处理,转换成适合 sql 处理的行模式,再发挥 trdsql 的能力。

竞品和相关作品

  1. 以下 cli 项目也提供采用 sql 作为 DSL 处理 csv 数据:
    1. q 是一个 Python 项目
    2. textql 与 trdsq l采用了 go,但从官网上看已经很久没有更新了
  2. 作者使用 trdsql 还完成了了一个使用 sql 来查询 cpu,内存等本机状态的 cli 工具,sql 爱好者可以去围观: psutilsql

进一步阅读

  • trdsql 源代码 - trdsql 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 trdsql 和参与社区贡献。
  • noborus: trdsql - 该项目作者提供的文档,详细介绍了 trdsql 在不同场景的使用,行文主要使用日语。
http://www.lryc.cn/news/278165.html

相关文章:

  • Camunda Spin
  • strlen/Memcpy_s/strncasecmp
  • 水经微图安卓版APP正式上线!
  • 数据结构第十二弹---堆的应用
  • [NSSRound#3 Team]This1sMysql
  • Android 通知简介
  • QT开发 2024最新版本优雅的使用vscode开发QT
  • Redis性能大挑战:深入剖析缓存抖动现象及有效应对的战术指南
  • 基于SpringBoot的教学管理系统
  • 机器学习之独热编码(One-Hot)
  • IIS+SDK+VS2010+SP1+SQL server2012全套工具包及安装教程
  • 【昕宝爸爸小模块】HashMap用在并发场景存在的问题
  • 数据库索引
  • 开源知识库工具推荐:低成本搭建知识库
  • C# Chart控件
  • OpenCV C++ 图像处理实战 ——《多尺度自适应Gamma矫正的低照图像增强》
  • 原型模式
  • linux centos 账户管理命令
  • 【JavaWeb学习笔记】19 - 网购家居项目开发(上)
  • 强化学习的数学原理学习笔记 - RL基础知识
  • winSCP是什么?它有什么功能和特性?它值不值得我们去学习?我们该如何去学习呢?
  • SpringBoot的数据层解决方案
  • 极客时间-《如何成为学习高手》文章笔记 + 个人思考
  • 【前端】下载文件方法
  • 虚幻UE 材质-纹理 1
  • 回归预测 | Matlab实现RIME-HKELM霜冰算法优化混合核极限学习机多变量回归预测
  • 【AWS系列】巧用 G5g 畅游Android流媒体游戏
  • GNSS数据及产品下载地址(FTP/HTTP)
  • 【STM32】STM32学习笔记-DMA数据转运+AD多通道(24)
  • 即时设计:设计流程图,让您的设计稿更具条理和逻辑