Быстрый бесплатный инструмент SQL для настольных ПК - PullRequest
4 голосов
/ 23 декабря 2008

У меня есть куча довольно больших файлов CSV (значения, разделенные запятыми), и я хочу их проанализировать. SQL-запросы идеально подходят для этого. До сих пор я использовал MS Access для импорта файлов CSV и выполнения запросов к ним. Однако, в дополнение к очень плохому редактору SQL и глупым произвольным правилам, когда запрос / таблица может быть открыта / отредактирована / удалена, это чрезвычайно медленно. Я могу жить с начальной медлительностью при выполнении запроса, но мне очень не хочется, чтобы он выполнялся повторно, когда я пытаюсь отсортировать таблицу по другому столбцу, ждать 5 минут или пытаться прокрутить.

Существуют ли лучшие (бесплатные) инструменты для работы? (Я хотел бы написать скрипт вручную, чтобы преобразовать CSV во что-то другое, если требуется)

Спасибо!

Edit: Спасибо за ответы на все вопросы! Я собираюсь попробовать SQL Server, и если он сработает, я приму этот ответ. Просто пояснение: импорт файла данных не обязательно является для меня проблемой (хотя, конечно, приветствуются простые способы сделать это). Мне нужна какая-то программа, которая впоследствии позволяет мне быстро и эффективно выполнять (достаточно сложные) запросы к ней. FileHelpers мне не поможет, потому что, во-первых, я не знаю языков .NET, а во-вторых, у меня были данные на Java, но я подумал, что анализировать их будет намного проще с SQL. Спасибо за ответ, хотя!

Ответы [ 9 ]

5 голосов
/ 23 декабря 2008

Почему бы просто не импортировать их в MySQL, это просто.

LOAD DATA LOCAL INFILE 'file.csv' 
INTO TABLE some_table 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(field1, filed2, field3);

И тогда вы можете легко выполнять запросы любой сложности ...

4 голосов
/ 23 декабря 2008

Вы не сказали, какую СУБД вы используете, но PostgreSQL имеет для этого команду COPY со многими параметрами:

COPY billing.contact FROM '/foo/bar/contact.csv' WITH DELIMITER AS ',';
3 голосов
/ 23 декабря 2008

SQL Server Express 2008 с инструментами Здесь . Включает Management Studio и отлично работает.

Обратите внимание, что для этого требуются .net framework 3.5 sp1, MS Installer 4.5 и Powershell 1.0, но на странице загрузки есть ссылки, если вам нужно их получить.

1 голос
/ 23 декабря 2008

есть также Oracle Express Edition.

Я полагаю, это зависит от того, где вы уже опытны. Или, может быть, там, где вы хотите быть опытным.

1 голос
/ 23 декабря 2008

Немного подумав, вы можете посмотреть на LINQ to CSV .

0 голосов
/ 18 октября 2010

Oracle SQL Developer (и Oracle Express Edition - спасибо Марк) являются бесплатными, легкими и SQl Developer может загружать CSV-файлы в полное отношение. Затем вы можете запускать операторы SQL или даже создавать их через интерфейс перетаскивания. Вы также можете посмотреть на белку

0 голосов
/ 18 октября 2010

logparser может это сделать ... вы можете создавать sql запросы для csv и других файлов с разделителями

0 голосов
/ 23 декабря 2008

Если вы можете получить их до Access, просто экспортируйте таблицы Access в SQL Server. Или, если есть общая схема для csv, создайте таблицу SQL Server, удаленно подключитесь из Access и импортируйте напрямую в SQL Server.

0 голосов
/ 23 декабря 2008

Если вы хотите выполнить некоторую обработку данных, я могу порекомендовать библиотеку FileHelpers на http://www.filehelpers.com/. Она включает в себя практически все, что вам нужно для импорта, обработки и экспорта файлов данных с разделителями или фиксированной длины.

Вы можете использовать SQL Server Express в качестве бесплатной БД вместо Access. Читайте об этом здесь:

http://www.microsoft.com/express/sql/default.aspx

Вы можете использовать SQL Server Management Studio Express для запроса ваших данных, или же вы можете получить доступ ко многим из тех же инструментов через выпуски Visual Studio Express, все из которых бесплатны - вы даже можете создавать новые MDF-файлы с помощью Добавить новый элемент опция меню.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...