Преобразование данных

Преобразование данных

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.