From d52d4ce3b784596428f735ea22c265a4d33b43d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=E1=BA=A7n=20=C4=90=C3=ACnh=20=C4=90=E1=BB=93ng?= <76928878+vanvuvuong@users.noreply.github.com> Date: Wed, 27 Nov 2024 01:18:13 +0700 Subject: [PATCH] trdsql: add page (#14896) Co-authored-by: Wiktor Perskawiec --- pages/common/trdsql.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 pages/common/trdsql.md diff --git a/pages/common/trdsql.md b/pages/common/trdsql.md new file mode 100644 index 0000000000..af2de036da --- /dev/null +++ b/pages/common/trdsql.md @@ -0,0 +1,32 @@ +# trdsql + +> Execute SQL on CSV, LTSV, JSON, YAML, and TBLN files. +> More information: . + +- Convert object data from multiple JSON files to a CSV file with header (`-oh`) and double quote: + +`trdsql -ocsv -oh "SELECT * FROM {{path/to/file/*.json}}" | sed 's/\([^,]*\)/"&"/g' > {{path/to/file.csv}}` + +- Interpret JSON list as a table and put objects inside as columns (path/to/file.json: `{"list":[{"age":"26","name":"Tanaka"}]}`): + +`trdsql "SELECT * FROM {{path/to/file.json}}::.list` + +- Manipulate complex SQL query with data from multiple CSV files with first line is header (`-ih`): + +`trdsql -icsv -ih "SELECT {{column1,column2}} FROM {{path/to/file*.csv}} WHERE column2 != '' ORDER BY column1 GROUP BY column1"` + +- Merge content of 2 CSV files to one CSV file: + +`trdsql "SELECT {{column1,colum2}} FROM {{path/to/file1.csv}} UNION SELECT {{column1,column2}} FROM {{path/to/file2.csv}}"` + +- Connect to PostgreSQL database: + +`trdsql -driver postgres -dsn "host={{hostname}} port={{5433}} dbname={{database_name}}" "SELECT 1"` + +- Create table data to MySQL database from CSV file: + +`trdsql -driver mysql -dsn "{{username}}:{{password}}@{{hostname}}/{{database}}" -ih "CREATE TABLE {{table}} ({{column1}} int, {{colum2}} varchar(20)) AS SELECT {{column3}} AS {{column1}},{{column2}} FROM {{path/to/header_file.csv}}"` + +- Show data from compress log files: + +`trdsql -iltsv "SELECT * FROM {{path/to/access.log.gz}}"`