Преобразование данных
gsqlcmd позволяет преобразовывать табличные данные из локальных файлов и веб-ресурсов.
Режим convert имеет следующий вид:
gsqlcmd convert [<input> [<output> [<output2>]]]
где <input>:
<query> | <file> | <mask> | @[<task>] | <url>
gsqlcmd поддерживает следующие форматы ввода и вывода: обычный текст, HTML, XML, JSON и CSV.
Ниже приведены примеры трех основных форм:
gsqlcmd convert "https://query1.finance.yahoo.com/v7/finance/chart/AAPL?range=1d&interval=1m&indicators=quote&includeTimestamps=true" aapl.csv gsqlcmd convert "https://query1.finance.yahoo.com/v7/finance/chart/AAPL?range=1d&interval=1m&indicators=quote&includeTimestamps=true" aapl.json aapl.csv gsqlcmd convert aapl.json aapl.csv
В первой форме gsqlcmd загружает и преобразует данные.
Во второй форме gsqlcmd загружает данные, сохраняет файл и преобразует данные. Вы можете использовать этот вариант для хранения исходных файлов для возможного повторного анализа.
В третьей форме gsqlcmd преобразует входной файл.
Вы можете настроить параметры парсера и вывода, чтобы получить требуемые результаты.
Например, следующие параметры добавляют к выходным данным столбец "Symbol" и подавляют использование двойных кавычек:
/add=Symbol=AAPL /quoteChar=
Вы можете найти множество готовых к использованию примеров в папке "Examples\Downloading and converting to CSV" загруженного пакета gsqlcmd.
Автоматизация
Вы можете автоматизировать загрузку и преобразование данных.
Например, вы можете создать файл задачи, например, symbols.txt:
Symbol AAPL FB GOOGL
Файл содержит столбец Symbol. Таким образом, вы можете использовать его значения в параметре {symbol}.
Ниже приведен простой пакетный файл, который загружает и конвертирует 1-минутные внутридневные цены акций из Yahoo Finance:
@echo off set url="https://query1.finance.yahoo.com/v7/finance/chart/{symbol}?range=1d&interval=1m&indicators=quote&includeTimestamps=true" gsqlcmd convert %url% src\{symbol}.JSON csv\*.CSV /taskfile=symbols.txt ^ /add=Symbol={symbol} ^ /quoteChar= /echoOutputFileName
См. дополнительные сведения в разделе Использование пакетных файлов и задач.
Выборка данных
gsqlcmd поддерживает простую форму SELECT во входных запросах.
Например, базовая команда режима convert дает следующий результат:
gsqlcmd convert aapl.json aapl.csv Close;High;Low;Open;Timestamp;Volume 200.3800;200.4500;199.68;200.3200;2019-04-09 13:30:00;1332001 200.6920;200.8850;200.32;200.3726;2019-04-09 13:31:00;351343
Вы можете использовать следующую команду, чтобы добавить столбец тикеров, переименовать столбцы и изменить их порядок:
gsqlcmd convert "SELECT 'AAPL' AS symbol, timestamp AS time, open, high, low, close, volume FROM aapl.json" aapl.csv /quoteChar= symbol;time;open;high;low;close;volume AAPL;2019-04-09 13:30:00;200.3200;200.4500;199.68;200.3800;1332001 AAPL;2019-04-09 13:31:00;200.3726;200.8850;200.32;200.6920;351343
Дополнительные комментарии
Используйте режим make для создания команд SQL для импорта данных в базу данных.
Кроме того, вы можете использовать режим import, который сочетает в себе возможности режимов convert, make и exec.