it-swarm-korea.com

CSV 파일 쿼리

CSV 파일을 열어 기본적인 SQLesque 쿼리를 수행 할 수있는 간단한 도구를 아는 사람이 있습니까? 일종의 그래픽 도구처럼 사용하기 쉬운 도구입니다.

CSV를 SQLite 데이터베이스로 가져 오기 위해 작은 스크립트를 작성할 수 있다는 것을 알고 있지만, 다른 사람이 나보다 앞서 이것을 생각했다고 상상하기 때문에 그저 존재하는지 묻고 싶었습니다. 이 질문을 던지는 것은 Excel의 제한된 필터링 기능에 실망하고 있다는 것입니다.

아마도 다른 데이터 시각화 조작 도구가 유사한 기능을 제공 할 것입니다.

무료 또는 OSS가 선호되지만 어떤 제안도 가능합니다.

편집하다:

"시트를 ODBC 항목으로 만들기") 또는 "ODBC 파일을 사용하여 프로그램 작성") 대신 아래 작업을 수행하는 방법에 대한 명확한 자습서를 선호합니다. , 또는 사용할 앱에 대한 더 많은 아이디어 참고 : MS Access를 사용할 수 없습니다.

또 다른 편집 :

나는 여전히 SQLite를 사용하는 솔루션을 위해 열려 있습니다. 내 플랫폼은 P4가있는 반 고대의 Win2k 노트북입니다. 속도가 매우 느리므로 리소스 라이트 솔루션이 이상적이며 이길 가능성이 높습니다.

30
J. Polfer

LogParser 시도해 보셨습니까?

로그 파서는 로그 파일, XML 파일 및 CSV 파일과 같은 텍스트 기반 데이터뿐만 아니라 이벤트 로그, 레지스트리, 파일 시스템 및 Active Directory®. Log Parser에 필요한 정보와 처리 방법을 알려줍니다. 쿼리 결과는 텍스트 기반 출력에서 ​​사용자 지정 형식으로 지정하거나 SQL, SYSLOG 또는 차트와 같은 더 특수한 대상에 유지할 수 있습니다.

대부분의 소프트웨어는 제한된 수의 특정 작업을 수행하도록 설계되었습니다. Log Parser는 다릅니다. 사용할 수있는 방법의 수는 사용자의 필요와 상상력에 의해서만 제한됩니다. 세상은 Log Parser가있는 데이터베이스입니다.

A tutorial (및 다른 하나 ) CSV 파일과 함께 SQL과 같은 쿼리 언어 사용에 대한 구글을 사용하여 찾았습니다 .

쿼리 예 :

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
13
svandragt

나는 OpenOffice.org Database 당신이 원하는 것을 할 수 있다고 생각합니다. 이렇게 작동합니다.

  1. Open Office.org 데이터베이스를 시작하면 " 데이터베이스 마법사 "가 표시됩니다.

  2. " 기존 데이터베이스에 연결 : 텍스트 "를 선택합니다.

    enter image description here

  3. 텍스트 파일의 경로와 구분 문자 등과 같은 세부 정보를 지정합니다.

    enter image description here

  4. 쿼리 생성 및 실행

    enter image description here

