Запрос файла CSV

кто-нибудь знает о простой инструмент, который откроет файл CSV и позволит вам делать основные, SQLesque запросы на него? Как графический инструмент сортов, тот, который прост в использовании.

Я знаю, что мог бы написать небольшой скрипт для импорта CSV в базу данных SQLite, но так как я представляю, что кто-то еще думал об этом до меня, я просто хотел узнать, существует ли он. Что подсказывает этот вопрос, я расстраиваюсь из-за ограниченной фильтрации Excel способности.

возможно, какой-то другой инструмент для визуализации данных обеспечит аналогичную функциональность.

Free или OSS предпочтительнее, но я открыт для любых предложений.

изменить:

Я действительно предпочел бы некоторые четкие учебники о том, как сделать ниже, а не просто "сделать ваш лист запись ODBC" или "писать программы с помощью файлов ODBC", или больше идей о приложениях для использования. Примечание: Я не могу использовать MS Access.

еще один EDIT:

Я все еще открыт для решений с использованием SQLite. Моя платформа-это полудревний ноутбук Win2k с P4 на нем. Это довольно медленно, поэтому решение с ресурсным освещением идеально и, скорее всего, выиграет.

20
задан J. Polfer
20.11.2022 1:46 Количество просмотров материала 2595
Распечатать страницу

16 ответов

ты пробовал LogParser?

log parser-это мощный и универсальный инструмент, обеспечивающий Универсальный доступ к текстовым данным, таким как файлы журналов, XML-файлы и CSV-файлы, а также к основным источникам данных в операционной системе Windows®, таким как журнал событий, реестр, файловая система и Active Directory®. Вы сообщаете Log Parser, какая информация вам нужна и как вы хотите ее обрабатывать. Результаты запроса могут быть отформатированы в текстовом формате вывод, или они могут быть сохранены для более специализированных целей, таких как SQL, SYSLOG или диаграмма.

большинство программ предназначен для выполнения ограниченного числа конкретных задач. Log Parser отличается... количество способов его использования ограничено только потребностями и фантазией пользователя. Мир-это ваша база данных с Log Parser.

на учебникеще один) при использовании языка запросов SQL like с CSV-файлами I найдено с помощью google.

Запрос:

logparser -i:CSV "SELECT TOP 10 Time, Count INTO c:\logparser\test\Chart.GIF 
FROM c:\logparser\test\log.csv ORDER by Time DESC" -charttype:bar3d
12
отвечен svandragt 2022-11-21 09:34

Я думаю OpenOffice.org База Данных может делать то, что вы хотите. Как это работает.

  1. открыть Office.org база данных, она показывает "Мастер Баз Данных"

  2. выбираем "подключение к существующей базе данных: Text"

    enter image description here

  3. укажите путь к текстовым файлам, а также детали, такие как символ-разделитель п.

    enter image description here

  4. создание и выполнение запросов

    enter image description here

Если вы когда-либо работали с Microsoft Access вы найдете графический интерфейс знакомый.


если можно обойтись без GUI есть всегда традиционные команды Unix. Я использую их много, чтобы делать простые запросы к (маленьким) CSV-файлам. Вот как это работает:

clause      operation   command
-------------------------------
from             join     `join`
where     restriction     `grep`
order by           --     `sort`
group by  restriction      `awk`
having    restriction     `grep`
select     projection      `cut`
distinct  restriction     `uniq`
limit     restriction     `head`
offset    restriction     `tail`
33
отвечен Ludwig Weinzierl 2022-11-21 11:51

вы можете использовать ODBC для запроса текстовых файлов:

доступ к текстовым файлам с помощью поставщика данных ODBC

Примечание что вам не нужен MS Access для этой работы, учебник в приведенной выше ссылке просто использует MS Access для создания текстового файла, но, как у вас уже есть текстовый файл, прокрутите вниз на полпути, и начать учебник, где вы видите название доступ к текстовому файлу.

