- データの検査、クエリ、結合、インポートおよびエクスポートのためのオープンソースツールで、データベースやドキュメントを扱う際に有用
- SLQ というクエリ言語を使用し、さまざまなデータソースと形式をサポート
主な機能
- データベーステーブルの比較:
diff コマンドを使って、ソースメタデータや行の値を比較可能。
- Excel から Postgres へデータを取り込む: Excel XLSX ワークシートの内容を新しい Postgres テーブルに挿入可能。
- データベースメタデータの表示:
--json フラグを使って、スキーマやその他のメタデータを JSON 形式で出力可能。
- MySQL テーブルのすべての列名を取得: 特定のテーブルの列名を簡単に抽出可能。
- SQL Server クエリを実行して SQLite に結果を挿入: SQL Server でクエリを実行し、その結果を SQLite に挿入可能。
- すべてのデータベーステーブルを CSV にエクスポート: JSON メタデータを使ってテーブル名を抽出し、各テーブルを CSV ファイルとして出力可能。
ソースコマンド
- ソースの追加と管理: ソースの追加、有効化、移動、一覧化、グループ化、ping、削除を行うコマンドを提供。
- データベーステーブルコマンド: テーブルのコピー、切り取り、削除などの便利なコマンドを提供。
JSONL クエリ
- JSONL 形式のサポート: JSON Lines 形式のログファイルをクエリ可能。
SQL ソースと出力形式
- 対応データベース: Postgres、SQLite、MySQL、MariaDB、SQL Server、Azure SQL Edge などをサポート。
- その他のソース: Excel XLSX、CSV、TSV、JSON、JSONA、JSONL などの形式からデータを取り込み可能。
- 出力形式: SQL データベースへの挿入、Excel XLSX、CSV、TSV、JSON、JSONL、JSONA、XML、HTML、Markdown、Raw など多様な形式で出力可能。
GN⁺ のまとめ
- sq はデータベースとドキュメントデータを扱ううえで強力なツールであり、多様なデータソースと形式をサポートすることで、データ処理の柔軟性を提供。
- データベース間のデータ移動、メタデータ管理、多様な形式へのデータ変換などの機能を通じて、データ作業を簡素化可能。
- データベース管理やデータ処理に関心のある開発者にとって有用で、とくに多様なデータソースを扱うプロジェクトで大いに役立つ可能性がある。
- 類似の機能を提供するツールとしては、
jq、pandas、Apache Drill などがある。
2件のコメント
SQ - データベースやその他の機能のための jq 代替
3年半前に紹介しましたが、その間に機能がかなり増えましたね。
Hacker Newsのコメント
jqのクエリ言語は特別魅力的だとは思わない。データベースに問い合わせる際に、jqの XPath 類似言語を選ぶ理由が理解できないjqの本当の強みは信頼性と挙動を理解できる点であり、状態依存のツールにはそれが欠けているsqは気に入っている。DBで簡単な作業をすばやく行い、CSVやJSONで出力するのに便利だ。ただ、sqクエリ言語(SLQ)が SQL の... LIKE "SOME_STRING%"のような部分文字列マッチングをサポートしてくれるとよい。SQLを手動で呼び出すことはできる.wrangle | .dataは iPhone 13 mini で動作する