Microsoft Access로 작업 한 적이 있다면 GUI에 익숙 할 것입니다.


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`
34
Ludwig Weinzierl

ODBC를 사용하여 텍스트 파일을 쿼리 할 수 ​​있습니다.

ODBC 데이터 공급자 를 사용하여 텍스트 파일에 액세스)

참고 MS Access가 필요하지 않다는 점을 위 링크의 튜토리얼은 MS Access를 사용하여 텍스트 파일을 생성하지만 이미 텍스트 파일이있는 경우 반 아래로 스크롤하여 제목 텍스트 파일 액세스 가 표시되는 자습서를 시작합니다.

Update :이 단계별 자습서를 만들 수 있도록 .csv 파일에 DSN을 직접 만들었습니다.

  • .csv 파일이 다른 것없이 자체 디렉토리에 있는지 확인하십시오.
  • "ODBC 데이터 소스 관리자"(시작-제어판-관리 도구-데이터 소스 (ODBC))를 엽니 다.
  • 파일 DSN 탭으로 이동하여 "추가 ..."를 클릭하십시오.
  • 목록에서 "Microsoft 텍스트 드라이버 (* .txt, * .csv)"를 선택하고 "다음>"을 클릭합니다.
  • 파일 데이터 소스의 이름 (예 : "테스트")을 지정하고 "다음>"을 클릭합니다.
  • "마침"을 클릭합니다 (이후 "데이터 소스 이름"및 "설명"필드가 실제로 회색으로 표시된 대화 상자가 나타납니다. 이것은 정상입니다. 걱정하지 마십시오.
  • "현재 디렉토리 사용"확인란을 선택 취소합니다. "디렉토리 선택"버튼이 활성화됩니다.
  • "디렉토리 선택"버튼을 클릭하고 첫 번째 단계에서 .csv 파일을 배치 한 폴더로 이동합니다.
  • "옵션 >>"버튼을 클릭하십시오.
  • "형식 정의 ..."버튼을 클릭합니다.
  • 왼쪽 "테이블"목록에서 .csv 파일을 선택하고 "추측"버튼을 클릭합니다. (이렇게하면 csv 파일을 분석하고 .csv 파일의 각 열에 대해 적절한 필드를 만듭니다.)
  • 오른쪽 목록에서 생성 된 열 (F1, F2, ...)을 살펴보고 의미있는 이름을 지정하고 적절한 데이터 유형을 설정합니다 (때로는 추측이 항상 올바른 것은 아닙니다).
  • 모든 것이 올바르게 설정되면 "확인"을 클릭합니다 (2 회).

이 시점에서 ODBC를 통해 .csv 파일에 액세스 할 수있는 파일 DSN이 있어야합니다. .csv 파일이있는 폴더를 검사하면 방금 만든 구성이 포함 된 schema.ini 파일이 표시됩니다. 여러 .csv 파일이있는 경우 각 파일은 하나의 테이블에 해당하고 각 테이블에는 서로 다른 열이 정의 된 schema.ini 파일에 [filename. csv] 블록이 있습니다. 또한 위에서 설명한 GUI를 사용하는 대신 텍스트 편집기에서 직접 schema.ini 파일을 생성/변경할 수 있습니다.

추가 질문 "쿼리 도구를 사용하여이 ODBC 공급자에 연결하는 방법") :
오래전에 직접 작성한 도구로 출판 할 수 없습니다. 그러나 빠른 Google 검색에서 원하는 작업을 수행하는 프리웨어 도구 인 odbc-view 가 나왔습니다.
도구를 다운로드하여 설치했습니다.
도구를 시작한 후 :

  • "DataSource ..."를 클릭하십시오.
  • 이전에 생성 한 파일 데이터 소스를 선택합니다 (예 : "테스트").
  • 쿼리 창에 "select * from [filename. csv]"를 입력합니다.
  • "실행"을 클릭하십시오.

이제 하단 창에 .csv 파일의 내용이 표시됩니다.
도움이되기를 바랍니다 ... 어떻게하는지 또는 추가 지원이 필요한지 알려주세요.

13
fretje

R 를 사용하여 CSV 파일에 빠르게 액세스하는 것을 좋아합니다. 언어가 직접 SQL은 아니지만 R에서 간단한 명령으로 이러한 모든 작업을 수행 할 수 있습니다. R은 또한 Nice 그래프를 만드는 기능과 기타 많은 기능을 제공합니다.

8
Christian

이를 달성하는 가장 간단한 방법은 SQLite의 기본 제공 CSV 가져 오기 기능을 사용하는 것입니다.

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

이제 원하는대로 쿼리 할 수있는 작업 데이터베이스가 있습니다. 또한 위의 성능이 좋은 것으로 나타났습니다. 10-15 초 동안 3 백만 개의 행을 가져 왔습니다.

항상 파일을 Excel로 읽고 ODBC를 통해 Excel을 데이터 원본으로 사용하고 이에 대해 쿼리를 실행할 수 있습니다.

5
m.floryan

이 작업을 수행하는 그래픽이 아닌 작은 앱을 찾았습니다. csvsql .

문서는 여기 입니다.

4
Stefan Thyberg

조인, 그룹화 및 기타 SQL 구문을 포함하여 csv 파일에서 직접 SQL을 실행할 수있는 무료 도구 q-Text as a Database 를 살펴볼 수 있습니다. 또한 열 이름 및 열 유형의 자동 감지가 포함됩니다.

Linux 작동 방식과 일치하는 명령 줄 도구입니다 (예 : 필요한 경우 stdin에서 파이핑, 동작 사용자 지정을위한 특수 플래그 등).

장면 뒤에서 sqlite를 사용하므로 매우 가볍고 사용하기 쉽습니다.

전체 공개-내 자신의 오픈 소스 도구입니다. 도움이 되었기를 바랍니다.

Harel Ben-Attia

3
Harel Ben Attia

Q 도구 시도해 볼 수 있습니다. 매우 가볍고 Python 2.5 이상 만 필요합니다.

2
agrrd

Gcsvsql이라는 다중 파일 조인을 포함하여 csv 파일에서 임의의 SQL을 실행하는 명령 줄 프로그램을 작성했습니다. 여기에서 읽을 수 있습니다.

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

여기에 Google 코드 프로젝트가 있습니다. http://code.google.com/p/gcsvsql/

Java/Groovy로 작성되었으며 어디에서나 실행됩니다. Java 사용할 수 있습니다.

편집 : 활성 프로젝트가 github로 이동했습니다. https://github.com/jdurbin/durbinlib

2
James Durbin

내가 발견 한 도구는 미래에 이것을 더 쉽게 만들 수 있다고 생각합니다 . Resolver One .

쉽게 수정할 수있는 Python 코드를 생성하는 스프레드 시트입니다. 개발자이고 때때로 스프레드 시트의 문제를 해결하기 위해 "스텝 다운"해야하는 경우, 이는 스프레드 시트를 해결하는 직관적 인 방법 인 것 같습니다. -익숙한 언어로 된 문제.

그리고 그것은 나에게 파이썬을 사용하는 핑계를줍니다. Python 나를 행복하게합니다.

2
J. Polfer

H2 JDBC 드라이버는 매우 유용한 csvread 기능을 제공하여 다음과 같은 작업을 수행 할 수 있습니다.

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

이 드라이버를 사용하기 위해 코드를 작성하지 않고도 사용할 수있는 다양한 방법이 있습니다.

개인적으로 나는 쿼리를 실행하기위한 멋진 GUI를 제공하는 Squirrel SQL Client 를 선호합니다. 사용하려면 이미 나열된 H2 In-Memory 다운로드 한 H2 드라이버의 드라이버 클래스 경로. 드라이버를 사용하여 적절한 별칭을 설정하면 원하는 임의의 SQL을 실행할 수 있습니다. 결과는 Nice 테이블과 가져 오기, 내보내기 등을위한 모든 종류의 기타 기능에 표시됩니다.

또는 Groovy를 사용하여 필요에 따라 드라이버를로드하고 사용하는 빠른 스크립트를 작성할 수 있습니다. 방법을 알아 보려면 이 예제 블로그 게시물 을 참조하십시오.

누군가가 위의 그루비 스크립트를 확장하여 쿼리를 실행하기위한 Nice 명령 줄 도구로 만든 것 같습니다. gcsvsql을 참조하십시오. 이를 통해 다음과 같은 명령을 실행할 수 있습니다.

gcsvsql "select * from people.csv where age > 40"
2
lstg

이 작업에 대한 두 가지 추가 옵션 : querycsvfsql . Querycsv는 Python이고 sqlite3를 사용합니다. Fsql은 Perl이며 DBD :: CSV 를 사용합니다.

1
Nelson

wHS를 사용할 수 있습니다. 예를 들어 'C :\Users\user837\Desktop\t4': 1.txt 디렉터리에 4 개의 파일이 있습니다.

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

2.txt

sex_id;name
1;male
2;female

schema.ini

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

및 Hello.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

Npp에서 열린 csv 파일에 대해 SQL 쿼리를 실행하는 Notepad ++ 플러그인 CsvQuery가 있습니다. https://github.com/jokedst/CsvQuery

0
Greck

무료는 아니지만 내가 찾은 최고의 프로그램은 File Query 입니다. 명령 줄 기반이거나 파일에 액세스하기 전에 파일 가져 오기/설정이 필요한 다른 솔루션과 달리 파일 쿼리를 사용하면 파일을 열 수 있습니다. 간단한 대화에서 거의 모든 쿼리를 수행 할 수 있습니다.

약간 비싸지 만 한 번만하면되는 경우 언제든지 30 일 평가판을 무료로 사용할 수 있습니다. 그들은 또한 당신을 시작할 수 있도록 훌륭한 가이드 및 심지어 비디오 를 가지고 있습니다.

0
Jeffrey Harmon