обновление: Я создал DSN на сервере .csv файл сам, чтобы иметь возможность создать этот шаг за шагом учебник... вот он:

  • убедитесь, что ваш .CSV-файл в отдельный каталог, без всего остального.
  • откройте "администратор источников данных ODBC" (Пуск - Панель управления - Администрирование - источники данных (ODBC)).
  • перейдите на вкладку Файл DSN и нажмите "Добавить"...".
  • Выберите " Microsoft Text Driver (*.формат txt.* ,csv) из списка и нажмите " Далее >".
  • дать имя для источника данных файла (например, "test") и нажмите "Next>".
  • Нажмите кнопку " Готово "(после этого появится диалоговое окно, где поля" имя источника данных "и" описание " действительно серым цветом. Это нормально. Не беспокоиться.
  • снимите флажок" Использовать текущий каталог". Кнопка "выбрать каталог" будет включена.
  • нажмите "выбрать каталог" кнопки и откройте папку, в которой вы разместили .csv-файл в первом шаг.
  • Нажмите кнопку" Параметры>>".
  • нажмите на кнопку "определить формат..." кнопка.
  • в левом списке "таблицы", выберите ваш .CSV-файл и нажмите на кнопку "гадать". (Это позволит проанализировать ваш файл csv и создать соответствующее поле для каждого столбца в вашем .CSV-файл.)
  • пройти через сгенерированные столбцы (F1, F2,...) в правом списке дайте им осмысленные имена и установите соответствующий тип данных (иногда угадывание не всегда право.)
  • после того, как все настроено правильно, нажмите "OK" (2 раза).

на этом этапе вы должны иметь файл DSN, с которым вы можете получить доступ к вашему .csv-файл через ODBC. Если вы проверите вашу папку где то .csv файл размещен, вы увидите схему.ini-файл, содержащий только что созданную конфигурацию. Когда у вас есть несколько .csv-файлы, каждый из которых соответствует таблице, и каждая таблица будет иметь [именем.csv] блок в схеме.ini-файл в какие определены различные столбцы... Вы также можете создать/изменить эту схему.ini-файл непосредственно в текстовом редакторе вместо описанного выше GUI.

Что касается вашего дополнительного вопроса "Как подключиться к этому провайдеру ODBC с помощью инструмента запроса":

У меня есть инструмент, который я написал сам давно, который не имеет права на публикацию. Но быстрый поиск Google придумал odbc-view, бесплатный инструмент, который делает то, что вы хотите.

Я скачал и установил инструмент.

После запуска инструмента:

  • нажмите на "источник данных...".
  • выберите источник данных файла, который вы создали ранее (например, "тест").
  • в области запросов введите " select * from [именем.csv]".
  • Нажмите Кнопку "Выполнить".

вы должны увидеть содержимое .csv-файл в нижней панели.

Надеюсь, это поможет... Дайте мне знать, как вы делаете или если вам нужна дополнительная помощь.

13
отвечен fretje 2022-11-21 14:08

Мне нравится использовать R для быстрого доступа к csv-файлам. Хотя язык не является непосредственно SQL вы можете сделать все эти вещи с помощью простых команд в R. R также предоставляет вам возможность создавать красивые графики и много других возможностей.

8
отвечен Christian 2022-11-21 16:25

вы всегда можете прочитать файл в Excel и использовать Excel в качестве источника данных через ODBC и выполнять запросы к нему.

5
отвечен m.floryan 2022-11-21 18:42

Я нашел небольшое, неграфическое приложение, которое делает это:csvsql.

документация здесь.

3
отвечен Stefan Thyberg 2022-11-21 20:59

инструмент, который я нашел, что, я думаю, может сделать это проще в будущем Решатель One.

Это электронная таблица, которая генерирует код Python, который легко модифицируется. Для тех, кто является разработчиками, и иногда нужно "уйти в отставку", чтобы решить проблемы в электронных таблицах, это кажется интуитивным способом решения проблем электронных таблиц на языке, с которым они знакомы.

и это дает мне повод использовать Python. Питон заставляет меня счастливый.

2
отвечен J. Polfer 2022-11-21 23:16

драйвер JDBC H2 обеспечивает очень полезную функцию csvread, что позволяет делать такие вещи, как :

select * from csvread(test1.csv) test1 
inner join csvread(test2.csv2) test2
on test1.id = test2.foreignkey

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

лично я предпочитаю Squirrel SQL Client что дает вам хороший графический интерфейс для запуска запросов. Использовать его все, что вам нужно сделать, это указать уже перечислены H2 In-Memory классов водителю водитель Н2 у вас загружаемый. После того, как вы настроили подходящий псевдоним с помощью драйвера, вы можете запустить любой случайный SQL, который вы хотите. Результаты отображаются в удобной таблице и всякие другие функции для импорта, экспорта и т. д.

альтернативно, вы можете использовать Groovy, чтобы написать быстрый скрипт для загрузки и использования драйвера по мере необходимости. См.этот пример blogpost чтобы выяснить, как.

похоже, кто-то продлил выше скрипт на Groovy и сделал это в командной строке инструмент для выполнения запросов см. В разделе gcsvsql. С помощью этого вы можете запускать команды следующим образом:

gcsvsql "select * from people.csv where age > 40"
2
отвечен lstg 2022-11-22 01:33

вы можете взглянуть на бесплатный инструмент q-Text как база данных, что позволяет выполнять SQL непосредственно в csv-файлах, включая соединения, группировки и любые другие конструкции SQL. Также включает автоматическое определение имен столбцов и типов столбцов.

Это инструмент командной строки, который соответствует способу работы Linux (например, трубопроводы из stdin, если это необходимо, специальные флаги для настройки поведения и т. д.).

использует sqlite за кулисами, так что очень легкий вес и простой в использовании.

полное раскрытие - это мой собственный инструмент с открытым исходным кодом. Надеюсь, вы найдете его полезным

Harel Ben-Attia

2
отвечен Harel Ben Attia 2022-11-22 03:50

я обнаружил, что самый простой способ достичь этого-просто использовать встроенную функциональность импорта CSV SQLite:

  1. sqlite3 mydatabase.sqlite
  2. sqlite> .mode csv
  3. sqlite> .import mydata.csv <tablename>

Теперь у вас есть рабочая база данных, которую вы можете запросить, как вам нравится. Я также обнаружил, что производительность выше, чтобы быть хорошим, я просто импортировал три миллиона строк в 10-15 секунд.

2
отвечен Markus Amalthea Magnuson 2022-11-22 06:07

Я написал программу командной строки для выполнения произвольного SQL в csv-файлах, включая многофайловые соединения, называемые gcsvsql. Вы можете прочитать об этом здесь:

http://bayesianconspiracy.blogspot.com/2010/03/gcsvsql.html

есть проект код Google здесь: http://code.google.com/p/gcsvsql/

Он написан на Java / Groovy и будет работать везде, где доступна Java.

Edit: активный проект перемещен на гитхаб. https://github.com/jdurbin/durbinlib

2
отвечен James Durbin 2022-11-22 08:24

вы можете попробовать Q tool. Это очень легкий, требует только Python 2.5 или новее.

1
отвечен agrrd 2022-11-22 10:41

еще два варианта этой задачи:querycsv и fsql. Querycsv является Python и использует sqlite3. Fsql является Perl и использует DBD:: CSV.

1
отвечен Nelson 2022-11-22 12:58

пока не бесплатно, лучшая программа, которую я нашел для этого Файл Запроса. В отличие от других решений, которые либо основаны на командной строке, либо требуют импорта/настройки файла перед доступом к нему, File Query позволяет открыть файл (даже GBs inup, как обычный текстовый редактор, и автоматически анализирует макет для вас, и вы можете делать почти все ваши запросы из простых диалогов.

Это немного дорого, но если вам нужно сделать что-то только один раз, вы всегда можете просто использовать 30-дневную пробную версию бесплатно. Они также имеют большой руководств и даже видео чтобы вы начали.

0
отвечен Jeffrey Harmon 2022-11-22 15:15

вы можете использовать WHS. Например, у меня 4 файла в каталоге 'C:\Users\user837\Desktop\t4": 1.txt

id;sex_ref;sale
1;1;10
2;2;30
3;1;20

2.txt

sex_id;name
1;male
2;female

схемы.ini

[1.txt]
Format=Delimited(;)
ColNameHeader=True
MaxScanRows=50
DecimalSymbol=,
[2.txt]
Format=Delimited(;)
ColNameHeader=True
MaxScanRows=50
DecimalSymbol=,

и привет.js

WScript.Echo("Hello World!");
var cn = new ActiveXObject("ADODB.Connection");
cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"C:\Users\user837\Desktop\t4\";Extended Properties=\"text;HDR=NO;FMT=Delimited\"");

var rs = cn.Execute("select * from 1.txt as t1 left join 2.txt as t2 on t1.sex_ref = t2.sex_id");

while (!rs.EOF) 
{
    WScript.Echo(           rs.Fields("id").Value
                  + "###" + rs.Fields("sex_ref").Value
                  + "###" + rs.Fields("name").Value
                );
    rs.moveNext();
}

теперь просто дважды щелкните на Hello.js и вы увидите sql reqult построчно. Все результаты запросов см. В документации WHS.

0
отвечен Oleg 2022-11-22 17:32

существует Notepad++ плагин CsvQuery для запуска sql запросов на csv файлы, открытые в npp. https://github.com/jokedst/CsvQuery

0
отвечен Greck 2022-11-22 19:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх