gsqlcmd
Лучший в своем классе инструмент командной строки
для загрузки, конвертации, импорта, экспорта и синхронизации данных
1. Загрузка
gsqlcmd позволяет загружать данные с использованием URL-шаблонов с параметрами из файлов задач.
Например, следующая команда загружает исторические цены акций с Yahoo Finance:
set url="https://query1.finance.yahoo.com/v7/finance/chart/{symbol}?range=2y&interval=1d" gsqlcmd download %url% {symbol}.json /taskfile=symbols.txt
Кроме того, gsqlcmd позволяет автоматически загружать следующие страницы.
Следующая команда загружает все цепочки опционов для каждого символа акций с Yahoo Finance:
set url="https://query1.finance.yahoo.com/v7/finance/options/{symbol}" gsqlcmd download %url% *.JSON /taskfile=symbols.txt /pages=50
Вы можете загрузить список URL-адресов сразу.
Например, следующая команда извлекает URL-адреса из sitemap.xml и загружает все страницы:
gsqlcmd convert "SELECT loc FROM https://www.gsqlcmd.com/sitemap.xml" sitemap.txt /noHeaders gsqlcmd download @sitemap.txt *.* /echoURL
2. Конвертация
gsqlcmd позволяет конвертировать данные в форматах JSON, XML, HTML, CSV и обычный текст.
Простая команда конвертации выглядит так:
gsqlcmd convert *.json *.csv
Однако вы можете использовать множество опций парсера и функций для настройки результата.
Например, следующая команда извлекает исторические цены акций, добавляя символ акции:
gsqlcmd convert *.json *.csv ^ /rootpath=*.*.timestamp,*.*.*.quote,*.*.*.adjclose ^ /add=Symbol=FileNameWithoutExtension()
Кроме того, вы можете использовать SQL-скрипты для загрузки и конвертации данных.
Например, следующая команда загружает и извлекает исторические цены акций с MSN Money:
gsqlcmd convert select.sql data.csv /taskfile=symbols.txt /echoURL ^ /referer=https://www.msn.com/en-us/money/ ^ /rootPath=Chart.Series /skippedNodes=IsStitched
Где select.sql содержит следующий код:
SELECT '{symbol}' AS [symbol] , T AS [date], Op AS [open], Hp AS [high], Lp AS [low], P AS [close], V AS volume FROM https://finance-services.msn.com/Market.svc/ChartAndQuotes?symbols={symbol}&chartType=1y
3. Импорт
gsqlcmd позволяет генерировать SQL-команды INSERT, UPDATE, MERGE и DELETE.
Например, следующая команда создает команды merge для импорта исторических цен:
gsqlcmd make /merge db *.csv *.merge.sql /table=historical_prices /keys=symbol,date
Где db — это именованная строка подключения, определенная в файле конфигурации.
Вы можете генерировать команды для любой поддерживаемой платформы баз данных, включая SQL Server, MySQL и SQLite.
Затем вы можете выполнить сгенерированные SQL-команды для импорта данных:
gsqlcmd exec db *.merge.sql
Вы можете использовать режим единого импорта вместо пошаговых режимов загрузки, конвертации, создания и выполнения.
Например, вы можете импортировать исторические цены с Yahoo Finance в базу данных с помощью команды:
gsqlcmd import /merge db select.sql /table=historical_prices /taskfile=symbols.txt ^ /rootpath=*.*.timestamp,*.*.*.quote
Где select.sql содержит следующий код:
SELECT '{symbol}' AS [symbol] , [Timestamp] AS [date] , [Open] AS [open], High AS [high], [Low] AS [low], [Close] AS [close] , Volume AS volume FROM https://query1.finance.yahoo.com/v7/finance/chart/{symbol}?range=2y&interval=1d
Импорт данных из базы данных в базу данных имеет простую форму:
gsqlcmd import /merge db2 db1::dbo.historical_prices /table=historical_prices
Эта команда выбирает данные из dbo.historical_prices в db1 и объединяет их в historical_prices в db2.
Вы можете настроить выбор данных с помощью SQL-скриптов, например:
gsqlcmd import /merge db2 db1::select.sql /table=historical_prices
Где select.sql может содержать обычные SELECT-команды, а также EXEC-команды для выполнения хранимых процедур.
4. Экспорт
gsqlcmd позволяет экспортировать данные из базы данных в форматы CSV, JSON, XML, HTML и обычный текст.
Например:
gsqlcmd exec db "SELECT * FROM historical_prices" historical_prices.csv
Также вы можете использовать шаблоны для настройки вывода в JSON, XML и HTML. Например:
gsqlcmd exec db export.sql sales.htm /template=template.htm /placeholder={sales}
Вы можете использовать эти функции на любой поддерживаемой платформе, включая работу с xp_cmdshell в Microsoft SQL Server.
5. Синхронизация
gsqlcmd позволяет реализовать различные сценарии синхронизации с использованием режимов exec и import.
Ниже приведен простой пример двусторонней синхронизации с использованием столбцов первичного ключа GUID в режиме merge:
gsqlcmd import db2 db1::table1 /table=table2 /merge gsqlcmd import db1 db2::table2 /table=table1 /merge
Вы можете синхронизировать данные между несколькими базами данных на разных платформах.
Например, вы можете легко синхронизировать данные между онлайн MySQL и локальными базами данных SQL Server или Oracle.
Сравнение функций по редакциям
Функция | Бесплатная версия | Стандартная редакция | Корпоративная редакция |
---|---|---|---|
Режимы | |||
Выполнение SQL-запросов и скриптов | ✓ | ✓ | ✓ |
Экспорт данных из базы данных и конвертация веб- и текстовых данных в текст | ✓ | ✓ | ✓ |
Экспорт данных из базы данных в CSV, HTML, XML и JSON | ✓ | ✓ | ✓ |
Конвертация веб- и текстовых данных в CSV, HTML, XML и JSON | до 5 строк | ✓ | ✓ |
Импорт данных из интернета и файлов в базы данных | до 5 строк | ✓ | ✓ |
Импорт данных из базы данных в базу данных с помощью одной команды | x | x | ✓ |
Синхронизация данных между базами данных | x | ✓ | ✓ |
Создание команд INSERT, UPDATE, MERGE и DELETE | до 5 строк | ✓ | ✓ |
Редактирование содержимого базы данных с использованием опций /toFiles и /fromFiles | до 5 строк | ✓ | ✓ |
Загрузка файлов | ✓ | ✓ | ✓ |
Дополнительные опции | |||
Текстовые и CSV файлы задач | ✓ | ✓ | ✓ |
Получение задач из баз данных с помощью <подключение>::<запрос> | x | x | ✓ |
Поддерживаемые платформы баз данных и источники данных | |||
SQL Server, Oracle, DB2, MySQL, PostgreSQL, NuoDB, Snowflake | ✓ | ✓ | ✓ |
SQLite, SQL Server Compact, DBF, FoxPro, Excel | ✓ | ✓ | ✓ |
Обычный текст, CSV, HTML, XML, JSON | ✓ | ✓ | ✓ |
Лицензирование | |||
Пожизненная лицензия, на один компьютер, USD | Бесплатно | $40 | $90 |
Загрузка
Пакет загрузки gsqlcmd включает примеры.
Вы найдете готовые решения для импорта исторических цен, цепочек опционов и финансовых данных с Yahoo Finance и MSN Money.
Также попробуйте другие примеры. Обратитесь к онлайн-документации для подробного описания.
Вы можете использовать gsqlcmd бесплатно и активировать пробную версию, чтобы попробовать функции платных редакций позже, когда они вам понадобятся.